{
  "version": 3,
  "sources": ["../../../../../shared/node_modules/@rails/actioncable/src/adapters.js", "../../../../../shared/node_modules/@rails/actioncable/src/logger.js", "../../../../../shared/node_modules/@rails/actioncable/src/connection_monitor.js", "../../../../../shared/node_modules/@rails/actioncable/src/internal.js", "../../../../../shared/node_modules/@rails/actioncable/src/connection.js", "../../../../../shared/node_modules/@rails/actioncable/src/subscription.js", "../../../../../shared/node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../../../shared/node_modules/@rails/actioncable/src/subscriptions.js", "../../../../../shared/node_modules/@rails/actioncable/src/consumer.js", "../../../../../shared/node_modules/@rails/actioncable/src/index.js", "../../../../../shared/node_modules/lodash/isObject.js", "../../../../../shared/node_modules/lodash/_freeGlobal.js", "../../../../../shared/node_modules/lodash/_root.js", "../../../../../shared/node_modules/lodash/now.js", "../../../../../shared/node_modules/lodash/_trimmedEndIndex.js", "../../../../../shared/node_modules/lodash/_baseTrim.js", "../../../../../shared/node_modules/lodash/_Symbol.js", "../../../../../shared/node_modules/lodash/_getRawTag.js", "../../../../../shared/node_modules/lodash/_objectToString.js", "../../../../../shared/node_modules/lodash/_baseGetTag.js", "../../../../../shared/node_modules/lodash/isObjectLike.js", "../../../../../shared/node_modules/lodash/isSymbol.js", "../../../../../shared/node_modules/lodash/toNumber.js", "../../../../../shared/node_modules/lodash/debounce.js", "../../../../../shared/node_modules/lodash/lodash.min.js", "../../../../../shared/node_modules/lodash/fp/_mapping.js", "../../../../../shared/node_modules/lodash/fp/placeholder.js", "../../../../../shared/node_modules/lodash/fp/_baseConvert.js", "../../../../../shared/node_modules/lodash/fp.js", "../../../../../shared/node_modules/tinymce/tinymce.js", "../../../../../shared/node_modules/jquery/dist/jquery.js", "../../../../../shared/node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../../../shared/node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../../../shared/node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../javascript/controllers/chart_toggle_controller.js", "../../../../../shared/node_modules/@rails/request.js/src/fetch_response.js", "../../../../../shared/node_modules/@rails/request.js/src/request_interceptor.js", "../../../../../shared/node_modules/@rails/request.js/src/lib/utils.js", "../../../../../shared/node_modules/@rails/request.js/src/fetch_request.js", "../../javascript/controllers/confirm_controller.js", "../../../../../shared/node_modules/@kurkle/color/dist/color.esm.js", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.core.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.math.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.collection.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.extras.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.easing.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.color.ts", "../../../../../shared/node_modules/chart.js/src/core/core.animations.defaults.js", "../../../../../shared/node_modules/chart.js/src/core/core.layouts.defaults.js", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.intl.ts", "../../../../../shared/node_modules/chart.js/src/core/core.ticks.js", "../../../../../shared/node_modules/chart.js/src/core/core.scale.defaults.js", "../../../../../shared/node_modules/chart.js/src/core/core.defaults.js", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.canvas.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.options.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.config.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.curve.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.dom.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.interpolation.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.rtl.ts", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.segment.js", "../../../../../shared/node_modules/chart.js/src/helpers/helpers.dataset.ts", "../../../../../shared/node_modules/chart.js/src/core/core.animator.js", "../../../../../shared/node_modules/chart.js/src/core/core.animation.js", "../../../../../shared/node_modules/chart.js/src/core/core.animations.js", "../../../../../shared/node_modules/chart.js/src/core/core.datasetController.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.bar.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.bubble.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.doughnut.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.line.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.polarArea.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.pie.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.radar.js", "../../../../../shared/node_modules/chart.js/src/controllers/controller.scatter.js", "../../../../../shared/node_modules/chart.js/src/core/core.adapters.ts", "../../../../../shared/node_modules/chart.js/src/core/core.interaction.js", "../../../../../shared/node_modules/chart.js/src/core/core.layouts.js", "../../../../../shared/node_modules/chart.js/src/platform/platform.base.js", "../../../../../shared/node_modules/chart.js/src/platform/platform.basic.js", "../../../../../shared/node_modules/chart.js/src/platform/platform.dom.js", "../../../../../shared/node_modules/chart.js/src/platform/index.js", "../../../../../shared/node_modules/chart.js/src/core/core.element.ts", "../../../../../shared/node_modules/chart.js/src/core/core.scale.autoskip.js", "../../../../../shared/node_modules/chart.js/src/core/core.scale.js", "../../../../../shared/node_modules/chart.js/src/core/core.typedRegistry.js", "../../../../../shared/node_modules/chart.js/src/core/core.registry.js", "../../../../../shared/node_modules/chart.js/src/core/core.plugins.js", "../../../../../shared/node_modules/chart.js/src/core/core.config.js", "../../../../../shared/node_modules/chart.js/src/core/core.controller.js", "../../../../../shared/node_modules/chart.js/src/elements/element.arc.ts", "../../../../../shared/node_modules/chart.js/src/elements/element.line.js", "../../../../../shared/node_modules/chart.js/src/elements/element.point.ts", "../../../../../shared/node_modules/chart.js/src/elements/element.bar.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.colors.ts", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.decimation.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/filler.segment.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/filler.helper.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/filler.options.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/filler.target.stack.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/simpleArc.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/filler.target.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/filler.drawing.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.filler/index.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.legend.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.title.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.subtitle.js", "../../../../../shared/node_modules/chart.js/src/plugins/plugin.tooltip.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.category.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.linearbase.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.linear.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.logarithmic.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.radialLinear.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.time.js", "../../../../../shared/node_modules/chart.js/src/scales/scale.timeseries.js", "../../../../../shared/node_modules/chart.js/src/index.ts", "../../../../../shared/node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.esm.js", "../../javascript/controllers/daily_chart_controller.js", "../../javascript/controllers/depositor_controller.js", "../../javascript/controllers/incremental_search_controller.js", "../../javascript/controllers/inline_memo_controller.js", "../../javascript/controllers/kakao_postcode_controller.js", "../../javascript/controllers/modal_controller.js", "../../javascript/controllers/open_type_controller.js", "../../javascript/controllers/payment_chart_controller.js", "../../javascript/controllers/payment_controller.js", "../../javascript/controllers/popup_preview_controller.js", "../../javascript/controllers/preregister_controller.js", "../../javascript/controllers/search_controller.js", "../../javascript/controllers/section_controller.js", "../../javascript/controllers/tabs_controller.js", "../../javascript/controllers/tinymce_controller.js", "../../javascript/controllers/tooltip_controller.js", "../../javascript/controllers/turbo_controller.js", "../../javascript/controllers/index.js", "../../javascript/src/jquery/index.js", "../../../../../shared/node_modules/trix/dist/trix.esm.min.js", "../../../../../shared/node_modules/@rails/actiontext/app/assets/javascripts/actiontext.js", "../../../../../shared/node_modules/@fortawesome/fontawesome-free/js/all.js", "../../../../../shared/node_modules/@popperjs/core/lib/index.js", "../../../../../shared/node_modules/@popperjs/core/lib/enums.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/math.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/userAgent.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/contains.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/within.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/arrow.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getVariation.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/flip.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/hide.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/offset.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../../../../../shared/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../../../../../shared/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/debounce.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/format.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/validateModifiers.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/uniqueBy.js", "../../../../../shared/node_modules/@popperjs/core/lib/utils/mergeByName.js", "../../../../../shared/node_modules/@popperjs/core/lib/createPopper.js", "../../../../../shared/node_modules/@popperjs/core/lib/popper-lite.js", "../../../../../shared/node_modules/@popperjs/core/lib/popper.js", "../../../../../shared/node_modules/bootstrap/js/src/util/index.js", "../../../../../shared/node_modules/bootstrap/js/src/dom/event-handler.js", "../../../../../shared/node_modules/bootstrap/js/src/dom/data.js", "../../../../../shared/node_modules/bootstrap/js/src/dom/manipulator.js", "../../../../../shared/node_modules/bootstrap/js/src/util/config.js", "../../../../../shared/node_modules/bootstrap/js/src/base-component.js", "../../../../../shared/node_modules/bootstrap/js/src/util/component-functions.js", "../../../../../shared/node_modules/bootstrap/js/src/alert.js", "../../../../../shared/node_modules/bootstrap/js/src/button.js", "../../../../../shared/node_modules/bootstrap/js/src/dom/selector-engine.js", "../../../../../shared/node_modules/bootstrap/js/src/util/swipe.js", "../../../../../shared/node_modules/bootstrap/js/src/carousel.js", "../../../../../shared/node_modules/bootstrap/js/src/collapse.js", "../../../../../shared/node_modules/bootstrap/js/src/dropdown.js", "../../../../../shared/node_modules/bootstrap/js/src/util/scrollbar.js", "../../../../../shared/node_modules/bootstrap/js/src/util/backdrop.js", "../../../../../shared/node_modules/bootstrap/js/src/util/focustrap.js", "../../../../../shared/node_modules/bootstrap/js/src/modal.js", "../../../../../shared/node_modules/bootstrap/js/src/offcanvas.js", "../../../../../shared/node_modules/bootstrap/js/src/util/sanitizer.js", "../../../../../shared/node_modules/bootstrap/js/src/util/template-factory.js", "../../../../../shared/node_modules/bootstrap/js/src/tooltip.js", "../../../../../shared/node_modules/bootstrap/js/src/popover.js", "../../../../../shared/node_modules/bootstrap/js/src/scrollspy.js", "../../../../../shared/node_modules/bootstrap/js/src/tab.js", "../../../../../shared/node_modules/bootstrap/js/src/toast.js", "../../javascript/custom_confirm.js", "../../javascript/application.js"],
  "sourcesContent": ["export default {\n  logger: self.console,\n  WebSocket: self.WebSocket\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n//   ActionCable.logger.enabled = true\n//\n//   Example:\n//\n//   import * as ActionCable from '@rails/actioncable'\n//\n//   ActionCable.logger.enabled = true\n//   ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now())\n      adapters.logger.log(\"[ActionCable]\", ...messages)\n    }\n  },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this)\n    this.connection = connection\n    this.reconnectAttempts = 0\n  }\n\n  start() {\n    if (!this.isRunning()) {\n      this.startedAt = now()\n      delete this.stoppedAt\n      this.startPolling()\n      addEventListener(\"visibilitychange\", this.visibilityDidChange)\n      logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n    }\n  }\n\n  stop() {\n    if (this.isRunning()) {\n      this.stoppedAt = now()\n      this.stopPolling()\n      removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n      logger.log(\"ConnectionMonitor stopped\")\n    }\n  }\n\n  isRunning() {\n    return this.startedAt && !this.stoppedAt\n  }\n\n  recordPing() {\n    this.pingedAt = now()\n  }\n\n  recordConnect() {\n    this.reconnectAttempts = 0\n    this.recordPing()\n    delete this.disconnectedAt\n    logger.log(\"ConnectionMonitor recorded connect\")\n  }\n\n  recordDisconnect() {\n    this.disconnectedAt = now()\n    logger.log(\"ConnectionMonitor recorded disconnect\")\n  }\n\n  // Private\n\n  startPolling() {\n    this.stopPolling()\n    this.poll()\n  }\n\n  stopPolling() {\n    clearTimeout(this.pollTimeout)\n  }\n\n  poll() {\n    this.pollTimeout = setTimeout(() => {\n      this.reconnectIfStale()\n      this.poll()\n    }\n    , this.getPollInterval())\n  }\n\n  getPollInterval() {\n    const { staleThreshold, reconnectionBackoffRate } = this.constructor\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n    const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n    const jitter = jitterMax * Math.random()\n    return staleThreshold * 1000 * backoff * (1 + jitter)\n  }\n\n  reconnectIfStale() {\n    if (this.connectionIsStale()) {\n      logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n      this.reconnectAttempts++\n      if (this.disconnectedRecently()) {\n        logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n      } else {\n        logger.log(\"ConnectionMonitor reopening\")\n        this.connection.reopen()\n      }\n    }\n  }\n\n  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt\n  }\n\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n  }\n\n  disconnectedRecently() {\n    return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n  }\n\n  visibilityDidChange() {\n    if (document.visibilityState === \"visible\") {\n      setTimeout(() => {\n        if (this.connectionIsStale() || !this.connection.isOpen()) {\n          logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n          this.connection.reopen()\n        }\n      }\n      , 200)\n    }\n  }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n  \"message_types\": {\n    \"welcome\": \"welcome\",\n    \"disconnect\": \"disconnect\",\n    \"ping\": \"ping\",\n    \"confirmation\": \"confirm_subscription\",\n    \"rejection\": \"reject_subscription\"\n  },\n  \"disconnect_reasons\": {\n    \"unauthorized\": \"unauthorized\",\n    \"invalid_request\": \"invalid_request\",\n    \"server_restart\": \"server_restart\"\n  },\n  \"default_mount_path\": \"/cable\",\n  \"protocols\": [\n    \"actioncable-v1-json\",\n    \"actioncable-unsupported\"\n  ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n  constructor(consumer) {\n    this.open = this.open.bind(this)\n    this.consumer = consumer\n    this.subscriptions = this.consumer.subscriptions\n    this.monitor = new ConnectionMonitor(this)\n    this.disconnected = true\n  }\n\n  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data))\n      return true\n    } else {\n      return false\n    }\n  }\n\n  open() {\n    if (this.isActive()) {\n      logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n      return false\n    } else {\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`)\n      if (this.webSocket) { this.uninstallEventHandlers() }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, protocols)\n      this.installEventHandlers()\n      this.monitor.start()\n      return true\n    }\n  }\n\n  close({allowReconnect} = {allowReconnect: true}) {\n    if (!allowReconnect) { this.monitor.stop() }\n    // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n    if (this.isOpen()) {\n      return this.webSocket.close()\n    }\n  }\n\n  reopen() {\n    logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n    if (this.isActive()) {\n      try {\n        return this.close()\n      } catch (error) {\n        logger.log(\"Failed to reopen WebSocket\", error)\n      }\n      finally {\n        logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n        setTimeout(this.open, this.constructor.reopenDelay)\n      }\n    } else {\n      return this.open()\n    }\n  }\n\n  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol\n    }\n  }\n\n  isOpen() {\n    return this.isState(\"open\")\n  }\n\n  isActive() {\n    return this.isState(\"open\", \"connecting\")\n  }\n\n  // Private\n\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n  }\n\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0\n  }\n\n  getState() {\n    if (this.webSocket) {\n      for (let state in adapters.WebSocket) {\n        if (adapters.WebSocket[state] === this.webSocket.readyState) {\n          return state.toLowerCase()\n        }\n      }\n    }\n    return null\n  }\n\n  installEventHandlers() {\n    for (let eventName in this.events) {\n      const handler = this.events[eventName].bind(this)\n      this.webSocket[`on${eventName}`] = handler\n    }\n  }\n\n  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {}\n    }\n  }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) { return }\n    const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n    switch (type) {\n      case message_types.welcome:\n        this.monitor.recordConnect()\n        return this.subscriptions.reload()\n      case message_types.disconnect:\n        logger.log(`Disconnecting. Reason: ${reason}`)\n        return this.close({allowReconnect: reconnect})\n      case message_types.ping:\n        return this.monitor.recordPing()\n      case message_types.confirmation:\n        this.subscriptions.confirmSubscription(identifier)\n        return this.subscriptions.notify(identifier, \"connected\")\n      case message_types.rejection:\n        return this.subscriptions.reject(identifier)\n      default:\n        return this.subscriptions.notify(identifier, \"received\", message)\n    }\n  },\n\n  open() {\n    logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n    this.disconnected = false\n    if (!this.isProtocolSupported()) {\n      logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n      return this.close({allowReconnect: false})\n    }\n  },\n\n  close(event) {\n    logger.log(\"WebSocket onclose event\")\n    if (this.disconnected) { return }\n    this.disconnected = true\n    this.monitor.recordDisconnect()\n    return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n  },\n\n  error() {\n    logger.log(\"WebSocket onerror event\")\n  }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n//     connected() {\n//       // Called once the subscription has been successfully completed\n//     },\n//\n//     disconnected({ willAttemptReconnect: boolean }) {\n//       // Called when the client has disconnected with the server.\n//       // The object will have an `willAttemptReconnect` property which\n//       // says whether the client has the intention of attempting\n//       // to reconnect.\n//     },\n//\n//     appear() {\n//       this.perform('appear', {appearing_on: this.appearingOn()})\n//     },\n//\n//     away() {\n//       this.perform('away')\n//     },\n//\n//     appearingOn() {\n//       $('main').data('appearing-on')\n//     }\n//   })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n//   class AppearanceChannel < ApplicationActionCable::Channel\n//     def subscribed\n//       current_user.appear\n//     end\n//\n//     def unsubscribed\n//       current_user.disappear\n//     end\n//\n//     def appear(data)\n//       current_user.appear on: data['appearing_on']\n//     end\n//\n//     def away\n//       current_user.away\n//     end\n//   end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n  if (properties != null) {\n    for (let key in properties) {\n      const value = properties[key]\n      object[key] = value\n    }\n  }\n  return object\n}\n\nexport default class Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer\n    this.identifier = JSON.stringify(params)\n    extend(this, mixin)\n  }\n\n  // Perform a channel action with the optional data passed as an attribute\n  perform(action, data = {}) {\n    data.action = action\n    return this.send(data)\n  }\n\n  send(data) {\n    return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n  }\n\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this)\n  }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions\n    this.pendingSubscriptions = []\n  }\n\n  guarantee(subscription) {\n    if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n      this.pendingSubscriptions.push(subscription) \n    }\n    else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n    }\n    this.startGuaranteeing()\n  }\n\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n    this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n  }\n\n  startGuaranteeing() {\n    this.stopGuaranteeing()\n    this.retrySubscribing()\n  }\n  \n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout)\n  }\n\n  retrySubscribing() {\n    this.retryTimeout = setTimeout(() => {\n      if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n        this.pendingSubscriptions.map((subscription) => {\n          logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n          this.subscriptions.subscribe(subscription)\n        })\n      }\n    }\n    , 500)\n  }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer\n    this.guarantor = new SubscriptionGuarantor(this)\n    this.subscriptions = []\n  }\n\n  create(channelName, mixin) {\n    const channel = channelName\n    const params = typeof channel === \"object\" ? channel : {channel}\n    const subscription = new Subscription(this.consumer, params, mixin)\n    return this.add(subscription)\n  }\n\n  // Private\n\n  add(subscription) {\n    this.subscriptions.push(subscription)\n    this.consumer.ensureActiveConnection()\n    this.notify(subscription, \"initialized\")\n    this.subscribe(subscription)\n    return subscription\n  }\n\n  remove(subscription) {\n    this.forget(subscription)\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\")\n    }\n    return subscription\n  }\n\n  reject(identifier) {\n    return this.findAll(identifier).map((subscription) => {\n      this.forget(subscription)\n      this.notify(subscription, \"rejected\")\n      return subscription\n    })\n  }\n\n  forget(subscription) {\n    this.guarantor.forget(subscription)\n    this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n    return subscription\n  }\n\n  findAll(identifier) {\n    return this.subscriptions.filter((s) => s.identifier === identifier)\n  }\n\n  reload() {\n    return this.subscriptions.map((subscription) =>\n      this.subscribe(subscription))\n  }\n\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription) =>\n      this.notify(subscription, callbackName, ...args))\n  }\n\n  notify(subscription, callbackName, ...args) {\n    let subscriptions\n    if (typeof subscription === \"string\") {\n      subscriptions = this.findAll(subscription)\n    } else {\n      subscriptions = [subscription]\n    }\n\n    return subscriptions.map((subscription) =>\n      (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n  }\n\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription)\n    }\n  }\n\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`)\n    this.findAll(identifier).map((subscription) =>\n      this.guarantor.forget(subscription))\n  }\n\n  sendCommand(subscription, command) {\n    const {identifier} = subscription\n    return this.consumer.send({command, identifier})\n  }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n//   App.cable.disconnect()\n//\n// and to restart the connection:\n//\n//   App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n  constructor(url) {\n    this._url = url\n    this.subscriptions = new Subscriptions(this)\n    this.connection = new Connection(this)\n  }\n\n  get url() {\n    return createWebSocketURL(this._url)\n  }\n\n  send(data) {\n    return this.connection.send(data)\n  }\n\n  connect() {\n    return this.connection.open()\n  }\n\n  disconnect() {\n    return this.connection.close({allowReconnect: false})\n  }\n\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open()\n    }\n  }\n}\n\nexport function createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url()\n  }\n\n  if (url && !/^wss?:/i.test(url)) {\n    const a = document.createElement(\"a\")\n    a.href = url\n    // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n    a.href = a.href\n    a.protocol = a.protocol.replace(\"http\", \"ws\")\n    return a.href\n  } else {\n    return url\n  }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n  Connection,\n  ConnectionMonitor,\n  Consumer,\n  INTERNAL,\n  Subscription,\n  Subscriptions,\n  SubscriptionGuarantor,\n  adapters,\n  createWebSocketURL,\n  logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url)\n}\n\nexport function getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n  if (element) {\n    return element.getAttribute(\"content\")\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 */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\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 */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n", "var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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 */\nfunction 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\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 */\nvar nativeObjectToString = objectProto.toString;\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 */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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 */\nfunction 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 = baseTrim(value);\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\nmodule.exports = toNumber;\n", "var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\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 */\nfunction 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        clearTimeout(timerId);\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\nmodule.exports = debounce;\n", "/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\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(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function r(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&t(n[r],r,n)!==!1;);return n}function e(n,t){for(var r=null==n?0:n.length;r--&&t(n[r],r,n)!==!1;);return n}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return!1;\nreturn!0}function i(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function o(n,t){return!!(null==n?0:n.length)&&y(n,t,0)>-1}function f(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return!0;return!1}function c(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function a(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function l(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);\nreturn r}function s(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function h(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return!0;return!1}function p(n){return n.split(\"\")}function _(n){return n.match($t)||[]}function v(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,!1}),e}function g(n,t,r,e){for(var u=n.length,i=r+(e?1:-1);e?i--:++i<u;)if(t(n[i],i,n))return i;return-1}function y(n,t,r){return t===t?Z(n,t,r):g(n,b,r)}function d(n,t,r,e){\nfor(var u=r-1,i=n.length;++u<i;)if(e(n[u],t))return u;return-1}function b(n){return n!==n}function w(n,t){var r=null==n?0:n.length;return r?k(n,t)/r:Cn}function m(n){return function(t){return null==t?X:t[n]}}function x(n){return function(t){return null==n?X:n[t]}}function j(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=!1,n):t(r,n,u,i)}),r}function A(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].value;return n}function k(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==X&&(r=r===X?i:r+i);\n}return r}function O(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function I(n,t){return c(t,function(t){return[t,n[t]]})}function R(n){return n?n.slice(0,H(n)+1).replace(Lt,\"\"):n}function z(n){return function(t){return n(t)}}function E(n,t){return c(t,function(t){return n[t]})}function S(n,t){return n.has(t)}function W(n,t){for(var r=-1,e=n.length;++r<e&&y(t,n[r],0)>-1;);return r}function L(n,t){for(var r=n.length;r--&&y(t,n[r],0)>-1;);return r}function C(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;\nreturn e}function U(n){return\"\\\\\"+Yr[n]}function B(n,t){return null==n?X:n[t]}function T(n){return Nr.test(n)}function $(n){return Pr.test(n)}function D(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function F(n,t){return function(r){return n(t(r))}}function N(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r];o!==t&&o!==cn||(n[r]=cn,i[u++]=r)}return i}function P(n){var t=-1,r=Array(n.size);\nreturn n.forEach(function(n){r[++t]=n}),r}function q(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=[n,n]}),r}function Z(n,t,r){for(var e=r-1,u=n.length;++e<u;)if(n[e]===t)return e;return-1}function K(n,t,r){for(var e=r+1;e--;)if(n[e]===t)return e;return e}function V(n){return T(n)?J(n):_e(n)}function G(n){return T(n)?Y(n):p(n)}function H(n){for(var t=n.length;t--&&Ct.test(n.charAt(t)););return t}function J(n){for(var t=Mr.lastIndex=0;Mr.test(n);)++t;return t}function Y(n){return n.match(Mr)||[];\n}function Q(n){return n.match(Fr)||[]}var X,nn=\"4.17.21\",tn=200,rn=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",en=\"Expected a function\",un=\"Invalid `variable` option passed into `_.template`\",on=\"__lodash_hash_undefined__\",fn=500,cn=\"__lodash_placeholder__\",an=1,ln=2,sn=4,hn=1,pn=2,_n=1,vn=2,gn=4,yn=8,dn=16,bn=32,wn=64,mn=128,xn=256,jn=512,An=30,kn=\"...\",On=800,In=16,Rn=1,zn=2,En=3,Sn=1/0,Wn=9007199254740991,Ln=1.7976931348623157e308,Cn=NaN,Un=4294967295,Bn=Un-1,Tn=Un>>>1,$n=[[\"ary\",mn],[\"bind\",_n],[\"bindKey\",vn],[\"curry\",yn],[\"curryRight\",dn],[\"flip\",jn],[\"partial\",bn],[\"partialRight\",wn],[\"rearg\",xn]],Dn=\"[object Arguments]\",Mn=\"[object Array]\",Fn=\"[object AsyncFunction]\",Nn=\"[object Boolean]\",Pn=\"[object Date]\",qn=\"[object DOMException]\",Zn=\"[object Error]\",Kn=\"[object Function]\",Vn=\"[object GeneratorFunction]\",Gn=\"[object Map]\",Hn=\"[object Number]\",Jn=\"[object Null]\",Yn=\"[object Object]\",Qn=\"[object Promise]\",Xn=\"[object Proxy]\",nt=\"[object RegExp]\",tt=\"[object Set]\",rt=\"[object String]\",et=\"[object Symbol]\",ut=\"[object Undefined]\",it=\"[object WeakMap]\",ot=\"[object WeakSet]\",ft=\"[object ArrayBuffer]\",ct=\"[object DataView]\",at=\"[object Float32Array]\",lt=\"[object Float64Array]\",st=\"[object Int8Array]\",ht=\"[object Int16Array]\",pt=\"[object Int32Array]\",_t=\"[object Uint8Array]\",vt=\"[object Uint8ClampedArray]\",gt=\"[object Uint16Array]\",yt=\"[object Uint32Array]\",dt=/\\b__p \\+= '';/g,bt=/\\b(__p \\+=) '' \\+/g,wt=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,mt=/&(?:amp|lt|gt|quot|#39);/g,xt=/[&<>\"']/g,jt=RegExp(mt.source),At=RegExp(xt.source),kt=/<%-([\\s\\S]+?)%>/g,Ot=/<%([\\s\\S]+?)%>/g,It=/<%=([\\s\\S]+?)%>/g,Rt=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,zt=/^\\w*$/,Et=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,St=/[\\\\^$.*+?()[\\]{}|]/g,Wt=RegExp(St.source),Lt=/^\\s+/,Ct=/\\s/,Ut=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,Bt=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,Tt=/,? & /,$t=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,Dt=/[()=,{}\\[\\]\\/\\s]/,Mt=/\\\\(\\\\)?/g,Ft=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Nt=/\\w*$/,Pt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Zt=/^\\[object .+?Constructor\\]$/,Kt=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\\d*)$/,Gt=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Ht=/($^)/,Jt=/['\\n\\r\\u2028\\u2029\\\\]/g,Yt=\"\\\\ud800-\\\\udfff\",Qt=\"\\\\u0300-\\\\u036f\",Xt=\"\\\\ufe20-\\\\ufe2f\",nr=\"\\\\u20d0-\\\\u20ff\",tr=Qt+Xt+nr,rr=\"\\\\u2700-\\\\u27bf\",er=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",ur=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",ir=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",or=\"\\\\u2000-\\\\u206f\",fr=\" \\\\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\",cr=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",ar=\"\\\\ufe0e\\\\ufe0f\",lr=ur+ir+or+fr,sr=\"['\\u2019]\",hr=\"[\"+Yt+\"]\",pr=\"[\"+lr+\"]\",_r=\"[\"+tr+\"]\",vr=\"\\\\d+\",gr=\"[\"+rr+\"]\",yr=\"[\"+er+\"]\",dr=\"[^\"+Yt+lr+vr+rr+er+cr+\"]\",br=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",wr=\"(?:\"+_r+\"|\"+br+\")\",mr=\"[^\"+Yt+\"]\",xr=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",jr=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Ar=\"[\"+cr+\"]\",kr=\"\\\\u200d\",Or=\"(?:\"+yr+\"|\"+dr+\")\",Ir=\"(?:\"+Ar+\"|\"+dr+\")\",Rr=\"(?:\"+sr+\"(?:d|ll|m|re|s|t|ve))?\",zr=\"(?:\"+sr+\"(?:D|LL|M|RE|S|T|VE))?\",Er=wr+\"?\",Sr=\"[\"+ar+\"]?\",Wr=\"(?:\"+kr+\"(?:\"+[mr,xr,jr].join(\"|\")+\")\"+Sr+Er+\")*\",Lr=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",Cr=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",Ur=Sr+Er+Wr,Br=\"(?:\"+[gr,xr,jr].join(\"|\")+\")\"+Ur,Tr=\"(?:\"+[mr+_r+\"?\",_r,xr,jr,hr].join(\"|\")+\")\",$r=RegExp(sr,\"g\"),Dr=RegExp(_r,\"g\"),Mr=RegExp(br+\"(?=\"+br+\")|\"+Tr+Ur,\"g\"),Fr=RegExp([Ar+\"?\"+yr+\"+\"+Rr+\"(?=\"+[pr,Ar,\"$\"].join(\"|\")+\")\",Ir+\"+\"+zr+\"(?=\"+[pr,Ar+Or,\"$\"].join(\"|\")+\")\",Ar+\"?\"+Or+\"+\"+Rr,Ar+\"+\"+zr,Cr,Lr,vr,Br].join(\"|\"),\"g\"),Nr=RegExp(\"[\"+kr+Yt+tr+ar+\"]\"),Pr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,qr=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Zr=-1,Kr={};\nKr[at]=Kr[lt]=Kr[st]=Kr[ht]=Kr[pt]=Kr[_t]=Kr[vt]=Kr[gt]=Kr[yt]=!0,Kr[Dn]=Kr[Mn]=Kr[ft]=Kr[Nn]=Kr[ct]=Kr[Pn]=Kr[Zn]=Kr[Kn]=Kr[Gn]=Kr[Hn]=Kr[Yn]=Kr[nt]=Kr[tt]=Kr[rt]=Kr[it]=!1;var Vr={};Vr[Dn]=Vr[Mn]=Vr[ft]=Vr[ct]=Vr[Nn]=Vr[Pn]=Vr[at]=Vr[lt]=Vr[st]=Vr[ht]=Vr[pt]=Vr[Gn]=Vr[Hn]=Vr[Yn]=Vr[nt]=Vr[tt]=Vr[rt]=Vr[et]=Vr[_t]=Vr[vt]=Vr[gt]=Vr[yt]=!0,Vr[Zn]=Vr[Kn]=Vr[it]=!1;var Gr={\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\n\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\n\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\n\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\n\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\"\\u015a\":\"S\",\"\\u015c\":\"S\",\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\n\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\"\\u0149\":\"'n\",\"\\u017f\":\"s\"},Hr={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},Jr={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"},Yr={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Qr=parseFloat,Xr=parseInt,ne=\"object\"==typeof global&&global&&global.Object===Object&&global,te=\"object\"==typeof self&&self&&self.Object===Object&&self,re=ne||te||Function(\"return this\")(),ee=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,ue=ee&&\"object\"==typeof module&&module&&!module.nodeType&&module,ie=ue&&ue.exports===ee,oe=ie&&ne.process,fe=function(){\ntry{var n=ue&&ue.require&&ue.require(\"util\").types;return n?n:oe&&oe.binding&&oe.binding(\"util\")}catch(n){}}(),ce=fe&&fe.isArrayBuffer,ae=fe&&fe.isDate,le=fe&&fe.isMap,se=fe&&fe.isRegExp,he=fe&&fe.isSet,pe=fe&&fe.isTypedArray,_e=m(\"length\"),ve=x(Gr),ge=x(Hr),ye=x(Jr),de=function p(x){function Z(n){if(cc(n)&&!bh(n)&&!(n instanceof Ct)){if(n instanceof Y)return n;if(bl.call(n,\"__wrapped__\"))return eo(n)}return new Y(n)}function J(){}function Y(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,\nthis.__index__=0,this.__values__=X}function Ct(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Un,this.__views__=[]}function $t(){var n=new Ct(this.__wrapped__);return n.__actions__=Tu(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Tu(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Tu(this.__views__),n}function Yt(){if(this.__filtered__){var n=new Ct(this);n.__dir__=-1,\nn.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function Qt(){var n=this.__wrapped__.value(),t=this.__dir__,r=bh(n),e=t<0,u=r?n.length:0,i=Oi(0,u,this.__views__),o=i.start,f=i.end,c=f-o,a=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Hl(c,this.__takeCount__);if(!r||!e&&u==c&&p==c)return wu(n,this.__actions__);var _=[];n:for(;c--&&h<p;){a+=t;for(var v=-1,g=n[a];++v<s;){var y=l[v],d=y.iteratee,b=y.type,w=d(g);if(b==zn)g=w;else if(!w){if(b==Rn)continue n;break n}}_[h++]=g}return _}function Xt(n){\nvar t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function nr(){this.__data__=is?is(null):{},this.size=0}function tr(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}function rr(n){var t=this.__data__;if(is){var r=t[n];return r===on?X:r}return bl.call(t,n)?t[n]:X}function er(n){var t=this.__data__;return is?t[n]!==X:bl.call(t,n)}function ur(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=is&&t===X?on:t,this}function ir(n){\nvar t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function or(){this.__data__=[],this.size=0}function fr(n){var t=this.__data__,r=Wr(t,n);return!(r<0)&&(r==t.length-1?t.pop():Ll.call(t,r,1),--this.size,!0)}function cr(n){var t=this.__data__,r=Wr(t,n);return r<0?X:t[r][1]}function ar(n){return Wr(this.__data__,n)>-1}function lr(n,t){var r=this.__data__,e=Wr(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this}function sr(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){\nvar e=n[t];this.set(e[0],e[1])}}function hr(){this.size=0,this.__data__={hash:new Xt,map:new(ts||ir),string:new Xt}}function pr(n){var t=xi(this,n).delete(n);return this.size-=t?1:0,t}function _r(n){return xi(this,n).get(n)}function vr(n){return xi(this,n).has(n)}function gr(n,t){var r=xi(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this}function yr(n){var t=-1,r=null==n?0:n.length;for(this.__data__=new sr;++t<r;)this.add(n[t])}function dr(n){return this.__data__.set(n,on),this}function br(n){\nreturn this.__data__.has(n)}function wr(n){this.size=(this.__data__=new ir(n)).size}function mr(){this.__data__=new ir,this.size=0}function xr(n){var t=this.__data__,r=t.delete(n);return this.size=t.size,r}function jr(n){return this.__data__.get(n)}function Ar(n){return this.__data__.has(n)}function kr(n,t){var r=this.__data__;if(r instanceof ir){var e=r.__data__;if(!ts||e.length<tn-1)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new sr(e)}return r.set(n,t),this.size=r.size,this}function Or(n,t){\nvar r=bh(n),e=!r&&dh(n),u=!r&&!e&&mh(n),i=!r&&!e&&!u&&Oh(n),o=r||e||u||i,f=o?O(n.length,hl):[],c=f.length;for(var a in n)!t&&!bl.call(n,a)||o&&(\"length\"==a||u&&(\"offset\"==a||\"parent\"==a)||i&&(\"buffer\"==a||\"byteLength\"==a||\"byteOffset\"==a)||Ci(a,c))||f.push(a);return f}function Ir(n){var t=n.length;return t?n[tu(0,t-1)]:X}function Rr(n,t){return Xi(Tu(n),Mr(t,0,n.length))}function zr(n){return Xi(Tu(n))}function Er(n,t,r){(r===X||Gf(n[t],r))&&(r!==X||t in n)||Br(n,t,r)}function Sr(n,t,r){var e=n[t];\nbl.call(n,t)&&Gf(e,r)&&(r!==X||t in n)||Br(n,t,r)}function Wr(n,t){for(var r=n.length;r--;)if(Gf(n[r][0],t))return r;return-1}function Lr(n,t,r,e){return ys(n,function(n,u,i){t(e,n,r(n),i)}),e}function Cr(n,t){return n&&$u(t,Pc(t),n)}function Ur(n,t){return n&&$u(t,qc(t),n)}function Br(n,t,r){\"__proto__\"==t&&Tl?Tl(n,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):n[t]=r}function Tr(n,t){for(var r=-1,e=t.length,u=il(e),i=null==n;++r<e;)u[r]=i?X:Mc(n,t[r]);return u}function Mr(n,t,r){return n===n&&(r!==X&&(n=n<=r?n:r),\nt!==X&&(n=n>=t?n:t)),n}function Fr(n,t,e,u,i,o){var f,c=t&an,a=t&ln,l=t&sn;if(e&&(f=i?e(n,u,i,o):e(n)),f!==X)return f;if(!fc(n))return n;var s=bh(n);if(s){if(f=zi(n),!c)return Tu(n,f)}else{var h=zs(n),p=h==Kn||h==Vn;if(mh(n))return Iu(n,c);if(h==Yn||h==Dn||p&&!i){if(f=a||p?{}:Ei(n),!c)return a?Mu(n,Ur(f,n)):Du(n,Cr(f,n))}else{if(!Vr[h])return i?n:{};f=Si(n,h,c)}}o||(o=new wr);var _=o.get(n);if(_)return _;o.set(n,f),kh(n)?n.forEach(function(r){f.add(Fr(r,t,e,r,n,o))}):jh(n)&&n.forEach(function(r,u){\nf.set(u,Fr(r,t,e,u,n,o))});var v=l?a?di:yi:a?qc:Pc,g=s?X:v(n);return r(g||n,function(r,u){g&&(u=r,r=n[u]),Sr(f,u,Fr(r,t,e,u,n,o))}),f}function Nr(n){var t=Pc(n);return function(r){return Pr(r,n,t)}}function Pr(n,t,r){var e=r.length;if(null==n)return!e;for(n=ll(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===X&&!(u in n)||!i(o))return!1}return!0}function Gr(n,t,r){if(\"function\"!=typeof n)throw new pl(en);return Ws(function(){n.apply(X,r)},t)}function Hr(n,t,r,e){var u=-1,i=o,a=!0,l=n.length,s=[],h=t.length;\nif(!l)return s;r&&(t=c(t,z(r))),e?(i=f,a=!1):t.length>=tn&&(i=S,a=!1,t=new yr(t));n:for(;++u<l;){var p=n[u],_=null==r?p:r(p);if(p=e||0!==p?p:0,a&&_===_){for(var v=h;v--;)if(t[v]===_)continue n;s.push(p)}else i(t,_,e)||s.push(p)}return s}function Jr(n,t){var r=!0;return ys(n,function(n,e,u){return r=!!t(n,e,u)}),r}function Yr(n,t,r){for(var e=-1,u=n.length;++e<u;){var i=n[e],o=t(i);if(null!=o&&(f===X?o===o&&!bc(o):r(o,f)))var f=o,c=i}return c}function ne(n,t,r,e){var u=n.length;for(r=kc(r),r<0&&(r=-r>u?0:u+r),\ne=e===X||e>u?u:kc(e),e<0&&(e+=u),e=r>e?0:Oc(e);r<e;)n[r++]=t;return n}function te(n,t){var r=[];return ys(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function ee(n,t,r,e,u){var i=-1,o=n.length;for(r||(r=Li),u||(u=[]);++i<o;){var f=n[i];t>0&&r(f)?t>1?ee(f,t-1,r,e,u):a(u,f):e||(u[u.length]=f)}return u}function ue(n,t){return n&&bs(n,t,Pc)}function oe(n,t){return n&&ws(n,t,Pc)}function fe(n,t){return i(t,function(t){return uc(n[t])})}function _e(n,t){t=ku(t,n);for(var r=0,e=t.length;null!=n&&r<e;)n=n[no(t[r++])];\nreturn r&&r==e?n:X}function de(n,t,r){var e=t(n);return bh(n)?e:a(e,r(n))}function we(n){return null==n?n===X?ut:Jn:Bl&&Bl in ll(n)?ki(n):Ki(n)}function me(n,t){return n>t}function xe(n,t){return null!=n&&bl.call(n,t)}function je(n,t){return null!=n&&t in ll(n)}function Ae(n,t,r){return n>=Hl(t,r)&&n<Gl(t,r)}function ke(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=il(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,z(t))),s=Hl(p.length,s),l[a]=!r&&(t||u>=120&&p.length>=120)?new yr(a&&p):X}p=n[0];\nvar _=-1,v=l[0];n:for(;++_<u&&h.length<s;){var g=p[_],y=t?t(g):g;if(g=r||0!==g?g:0,!(v?S(v,y):e(h,y,r))){for(a=i;--a;){var d=l[a];if(!(d?S(d,y):e(n[a],y,r)))continue n}v&&v.push(y),h.push(g)}}return h}function Oe(n,t,r,e){return ue(n,function(n,u,i){t(e,r(n),u,i)}),e}function Ie(t,r,e){r=ku(r,t),t=Gi(t,r);var u=null==t?t:t[no(jo(r))];return null==u?X:n(u,t,e)}function Re(n){return cc(n)&&we(n)==Dn}function ze(n){return cc(n)&&we(n)==ft}function Ee(n){return cc(n)&&we(n)==Pn}function Se(n,t,r,e,u){\nreturn n===t||(null==n||null==t||!cc(n)&&!cc(t)?n!==n&&t!==t:We(n,t,r,e,Se,u))}function We(n,t,r,e,u,i){var o=bh(n),f=bh(t),c=o?Mn:zs(n),a=f?Mn:zs(t);c=c==Dn?Yn:c,a=a==Dn?Yn:a;var l=c==Yn,s=a==Yn,h=c==a;if(h&&mh(n)){if(!mh(t))return!1;o=!0,l=!1}if(h&&!l)return i||(i=new wr),o||Oh(n)?pi(n,t,r,e,u,i):_i(n,t,c,r,e,u,i);if(!(r&hn)){var p=l&&bl.call(n,\"__wrapped__\"),_=s&&bl.call(t,\"__wrapped__\");if(p||_){var v=p?n.value():n,g=_?t.value():t;return i||(i=new wr),u(v,g,r,e,i)}}return!!h&&(i||(i=new wr),vi(n,t,r,e,u,i));\n}function Le(n){return cc(n)&&zs(n)==Gn}function Ce(n,t,r,e){var u=r.length,i=u,o=!e;if(null==n)return!i;for(n=ll(n);u--;){var f=r[u];if(o&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return!1}for(;++u<i;){f=r[u];var c=f[0],a=n[c],l=f[1];if(o&&f[2]){if(a===X&&!(c in n))return!1}else{var s=new wr;if(e)var h=e(a,l,c,n,t,s);if(!(h===X?Se(l,a,hn|pn,e,s):h))return!1}}return!0}function Ue(n){return!(!fc(n)||Di(n))&&(uc(n)?kl:Zt).test(to(n))}function Be(n){return cc(n)&&we(n)==nt}function Te(n){return cc(n)&&zs(n)==tt;\n}function $e(n){return cc(n)&&oc(n.length)&&!!Kr[we(n)]}function De(n){return\"function\"==typeof n?n:null==n?La:\"object\"==typeof n?bh(n)?Ze(n[0],n[1]):qe(n):Fa(n)}function Me(n){if(!Mi(n))return Vl(n);var t=[];for(var r in ll(n))bl.call(n,r)&&\"constructor\"!=r&&t.push(r);return t}function Fe(n){if(!fc(n))return Zi(n);var t=Mi(n),r=[];for(var e in n)(\"constructor\"!=e||!t&&bl.call(n,e))&&r.push(e);return r}function Ne(n,t){return n<t}function Pe(n,t){var r=-1,e=Hf(n)?il(n.length):[];return ys(n,function(n,u,i){\ne[++r]=t(n,u,i)}),e}function qe(n){var t=ji(n);return 1==t.length&&t[0][2]?Ni(t[0][0],t[0][1]):function(r){return r===n||Ce(r,n,t)}}function Ze(n,t){return Bi(n)&&Fi(t)?Ni(no(n),t):function(r){var e=Mc(r,n);return e===X&&e===t?Nc(r,n):Se(t,e,hn|pn)}}function Ke(n,t,r,e,u){n!==t&&bs(t,function(i,o){if(u||(u=new wr),fc(i))Ve(n,t,o,r,Ke,e,u);else{var f=e?e(Ji(n,o),i,o+\"\",n,t,u):X;f===X&&(f=i),Er(n,o,f)}},qc)}function Ve(n,t,r,e,u,i,o){var f=Ji(n,r),c=Ji(t,r),a=o.get(c);if(a)return Er(n,r,a),X;var l=i?i(f,c,r+\"\",n,t,o):X,s=l===X;\nif(s){var h=bh(c),p=!h&&mh(c),_=!h&&!p&&Oh(c);l=c,h||p||_?bh(f)?l=f:Jf(f)?l=Tu(f):p?(s=!1,l=Iu(c,!0)):_?(s=!1,l=Wu(c,!0)):l=[]:gc(c)||dh(c)?(l=f,dh(f)?l=Rc(f):fc(f)&&!uc(f)||(l=Ei(c))):s=!1}s&&(o.set(c,l),u(l,c,e,i,o),o.delete(c)),Er(n,r,l)}function Ge(n,t){var r=n.length;if(r)return t+=t<0?r:0,Ci(t,r)?n[t]:X}function He(n,t,r){t=t.length?c(t,function(n){return bh(n)?function(t){return _e(t,1===n.length?n[0]:n)}:n}):[La];var e=-1;return t=c(t,z(mi())),A(Pe(n,function(n,r,u){return{criteria:c(t,function(t){\nreturn t(n)}),index:++e,value:n}}),function(n,t){return Cu(n,t,r)})}function Je(n,t){return Ye(n,t,function(t,r){return Nc(n,r)})}function Ye(n,t,r){for(var e=-1,u=t.length,i={};++e<u;){var o=t[e],f=_e(n,o);r(f,o)&&fu(i,ku(o,n),f)}return i}function Qe(n){return function(t){return _e(t,n)}}function Xe(n,t,r,e){var u=e?d:y,i=-1,o=t.length,f=n;for(n===t&&(t=Tu(t)),r&&(f=c(n,z(r)));++i<o;)for(var a=0,l=t[i],s=r?r(l):l;(a=u(f,s,a,e))>-1;)f!==n&&Ll.call(f,a,1),Ll.call(n,a,1);return n}function nu(n,t){for(var r=n?t.length:0,e=r-1;r--;){\nvar u=t[r];if(r==e||u!==i){var i=u;Ci(u)?Ll.call(n,u,1):yu(n,u)}}return n}function tu(n,t){return n+Nl(Ql()*(t-n+1))}function ru(n,t,r,e){for(var u=-1,i=Gl(Fl((t-n)/(r||1)),0),o=il(i);i--;)o[e?i:++u]=n,n+=r;return o}function eu(n,t){var r=\"\";if(!n||t<1||t>Wn)return r;do t%2&&(r+=n),t=Nl(t/2),t&&(n+=n);while(t);return r}function uu(n,t){return Ls(Vi(n,t,La),n+\"\")}function iu(n){return Ir(ra(n))}function ou(n,t){var r=ra(n);return Xi(r,Mr(t,0,r.length))}function fu(n,t,r,e){if(!fc(n))return n;t=ku(t,n);\nfor(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++u<i;){var c=no(t[u]),a=r;if(\"__proto__\"===c||\"constructor\"===c||\"prototype\"===c)return n;if(u!=o){var l=f[c];a=e?e(l,c,f):X,a===X&&(a=fc(l)?l:Ci(t[u+1])?[]:{})}Sr(f,c,a),f=f[c]}return n}function cu(n){return Xi(ra(n))}function au(n,t,r){var e=-1,u=n.length;t<0&&(t=-t>u?0:u+t),r=r>u?u:r,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=il(u);++e<u;)i[e]=n[e+t];return i}function lu(n,t){var r;return ys(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function su(n,t,r){\nvar e=0,u=null==n?e:n.length;if(\"number\"==typeof t&&t===t&&u<=Tn){for(;e<u;){var i=e+u>>>1,o=n[i];null!==o&&!bc(o)&&(r?o<=t:o<t)?e=i+1:u=i}return u}return hu(n,t,La,r)}function hu(n,t,r,e){var u=0,i=null==n?0:n.length;if(0===i)return 0;t=r(t);for(var o=t!==t,f=null===t,c=bc(t),a=t===X;u<i;){var l=Nl((u+i)/2),s=r(n[l]),h=s!==X,p=null===s,_=s===s,v=bc(s);if(o)var g=e||_;else g=a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):!p&&!v&&(e?s<=t:s<t);g?u=l+1:i=l}return Hl(i,Bn)}function pu(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){\nvar o=n[r],f=t?t(o):o;if(!r||!Gf(f,c)){var c=f;i[u++]=0===o?0:o}}return i}function _u(n){return\"number\"==typeof n?n:bc(n)?Cn:+n}function vu(n){if(\"string\"==typeof n)return n;if(bh(n))return c(n,vu)+\"\";if(bc(n))return vs?vs.call(n):\"\";var t=n+\"\";return\"0\"==t&&1/n==-Sn?\"-0\":t}function gu(n,t,r){var e=-1,u=o,i=n.length,c=!0,a=[],l=a;if(r)c=!1,u=f;else if(i>=tn){var s=t?null:ks(n);if(s)return P(s);c=!1,u=S,l=new yr}else l=t?[]:a;n:for(;++e<i;){var h=n[e],p=t?t(h):h;if(h=r||0!==h?h:0,c&&p===p){for(var _=l.length;_--;)if(l[_]===p)continue n;\nt&&l.push(p),a.push(h)}else u(l,p,r)||(l!==a&&l.push(p),a.push(h))}return a}function yu(n,t){return t=ku(t,n),n=Gi(n,t),null==n||delete n[no(jo(t))]}function du(n,t,r,e){return fu(n,t,r(_e(n,t)),e)}function bu(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++i<u)&&t(n[i],i,n););return r?au(n,e?0:i,e?i+1:u):au(n,e?i+1:0,e?u:i)}function wu(n,t){var r=n;return r instanceof Ct&&(r=r.value()),l(t,function(n,t){return t.func.apply(t.thisArg,a([n],t.args))},r)}function mu(n,t,r){var e=n.length;if(e<2)return e?gu(n[0]):[];\nfor(var u=-1,i=il(e);++u<e;)for(var o=n[u],f=-1;++f<e;)f!=u&&(i[u]=Hr(i[u]||o,n[f],t,r));return gu(ee(i,1),t,r)}function xu(n,t,r){for(var e=-1,u=n.length,i=t.length,o={};++e<u;){r(o,n[e],e<i?t[e]:X)}return o}function ju(n){return Jf(n)?n:[]}function Au(n){return\"function\"==typeof n?n:La}function ku(n,t){return bh(n)?n:Bi(n,t)?[n]:Cs(Ec(n))}function Ou(n,t,r){var e=n.length;return r=r===X?e:r,!t&&r>=e?n:au(n,t,r)}function Iu(n,t){if(t)return n.slice();var r=n.length,e=zl?zl(r):new n.constructor(r);\nreturn n.copy(e),e}function Ru(n){var t=new n.constructor(n.byteLength);return new Rl(t).set(new Rl(n)),t}function zu(n,t){return new n.constructor(t?Ru(n.buffer):n.buffer,n.byteOffset,n.byteLength)}function Eu(n){var t=new n.constructor(n.source,Nt.exec(n));return t.lastIndex=n.lastIndex,t}function Su(n){return _s?ll(_s.call(n)):{}}function Wu(n,t){return new n.constructor(t?Ru(n.buffer):n.buffer,n.byteOffset,n.length)}function Lu(n,t){if(n!==t){var r=n!==X,e=null===n,u=n===n,i=bc(n),o=t!==X,f=null===t,c=t===t,a=bc(t);\nif(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n<t||a&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!c)return-1}return 0}function Cu(n,t,r){for(var e=-1,u=n.criteria,i=t.criteria,o=u.length,f=r.length;++e<o;){var c=Lu(u[e],i[e]);if(c){if(e>=f)return c;return c*(\"desc\"==r[e]?-1:1)}}return n.index-t.index}function Uu(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Gl(i-o,0),l=il(c+a),s=!e;++f<c;)l[f]=t[f];for(;++u<o;)(s||u<i)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];return l;\n}function Bu(n,t,r,e){for(var u=-1,i=n.length,o=-1,f=r.length,c=-1,a=t.length,l=Gl(i-f,0),s=il(l+a),h=!e;++u<l;)s[u]=n[u];for(var p=u;++c<a;)s[p+c]=t[c];for(;++o<f;)(h||u<i)&&(s[p+r[o]]=n[u++]);return s}function Tu(n,t){var r=-1,e=n.length;for(t||(t=il(e));++r<e;)t[r]=n[r];return t}function $u(n,t,r,e){var u=!r;r||(r={});for(var i=-1,o=t.length;++i<o;){var f=t[i],c=e?e(r[f],n[f],f,r,n):X;c===X&&(c=n[f]),u?Br(r,f,c):Sr(r,f,c)}return r}function Du(n,t){return $u(n,Is(n),t)}function Mu(n,t){return $u(n,Rs(n),t);\n}function Fu(n,r){return function(e,u){var i=bh(e)?t:Lr,o=r?r():{};return i(e,n,mi(u,2),o)}}function Nu(n){return uu(function(t,r){var e=-1,u=r.length,i=u>1?r[u-1]:X,o=u>2?r[2]:X;for(i=n.length>3&&\"function\"==typeof i?(u--,i):X,o&&Ui(r[0],r[1],o)&&(i=u<3?X:i,u=1),t=ll(t);++e<u;){var f=r[e];f&&n(t,f,e,i)}return t})}function Pu(n,t){return function(r,e){if(null==r)return r;if(!Hf(r))return n(r,e);for(var u=r.length,i=t?u:-1,o=ll(r);(t?i--:++i<u)&&e(o[i],i,o)!==!1;);return r}}function qu(n){return function(t,r,e){\nfor(var u=-1,i=ll(t),o=e(t),f=o.length;f--;){var c=o[n?f:++u];if(r(i[c],c,i)===!1)break}return t}}function Zu(n,t,r){function e(){return(this&&this!==re&&this instanceof e?i:n).apply(u?r:this,arguments)}var u=t&_n,i=Gu(n);return e}function Ku(n){return function(t){t=Ec(t);var r=T(t)?G(t):X,e=r?r[0]:t.charAt(0),u=r?Ou(r,1).join(\"\"):t.slice(1);return e[n]()+u}}function Vu(n){return function(t){return l(Ra(ca(t).replace($r,\"\")),n,\"\")}}function Gu(n){return function(){var t=arguments;switch(t.length){\ncase 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=gs(n.prototype),e=n.apply(r,t);return fc(e)?e:r}}function Hu(t,r,e){function u(){for(var o=arguments.length,f=il(o),c=o,a=wi(u);c--;)f[c]=arguments[c];var l=o<3&&f[0]!==a&&f[o-1]!==a?[]:N(f,a);\nreturn o-=l.length,o<e?oi(t,r,Qu,u.placeholder,X,f,l,X,X,e-o):n(this&&this!==re&&this instanceof u?i:t,this,f)}var i=Gu(t);return u}function Ju(n){return function(t,r,e){var u=ll(t);if(!Hf(t)){var i=mi(r,3);t=Pc(t),r=function(n){return i(u[n],n,u)}}var o=n(t,r,e);return o>-1?u[i?t[o]:o]:X}}function Yu(n){return gi(function(t){var r=t.length,e=r,u=Y.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if(\"function\"!=typeof i)throw new pl(en);if(u&&!o&&\"wrapper\"==bi(i))var o=new Y([],!0)}for(e=o?e:r;++e<r;){\ni=t[e];var f=bi(i),c=\"wrapper\"==f?Os(i):X;o=c&&$i(c[0])&&c[1]==(mn|yn|bn|xn)&&!c[4].length&&1==c[9]?o[bi(c[0])].apply(o,c[3]):1==i.length&&$i(i)?o[f]():o.thru(i)}return function(){var n=arguments,e=n[0];if(o&&1==n.length&&bh(e))return o.plant(e).value();for(var u=0,i=r?t[u].apply(this,n):e;++u<r;)i=t[u].call(this,i);return i}})}function Qu(n,t,r,e,u,i,o,f,c,a){function l(){for(var y=arguments.length,d=il(y),b=y;b--;)d[b]=arguments[b];if(_)var w=wi(l),m=C(d,w);if(e&&(d=Uu(d,e,u,_)),i&&(d=Bu(d,i,o,_)),\ny-=m,_&&y<a){return oi(n,t,Qu,l.placeholder,r,d,N(d,w),f,c,a-y)}var x=h?r:this,j=p?x[n]:n;return y=d.length,f?d=Hi(d,f):v&&y>1&&d.reverse(),s&&c<y&&(d.length=c),this&&this!==re&&this instanceof l&&(j=g||Gu(j)),j.apply(x,d)}var s=t&mn,h=t&_n,p=t&vn,_=t&(yn|dn),v=t&jn,g=p?X:Gu(n);return l}function Xu(n,t){return function(r,e){return Oe(r,n,t(e),{})}}function ni(n,t){return function(r,e){var u;if(r===X&&e===X)return t;if(r!==X&&(u=r),e!==X){if(u===X)return e;\"string\"==typeof r||\"string\"==typeof e?(r=vu(r),\ne=vu(e)):(r=_u(r),e=_u(e)),u=n(r,e)}return u}}function ti(t){return gi(function(r){return r=c(r,z(mi())),uu(function(e){var u=this;return t(r,function(t){return n(t,u,e)})})})}function ri(n,t){t=t===X?\" \":vu(t);var r=t.length;if(r<2)return r?eu(t,n):t;var e=eu(t,Fl(n/V(t)));return T(t)?Ou(G(e),0,n).join(\"\"):e.slice(0,n)}function ei(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=il(l+c),h=this&&this!==re&&this instanceof i?f:t;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++r];\nreturn n(h,o?e:this,s)}var o=r&_n,f=Gu(t);return i}function ui(n){return function(t,r,e){return e&&\"number\"!=typeof e&&Ui(t,r,e)&&(r=e=X),t=Ac(t),r===X?(r=t,t=0):r=Ac(r),e=e===X?t<r?1:-1:Ac(e),ru(t,r,e,n)}}function ii(n){return function(t,r){return\"string\"==typeof t&&\"string\"==typeof r||(t=Ic(t),r=Ic(r)),n(t,r)}}function oi(n,t,r,e,u,i,o,f,c,a){var l=t&yn,s=l?o:X,h=l?X:o,p=l?i:X,_=l?X:i;t|=l?bn:wn,t&=~(l?wn:bn),t&gn||(t&=~(_n|vn));var v=[n,t,u,p,s,_,h,f,c,a],g=r.apply(X,v);return $i(n)&&Ss(g,v),g.placeholder=e,\nYi(g,n,t)}function fi(n){var t=al[n];return function(n,r){if(n=Ic(n),r=null==r?0:Hl(kc(r),292),r&&Zl(n)){var e=(Ec(n)+\"e\").split(\"e\");return e=(Ec(t(e[0]+\"e\"+(+e[1]+r)))+\"e\").split(\"e\"),+(e[0]+\"e\"+(+e[1]-r))}return t(n)}}function ci(n){return function(t){var r=zs(t);return r==Gn?M(t):r==tt?q(t):I(t,n(t))}}function ai(n,t,r,e,u,i,o,f){var c=t&vn;if(!c&&\"function\"!=typeof n)throw new pl(en);var a=e?e.length:0;if(a||(t&=~(bn|wn),e=u=X),o=o===X?o:Gl(kc(o),0),f=f===X?f:kc(f),a-=u?u.length:0,t&wn){var l=e,s=u;\ne=u=X}var h=c?X:Os(n),p=[n,t,r,e,u,l,s,i,o,f];if(h&&qi(p,h),n=p[0],t=p[1],r=p[2],e=p[3],u=p[4],f=p[9]=p[9]===X?c?0:n.length:Gl(p[9]-a,0),!f&&t&(yn|dn)&&(t&=~(yn|dn)),t&&t!=_n)_=t==yn||t==dn?Hu(n,t,f):t!=bn&&t!=(_n|bn)||u.length?Qu.apply(X,p):ei(n,t,r,e);else var _=Zu(n,t,r);return Yi((h?ms:Ss)(_,p),n,t)}function li(n,t,r,e){return n===X||Gf(n,gl[r])&&!bl.call(e,r)?t:n}function si(n,t,r,e,u,i){return fc(n)&&fc(t)&&(i.set(t,n),Ke(n,t,X,si,i),i.delete(t)),n}function hi(n){return gc(n)?X:n}function pi(n,t,r,e,u,i){\nvar o=r&hn,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return!1;var a=i.get(n),l=i.get(t);if(a&&l)return a==t&&l==n;var s=-1,p=!0,_=r&pn?new yr:X;for(i.set(n,t),i.set(t,n);++s<f;){var v=n[s],g=t[s];if(e)var y=o?e(g,v,s,t,n,i):e(v,g,s,n,t,i);if(y!==X){if(y)continue;p=!1;break}if(_){if(!h(t,function(n,t){if(!S(_,t)&&(v===n||u(v,n,r,e,i)))return _.push(t)})){p=!1;break}}else if(v!==g&&!u(v,g,r,e,i)){p=!1;break}}return i.delete(n),i.delete(t),p}function _i(n,t,r,e,u,i,o){switch(r){case ct:if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)return!1;\nn=n.buffer,t=t.buffer;case ft:return!(n.byteLength!=t.byteLength||!i(new Rl(n),new Rl(t)));case Nn:case Pn:case Hn:return Gf(+n,+t);case Zn:return n.name==t.name&&n.message==t.message;case nt:case rt:return n==t+\"\";case Gn:var f=M;case tt:var c=e&hn;if(f||(f=P),n.size!=t.size&&!c)return!1;var a=o.get(n);if(a)return a==t;e|=pn,o.set(n,t);var l=pi(f(n),f(t),e,u,i,o);return o.delete(n),l;case et:if(_s)return _s.call(n)==_s.call(t)}return!1}function vi(n,t,r,e,u,i){var o=r&hn,f=yi(n),c=f.length;if(c!=yi(t).length&&!o)return!1;\nfor(var a=c;a--;){var l=f[a];if(!(o?l in t:bl.call(t,l)))return!1}var s=i.get(n),h=i.get(t);if(s&&h)return s==t&&h==n;var p=!0;i.set(n,t),i.set(t,n);for(var _=o;++a<c;){l=f[a];var v=n[l],g=t[l];if(e)var y=o?e(g,v,l,t,n,i):e(v,g,l,n,t,i);if(!(y===X?v===g||u(v,g,r,e,i):y)){p=!1;break}_||(_=\"constructor\"==l)}if(p&&!_){var d=n.constructor,b=t.constructor;d!=b&&\"constructor\"in n&&\"constructor\"in t&&!(\"function\"==typeof d&&d instanceof d&&\"function\"==typeof b&&b instanceof b)&&(p=!1)}return i.delete(n),\ni.delete(t),p}function gi(n){return Ls(Vi(n,X,_o),n+\"\")}function yi(n){return de(n,Pc,Is)}function di(n){return de(n,qc,Rs)}function bi(n){for(var t=n.name+\"\",r=fs[t],e=bl.call(fs,t)?r.length:0;e--;){var u=r[e],i=u.func;if(null==i||i==n)return u.name}return t}function wi(n){return(bl.call(Z,\"placeholder\")?Z:n).placeholder}function mi(){var n=Z.iteratee||Ca;return n=n===Ca?De:n,arguments.length?n(arguments[0],arguments[1]):n}function xi(n,t){var r=n.__data__;return Ti(t)?r[\"string\"==typeof t?\"string\":\"hash\"]:r.map;\n}function ji(n){for(var t=Pc(n),r=t.length;r--;){var e=t[r],u=n[e];t[r]=[e,u,Fi(u)]}return t}function Ai(n,t){var r=B(n,t);return Ue(r)?r:X}function ki(n){var t=bl.call(n,Bl),r=n[Bl];try{n[Bl]=X;var e=!0}catch(n){}var u=xl.call(n);return e&&(t?n[Bl]=r:delete n[Bl]),u}function Oi(n,t,r){for(var e=-1,u=r.length;++e<u;){var i=r[e],o=i.size;switch(i.type){case\"drop\":n+=o;break;case\"dropRight\":t-=o;break;case\"take\":t=Hl(t,n+o);break;case\"takeRight\":n=Gl(n,t-o)}}return{start:n,end:t}}function Ii(n){var t=n.match(Bt);\nreturn t?t[1].split(Tt):[]}function Ri(n,t,r){t=ku(t,n);for(var e=-1,u=t.length,i=!1;++e<u;){var o=no(t[e]);if(!(i=null!=n&&r(n,o)))break;n=n[o]}return i||++e!=u?i:(u=null==n?0:n.length,!!u&&oc(u)&&Ci(o,u)&&(bh(n)||dh(n)))}function zi(n){var t=n.length,r=new n.constructor(t);return t&&\"string\"==typeof n[0]&&bl.call(n,\"index\")&&(r.index=n.index,r.input=n.input),r}function Ei(n){return\"function\"!=typeof n.constructor||Mi(n)?{}:gs(El(n))}function Si(n,t,r){var e=n.constructor;switch(t){case ft:return Ru(n);\ncase Nn:case Pn:return new e(+n);case ct:return zu(n,r);case at:case lt:case st:case ht:case pt:case _t:case vt:case gt:case yt:return Wu(n,r);case Gn:return new e;case Hn:case rt:return new e(n);case nt:return Eu(n);case tt:return new e;case et:return Su(n)}}function Wi(n,t){var r=t.length;if(!r)return n;var e=r-1;return t[e]=(r>1?\"& \":\"\")+t[e],t=t.join(r>2?\", \":\" \"),n.replace(Ut,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}function Li(n){return bh(n)||dh(n)||!!(Cl&&n&&n[Cl])}function Ci(n,t){var r=typeof n;\nreturn t=null==t?Wn:t,!!t&&(\"number\"==r||\"symbol\"!=r&&Vt.test(n))&&n>-1&&n%1==0&&n<t}function Ui(n,t,r){if(!fc(r))return!1;var e=typeof t;return!!(\"number\"==e?Hf(r)&&Ci(t,r.length):\"string\"==e&&t in r)&&Gf(r[t],n)}function Bi(n,t){if(bh(n))return!1;var r=typeof n;return!(\"number\"!=r&&\"symbol\"!=r&&\"boolean\"!=r&&null!=n&&!bc(n))||(zt.test(n)||!Rt.test(n)||null!=t&&n in ll(t))}function Ti(n){var t=typeof n;return\"string\"==t||\"number\"==t||\"symbol\"==t||\"boolean\"==t?\"__proto__\"!==n:null===n}function $i(n){\nvar t=bi(n),r=Z[t];if(\"function\"!=typeof r||!(t in Ct.prototype))return!1;if(n===r)return!0;var e=Os(r);return!!e&&n===e[0]}function Di(n){return!!ml&&ml in n}function Mi(n){var t=n&&n.constructor;return n===(\"function\"==typeof t&&t.prototype||gl)}function Fi(n){return n===n&&!fc(n)}function Ni(n,t){return function(r){return null!=r&&(r[n]===t&&(t!==X||n in ll(r)))}}function Pi(n){var t=Cf(n,function(n){return r.size===fn&&r.clear(),n}),r=t.cache;return t}function qi(n,t){var r=n[1],e=t[1],u=r|e,i=u<(_n|vn|mn),o=e==mn&&r==yn||e==mn&&r==xn&&n[7].length<=t[8]||e==(mn|xn)&&t[7].length<=t[8]&&r==yn;\nif(!i&&!o)return n;e&_n&&(n[2]=t[2],u|=r&_n?0:gn);var f=t[3];if(f){var c=n[3];n[3]=c?Uu(c,f,t[4]):f,n[4]=c?N(n[3],cn):t[4]}return f=t[5],f&&(c=n[5],n[5]=c?Bu(c,f,t[6]):f,n[6]=c?N(n[5],cn):t[6]),f=t[7],f&&(n[7]=f),e&mn&&(n[8]=null==n[8]?t[8]:Hl(n[8],t[8])),null==n[9]&&(n[9]=t[9]),n[0]=t[0],n[1]=u,n}function Zi(n){var t=[];if(null!=n)for(var r in ll(n))t.push(r);return t}function Ki(n){return xl.call(n)}function Vi(t,r,e){return r=Gl(r===X?t.length-1:r,0),function(){for(var u=arguments,i=-1,o=Gl(u.length-r,0),f=il(o);++i<o;)f[i]=u[r+i];\ni=-1;for(var c=il(r+1);++i<r;)c[i]=u[i];return c[r]=e(f),n(t,this,c)}}function Gi(n,t){return t.length<2?n:_e(n,au(t,0,-1))}function Hi(n,t){for(var r=n.length,e=Hl(t.length,r),u=Tu(n);e--;){var i=t[e];n[e]=Ci(i,r)?u[i]:X}return n}function Ji(n,t){if((\"constructor\"!==t||\"function\"!=typeof n[t])&&\"__proto__\"!=t)return n[t]}function Yi(n,t,r){var e=t+\"\";return Ls(n,Wi(e,ro(Ii(e),r)))}function Qi(n){var t=0,r=0;return function(){var e=Jl(),u=In-(e-r);if(r=e,u>0){if(++t>=On)return arguments[0]}else t=0;\nreturn n.apply(X,arguments)}}function Xi(n,t){var r=-1,e=n.length,u=e-1;for(t=t===X?e:t;++r<t;){var i=tu(r,u),o=n[i];n[i]=n[r],n[r]=o}return n.length=t,n}function no(n){if(\"string\"==typeof n||bc(n))return n;var t=n+\"\";return\"0\"==t&&1/n==-Sn?\"-0\":t}function to(n){if(null!=n){try{return dl.call(n)}catch(n){}try{return n+\"\"}catch(n){}}return\"\"}function ro(n,t){return r($n,function(r){var e=\"_.\"+r[0];t&r[1]&&!o(n,e)&&n.push(e)}),n.sort()}function eo(n){if(n instanceof Ct)return n.clone();var t=new Y(n.__wrapped__,n.__chain__);\nreturn t.__actions__=Tu(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function uo(n,t,r){t=(r?Ui(n,t,r):t===X)?1:Gl(kc(t),0);var e=null==n?0:n.length;if(!e||t<1)return[];for(var u=0,i=0,o=il(Fl(e/t));u<e;)o[i++]=au(n,u,u+=t);return o}function io(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++t<r;){var i=n[t];i&&(u[e++]=i)}return u}function oo(){var n=arguments.length;if(!n)return[];for(var t=il(n-1),r=arguments[0],e=n;e--;)t[e-1]=arguments[e];return a(bh(r)?Tu(r):[r],ee(t,1));\n}function fo(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===X?1:kc(t),au(n,t<0?0:t,e)):[]}function co(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===X?1:kc(t),t=e-t,au(n,0,t<0?0:t)):[]}function ao(n,t){return n&&n.length?bu(n,mi(t,3),!0,!0):[]}function lo(n,t){return n&&n.length?bu(n,mi(t,3),!0):[]}function so(n,t,r,e){var u=null==n?0:n.length;return u?(r&&\"number\"!=typeof r&&Ui(n,t,r)&&(r=0,e=u),ne(n,t,r,e)):[]}function ho(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=null==r?0:kc(r);\nreturn u<0&&(u=Gl(e+u,0)),g(n,mi(t,3),u)}function po(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==X&&(u=kc(r),u=r<0?Gl(e+u,0):Hl(u,e-1)),g(n,mi(t,3),u,!0)}function _o(n){return(null==n?0:n.length)?ee(n,1):[]}function vo(n){return(null==n?0:n.length)?ee(n,Sn):[]}function go(n,t){return(null==n?0:n.length)?(t=t===X?1:kc(t),ee(n,t)):[]}function yo(n){for(var t=-1,r=null==n?0:n.length,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e}function bo(n){return n&&n.length?n[0]:X}function wo(n,t,r){\nvar e=null==n?0:n.length;if(!e)return-1;var u=null==r?0:kc(r);return u<0&&(u=Gl(e+u,0)),y(n,t,u)}function mo(n){return(null==n?0:n.length)?au(n,0,-1):[]}function xo(n,t){return null==n?\"\":Kl.call(n,t)}function jo(n){var t=null==n?0:n.length;return t?n[t-1]:X}function Ao(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;return r!==X&&(u=kc(r),u=u<0?Gl(e+u,0):Hl(u,e-1)),t===t?K(n,t,u):g(n,b,u,!0)}function ko(n,t){return n&&n.length?Ge(n,kc(t)):X}function Oo(n,t){return n&&n.length&&t&&t.length?Xe(n,t):n;\n}function Io(n,t,r){return n&&n.length&&t&&t.length?Xe(n,t,mi(r,2)):n}function Ro(n,t,r){return n&&n.length&&t&&t.length?Xe(n,t,X,r):n}function zo(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],i=n.length;for(t=mi(t,3);++e<i;){var o=n[e];t(o,e,n)&&(r.push(o),u.push(e))}return nu(n,u),r}function Eo(n){return null==n?n:Xl.call(n)}function So(n,t,r){var e=null==n?0:n.length;return e?(r&&\"number\"!=typeof r&&Ui(n,t,r)?(t=0,r=e):(t=null==t?0:kc(t),r=r===X?e:kc(r)),au(n,t,r)):[]}function Wo(n,t){\nreturn su(n,t)}function Lo(n,t,r){return hu(n,t,mi(r,2))}function Co(n,t){var r=null==n?0:n.length;if(r){var e=su(n,t);if(e<r&&Gf(n[e],t))return e}return-1}function Uo(n,t){return su(n,t,!0)}function Bo(n,t,r){return hu(n,t,mi(r,2),!0)}function To(n,t){if(null==n?0:n.length){var r=su(n,t,!0)-1;if(Gf(n[r],t))return r}return-1}function $o(n){return n&&n.length?pu(n):[]}function Do(n,t){return n&&n.length?pu(n,mi(t,2)):[]}function Mo(n){var t=null==n?0:n.length;return t?au(n,1,t):[]}function Fo(n,t,r){\nreturn n&&n.length?(t=r||t===X?1:kc(t),au(n,0,t<0?0:t)):[]}function No(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===X?1:kc(t),t=e-t,au(n,t<0?0:t,e)):[]}function Po(n,t){return n&&n.length?bu(n,mi(t,3),!1,!0):[]}function qo(n,t){return n&&n.length?bu(n,mi(t,3)):[]}function Zo(n){return n&&n.length?gu(n):[]}function Ko(n,t){return n&&n.length?gu(n,mi(t,2)):[]}function Vo(n,t){return t=\"function\"==typeof t?t:X,n&&n.length?gu(n,X,t):[]}function Go(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){\nif(Jf(n))return t=Gl(n.length,t),!0}),O(t,function(t){return c(n,m(t))})}function Ho(t,r){if(!t||!t.length)return[];var e=Go(t);return null==r?e:c(e,function(t){return n(r,X,t)})}function Jo(n,t){return xu(n||[],t||[],Sr)}function Yo(n,t){return xu(n||[],t||[],fu)}function Qo(n){var t=Z(n);return t.__chain__=!0,t}function Xo(n,t){return t(n),n}function nf(n,t){return t(n)}function tf(){return Qo(this)}function rf(){return new Y(this.value(),this.__chain__)}function ef(){this.__values__===X&&(this.__values__=jc(this.value()));\nvar n=this.__index__>=this.__values__.length;return{done:n,value:n?X:this.__values__[this.__index__++]}}function uf(){return this}function of(n){for(var t,r=this;r instanceof J;){var e=eo(r);e.__index__=0,e.__values__=X,t?u.__wrapped__=e:t=e;var u=e;r=r.__wrapped__}return u.__wrapped__=n,t}function ff(){var n=this.__wrapped__;if(n instanceof Ct){var t=n;return this.__actions__.length&&(t=new Ct(this)),t=t.reverse(),t.__actions__.push({func:nf,args:[Eo],thisArg:X}),new Y(t,this.__chain__)}return this.thru(Eo);\n}function cf(){return wu(this.__wrapped__,this.__actions__)}function af(n,t,r){var e=bh(n)?u:Jr;return r&&Ui(n,t,r)&&(t=X),e(n,mi(t,3))}function lf(n,t){return(bh(n)?i:te)(n,mi(t,3))}function sf(n,t){return ee(yf(n,t),1)}function hf(n,t){return ee(yf(n,t),Sn)}function pf(n,t,r){return r=r===X?1:kc(r),ee(yf(n,t),r)}function _f(n,t){return(bh(n)?r:ys)(n,mi(t,3))}function vf(n,t){return(bh(n)?e:ds)(n,mi(t,3))}function gf(n,t,r,e){n=Hf(n)?n:ra(n),r=r&&!e?kc(r):0;var u=n.length;return r<0&&(r=Gl(u+r,0)),\ndc(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&y(n,t,r)>-1}function yf(n,t){return(bh(n)?c:Pe)(n,mi(t,3))}function df(n,t,r,e){return null==n?[]:(bh(t)||(t=null==t?[]:[t]),r=e?X:r,bh(r)||(r=null==r?[]:[r]),He(n,t,r))}function bf(n,t,r){var e=bh(n)?l:j,u=arguments.length<3;return e(n,mi(t,4),r,u,ys)}function wf(n,t,r){var e=bh(n)?s:j,u=arguments.length<3;return e(n,mi(t,4),r,u,ds)}function mf(n,t){return(bh(n)?i:te)(n,Uf(mi(t,3)))}function xf(n){return(bh(n)?Ir:iu)(n)}function jf(n,t,r){return t=(r?Ui(n,t,r):t===X)?1:kc(t),\n(bh(n)?Rr:ou)(n,t)}function Af(n){return(bh(n)?zr:cu)(n)}function kf(n){if(null==n)return 0;if(Hf(n))return dc(n)?V(n):n.length;var t=zs(n);return t==Gn||t==tt?n.size:Me(n).length}function Of(n,t,r){var e=bh(n)?h:lu;return r&&Ui(n,t,r)&&(t=X),e(n,mi(t,3))}function If(n,t){if(\"function\"!=typeof t)throw new pl(en);return n=kc(n),function(){if(--n<1)return t.apply(this,arguments)}}function Rf(n,t,r){return t=r?X:t,t=n&&null==t?n.length:t,ai(n,mn,X,X,X,X,t)}function zf(n,t){var r;if(\"function\"!=typeof t)throw new pl(en);\nreturn n=kc(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=X),r}}function Ef(n,t,r){t=r?X:t;var e=ai(n,yn,X,X,X,X,X,t);return e.placeholder=Ef.placeholder,e}function Sf(n,t,r){t=r?X:t;var e=ai(n,dn,X,X,X,X,X,t);return e.placeholder=Sf.placeholder,e}function Wf(n,t,r){function e(t){var r=h,e=p;return h=p=X,d=t,v=n.apply(e,r)}function u(n){return d=n,g=Ws(f,t),b?e(n):v}function i(n){var r=n-y,e=n-d,u=t-r;return w?Hl(u,_-e):u}function o(n){var r=n-y,e=n-d;return y===X||r>=t||r<0||w&&e>=_;\n}function f(){var n=fh();return o(n)?c(n):(g=Ws(f,i(n)),X)}function c(n){return g=X,m&&h?e(n):(h=p=X,v)}function a(){g!==X&&As(g),d=0,h=y=p=g=X}function l(){return g===X?v:c(fh())}function s(){var n=fh(),r=o(n);if(h=arguments,p=this,y=n,r){if(g===X)return u(y);if(w)return As(g),g=Ws(f,t),e(y)}return g===X&&(g=Ws(f,t)),v}var h,p,_,v,g,y,d=0,b=!1,w=!1,m=!0;if(\"function\"!=typeof n)throw new pl(en);return t=Ic(t)||0,fc(r)&&(b=!!r.leading,w=\"maxWait\"in r,_=w?Gl(Ic(r.maxWait)||0,t):_,m=\"trailing\"in r?!!r.trailing:m),\ns.cancel=a,s.flush=l,s}function Lf(n){return ai(n,jn)}function Cf(n,t){if(\"function\"!=typeof n||null!=t&&\"function\"!=typeof t)throw new pl(en);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Cf.Cache||sr),r}function Uf(n){if(\"function\"!=typeof n)throw new pl(en);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:\nreturn!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Bf(n){return zf(2,n)}function Tf(n,t){if(\"function\"!=typeof n)throw new pl(en);return t=t===X?t:kc(t),uu(n,t)}function $f(t,r){if(\"function\"!=typeof t)throw new pl(en);return r=null==r?0:Gl(kc(r),0),uu(function(e){var u=e[r],i=Ou(e,0,r);return u&&a(i,u),n(t,this,i)})}function Df(n,t,r){var e=!0,u=!0;if(\"function\"!=typeof n)throw new pl(en);return fc(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),\nWf(n,t,{leading:e,maxWait:t,trailing:u})}function Mf(n){return Rf(n,1)}function Ff(n,t){return ph(Au(t),n)}function Nf(){if(!arguments.length)return[];var n=arguments[0];return bh(n)?n:[n]}function Pf(n){return Fr(n,sn)}function qf(n,t){return t=\"function\"==typeof t?t:X,Fr(n,sn,t)}function Zf(n){return Fr(n,an|sn)}function Kf(n,t){return t=\"function\"==typeof t?t:X,Fr(n,an|sn,t)}function Vf(n,t){return null==t||Pr(n,t,Pc(t))}function Gf(n,t){return n===t||n!==n&&t!==t}function Hf(n){return null!=n&&oc(n.length)&&!uc(n);\n}function Jf(n){return cc(n)&&Hf(n)}function Yf(n){return n===!0||n===!1||cc(n)&&we(n)==Nn}function Qf(n){return cc(n)&&1===n.nodeType&&!gc(n)}function Xf(n){if(null==n)return!0;if(Hf(n)&&(bh(n)||\"string\"==typeof n||\"function\"==typeof n.splice||mh(n)||Oh(n)||dh(n)))return!n.length;var t=zs(n);if(t==Gn||t==tt)return!n.size;if(Mi(n))return!Me(n).length;for(var r in n)if(bl.call(n,r))return!1;return!0}function nc(n,t){return Se(n,t)}function tc(n,t,r){r=\"function\"==typeof r?r:X;var e=r?r(n,t):X;return e===X?Se(n,t,X,r):!!e;\n}function rc(n){if(!cc(n))return!1;var t=we(n);return t==Zn||t==qn||\"string\"==typeof n.message&&\"string\"==typeof n.name&&!gc(n)}function ec(n){return\"number\"==typeof n&&Zl(n)}function uc(n){if(!fc(n))return!1;var t=we(n);return t==Kn||t==Vn||t==Fn||t==Xn}function ic(n){return\"number\"==typeof n&&n==kc(n)}function oc(n){return\"number\"==typeof n&&n>-1&&n%1==0&&n<=Wn}function fc(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t)}function cc(n){return null!=n&&\"object\"==typeof n}function ac(n,t){\nreturn n===t||Ce(n,t,ji(t))}function lc(n,t,r){return r=\"function\"==typeof r?r:X,Ce(n,t,ji(t),r)}function sc(n){return vc(n)&&n!=+n}function hc(n){if(Es(n))throw new fl(rn);return Ue(n)}function pc(n){return null===n}function _c(n){return null==n}function vc(n){return\"number\"==typeof n||cc(n)&&we(n)==Hn}function gc(n){if(!cc(n)||we(n)!=Yn)return!1;var t=El(n);if(null===t)return!0;var r=bl.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof r&&r instanceof r&&dl.call(r)==jl}function yc(n){\nreturn ic(n)&&n>=-Wn&&n<=Wn}function dc(n){return\"string\"==typeof n||!bh(n)&&cc(n)&&we(n)==rt}function bc(n){return\"symbol\"==typeof n||cc(n)&&we(n)==et}function wc(n){return n===X}function mc(n){return cc(n)&&zs(n)==it}function xc(n){return cc(n)&&we(n)==ot}function jc(n){if(!n)return[];if(Hf(n))return dc(n)?G(n):Tu(n);if(Ul&&n[Ul])return D(n[Ul]());var t=zs(n);return(t==Gn?M:t==tt?P:ra)(n)}function Ac(n){if(!n)return 0===n?n:0;if(n=Ic(n),n===Sn||n===-Sn){return(n<0?-1:1)*Ln}return n===n?n:0}function kc(n){\nvar t=Ac(n),r=t%1;return t===t?r?t-r:t:0}function Oc(n){return n?Mr(kc(n),0,Un):0}function Ic(n){if(\"number\"==typeof n)return n;if(bc(n))return Cn;if(fc(n)){var t=\"function\"==typeof n.valueOf?n.valueOf():n;n=fc(t)?t+\"\":t}if(\"string\"!=typeof n)return 0===n?n:+n;n=R(n);var r=qt.test(n);return r||Kt.test(n)?Xr(n.slice(2),r?2:8):Pt.test(n)?Cn:+n}function Rc(n){return $u(n,qc(n))}function zc(n){return n?Mr(kc(n),-Wn,Wn):0===n?n:0}function Ec(n){return null==n?\"\":vu(n)}function Sc(n,t){var r=gs(n);return null==t?r:Cr(r,t);\n}function Wc(n,t){return v(n,mi(t,3),ue)}function Lc(n,t){return v(n,mi(t,3),oe)}function Cc(n,t){return null==n?n:bs(n,mi(t,3),qc)}function Uc(n,t){return null==n?n:ws(n,mi(t,3),qc)}function Bc(n,t){return n&&ue(n,mi(t,3))}function Tc(n,t){return n&&oe(n,mi(t,3))}function $c(n){return null==n?[]:fe(n,Pc(n))}function Dc(n){return null==n?[]:fe(n,qc(n))}function Mc(n,t,r){var e=null==n?X:_e(n,t);return e===X?r:e}function Fc(n,t){return null!=n&&Ri(n,t,xe)}function Nc(n,t){return null!=n&&Ri(n,t,je);\n}function Pc(n){return Hf(n)?Or(n):Me(n)}function qc(n){return Hf(n)?Or(n,!0):Fe(n)}function Zc(n,t){var r={};return t=mi(t,3),ue(n,function(n,e,u){Br(r,t(n,e,u),n)}),r}function Kc(n,t){var r={};return t=mi(t,3),ue(n,function(n,e,u){Br(r,e,t(n,e,u))}),r}function Vc(n,t){return Gc(n,Uf(mi(t)))}function Gc(n,t){if(null==n)return{};var r=c(di(n),function(n){return[n]});return t=mi(t),Ye(n,r,function(n,r){return t(n,r[0])})}function Hc(n,t,r){t=ku(t,n);var e=-1,u=t.length;for(u||(u=1,n=X);++e<u;){var i=null==n?X:n[no(t[e])];\ni===X&&(e=u,i=r),n=uc(i)?i.call(n):i}return n}function Jc(n,t,r){return null==n?n:fu(n,t,r)}function Yc(n,t,r,e){return e=\"function\"==typeof e?e:X,null==n?n:fu(n,t,r,e)}function Qc(n,t,e){var u=bh(n),i=u||mh(n)||Oh(n);if(t=mi(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:fc(n)&&uc(o)?gs(El(n)):{}}return(i?r:ue)(n,function(n,r,u){return t(e,n,r,u)}),e}function Xc(n,t){return null==n||yu(n,t)}function na(n,t,r){return null==n?n:du(n,t,Au(r))}function ta(n,t,r,e){return e=\"function\"==typeof e?e:X,\nnull==n?n:du(n,t,Au(r),e)}function ra(n){return null==n?[]:E(n,Pc(n))}function ea(n){return null==n?[]:E(n,qc(n))}function ua(n,t,r){return r===X&&(r=t,t=X),r!==X&&(r=Ic(r),r=r===r?r:0),t!==X&&(t=Ic(t),t=t===t?t:0),Mr(Ic(n),t,r)}function ia(n,t,r){return t=Ac(t),r===X?(r=t,t=0):r=Ac(r),n=Ic(n),Ae(n,t,r)}function oa(n,t,r){if(r&&\"boolean\"!=typeof r&&Ui(n,t,r)&&(t=r=X),r===X&&(\"boolean\"==typeof t?(r=t,t=X):\"boolean\"==typeof n&&(r=n,n=X)),n===X&&t===X?(n=0,t=1):(n=Ac(n),t===X?(t=n,n=0):t=Ac(t)),n>t){\nvar e=n;n=t,t=e}if(r||n%1||t%1){var u=Ql();return Hl(n+u*(t-n+Qr(\"1e-\"+((u+\"\").length-1))),t)}return tu(n,t)}function fa(n){return Qh(Ec(n).toLowerCase())}function ca(n){return n=Ec(n),n&&n.replace(Gt,ve).replace(Dr,\"\")}function aa(n,t,r){n=Ec(n),t=vu(t);var e=n.length;r=r===X?e:Mr(kc(r),0,e);var u=r;return r-=t.length,r>=0&&n.slice(r,u)==t}function la(n){return n=Ec(n),n&&At.test(n)?n.replace(xt,ge):n}function sa(n){return n=Ec(n),n&&Wt.test(n)?n.replace(St,\"\\\\$&\"):n}function ha(n,t,r){n=Ec(n),t=kc(t);\nvar e=t?V(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return ri(Nl(u),r)+n+ri(Fl(u),r)}function pa(n,t,r){n=Ec(n),t=kc(t);var e=t?V(n):0;return t&&e<t?n+ri(t-e,r):n}function _a(n,t,r){n=Ec(n),t=kc(t);var e=t?V(n):0;return t&&e<t?ri(t-e,r)+n:n}function va(n,t,r){return r||null==t?t=0:t&&(t=+t),Yl(Ec(n).replace(Lt,\"\"),t||0)}function ga(n,t,r){return t=(r?Ui(n,t,r):t===X)?1:kc(t),eu(Ec(n),t)}function ya(){var n=arguments,t=Ec(n[0]);return n.length<3?t:t.replace(n[1],n[2])}function da(n,t,r){return r&&\"number\"!=typeof r&&Ui(n,t,r)&&(t=r=X),\n(r=r===X?Un:r>>>0)?(n=Ec(n),n&&(\"string\"==typeof t||null!=t&&!Ah(t))&&(t=vu(t),!t&&T(n))?Ou(G(n),0,r):n.split(t,r)):[]}function ba(n,t,r){return n=Ec(n),r=null==r?0:Mr(kc(r),0,n.length),t=vu(t),n.slice(r,r+t.length)==t}function wa(n,t,r){var e=Z.templateSettings;r&&Ui(n,t,r)&&(t=X),n=Ec(n),t=Sh({},t,e,li);var u,i,o=Sh({},t.imports,e.imports,li),f=Pc(o),c=E(o,f),a=0,l=t.interpolate||Ht,s=\"__p += '\",h=sl((t.escape||Ht).source+\"|\"+l.source+\"|\"+(l===It?Ft:Ht).source+\"|\"+(t.evaluate||Ht).source+\"|$\",\"g\"),p=\"//# sourceURL=\"+(bl.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++Zr+\"]\")+\"\\n\";\nn.replace(h,function(t,r,e,o,f,c){return e||(e=o),s+=n.slice(a,c).replace(Jt,U),r&&(u=!0,s+=\"' +\\n__e(\"+r+\") +\\n'\"),f&&(i=!0,s+=\"';\\n\"+f+\";\\n__p += '\"),e&&(s+=\"' +\\n((__t = (\"+e+\")) == null ? '' : __t) +\\n'\"),a=c+t.length,t}),s+=\"';\\n\";var _=bl.call(t,\"variable\")&&t.variable;if(_){if(Dt.test(_))throw new fl(un)}else s=\"with (obj) {\\n\"+s+\"\\n}\\n\";s=(i?s.replace(dt,\"\"):s).replace(bt,\"$1\").replace(wt,\"$1;\"),s=\"function(\"+(_||\"obj\")+\") {\\n\"+(_?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(u?\", __e = _.escape\":\"\")+(i?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+s+\"return __p\\n}\";\nvar v=Xh(function(){return cl(f,p+\"return \"+s).apply(X,c)});if(v.source=s,rc(v))throw v;return v}function ma(n){return Ec(n).toLowerCase()}function xa(n){return Ec(n).toUpperCase()}function ja(n,t,r){if(n=Ec(n),n&&(r||t===X))return R(n);if(!n||!(t=vu(t)))return n;var e=G(n),u=G(t);return Ou(e,W(e,u),L(e,u)+1).join(\"\")}function Aa(n,t,r){if(n=Ec(n),n&&(r||t===X))return n.slice(0,H(n)+1);if(!n||!(t=vu(t)))return n;var e=G(n);return Ou(e,0,L(e,G(t))+1).join(\"\")}function ka(n,t,r){if(n=Ec(n),n&&(r||t===X))return n.replace(Lt,\"\");\nif(!n||!(t=vu(t)))return n;var e=G(n);return Ou(e,W(e,G(t))).join(\"\")}function Oa(n,t){var r=An,e=kn;if(fc(t)){var u=\"separator\"in t?t.separator:u;r=\"length\"in t?kc(t.length):r,e=\"omission\"in t?vu(t.omission):e}n=Ec(n);var i=n.length;if(T(n)){var o=G(n);i=o.length}if(r>=i)return n;var f=r-V(e);if(f<1)return e;var c=o?Ou(o,0,f).join(\"\"):n.slice(0,f);if(u===X)return c+e;if(o&&(f+=c.length-f),Ah(u)){if(n.slice(f).search(u)){var a,l=c;for(u.global||(u=sl(u.source,Ec(Nt.exec(u))+\"g\")),u.lastIndex=0;a=u.exec(l);)var s=a.index;\nc=c.slice(0,s===X?f:s)}}else if(n.indexOf(vu(u),f)!=f){var h=c.lastIndexOf(u);h>-1&&(c=c.slice(0,h))}return c+e}function Ia(n){return n=Ec(n),n&&jt.test(n)?n.replace(mt,ye):n}function Ra(n,t,r){return n=Ec(n),t=r?X:t,t===X?$(n)?Q(n):_(n):n.match(t)||[]}function za(t){var r=null==t?0:t.length,e=mi();return t=r?c(t,function(n){if(\"function\"!=typeof n[1])throw new pl(en);return[e(n[0]),n[1]]}):[],uu(function(e){for(var u=-1;++u<r;){var i=t[u];if(n(i[0],this,e))return n(i[1],this,e)}})}function Ea(n){\nreturn Nr(Fr(n,an))}function Sa(n){return function(){return n}}function Wa(n,t){return null==n||n!==n?t:n}function La(n){return n}function Ca(n){return De(\"function\"==typeof n?n:Fr(n,an))}function Ua(n){return qe(Fr(n,an))}function Ba(n,t){return Ze(n,Fr(t,an))}function Ta(n,t,e){var u=Pc(t),i=fe(t,u);null!=e||fc(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=fe(t,Pc(t)));var o=!(fc(e)&&\"chain\"in e&&!e.chain),f=uc(n);return r(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;\nif(o||t){var r=n(this.__wrapped__);return(r.__actions__=Tu(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function $a(){return re._===this&&(re._=Al),this}function Da(){}function Ma(n){return n=kc(n),uu(function(t){return Ge(t,n)})}function Fa(n){return Bi(n)?m(no(n)):Qe(n)}function Na(n){return function(t){return null==n?X:_e(n,t)}}function Pa(){return[]}function qa(){return!1}function Za(){return{}}function Ka(){return\"\";\n}function Va(){return!0}function Ga(n,t){if(n=kc(n),n<1||n>Wn)return[];var r=Un,e=Hl(n,Un);t=mi(t),n-=Un;for(var u=O(e,t);++r<n;)t(r);return u}function Ha(n){return bh(n)?c(n,no):bc(n)?[n]:Tu(Cs(Ec(n)))}function Ja(n){var t=++wl;return Ec(n)+t}function Ya(n){return n&&n.length?Yr(n,La,me):X}function Qa(n,t){return n&&n.length?Yr(n,mi(t,2),me):X}function Xa(n){return w(n,La)}function nl(n,t){return w(n,mi(t,2))}function tl(n){return n&&n.length?Yr(n,La,Ne):X}function rl(n,t){return n&&n.length?Yr(n,mi(t,2),Ne):X;\n}function el(n){return n&&n.length?k(n,La):0}function ul(n,t){return n&&n.length?k(n,mi(t,2)):0}x=null==x?re:be.defaults(re.Object(),x,be.pick(re,qr));var il=x.Array,ol=x.Date,fl=x.Error,cl=x.Function,al=x.Math,ll=x.Object,sl=x.RegExp,hl=x.String,pl=x.TypeError,_l=il.prototype,vl=cl.prototype,gl=ll.prototype,yl=x[\"__core-js_shared__\"],dl=vl.toString,bl=gl.hasOwnProperty,wl=0,ml=function(){var n=/[^.]+$/.exec(yl&&yl.keys&&yl.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),xl=gl.toString,jl=dl.call(ll),Al=re._,kl=sl(\"^\"+dl.call(bl).replace(St,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),Ol=ie?x.Buffer:X,Il=x.Symbol,Rl=x.Uint8Array,zl=Ol?Ol.allocUnsafe:X,El=F(ll.getPrototypeOf,ll),Sl=ll.create,Wl=gl.propertyIsEnumerable,Ll=_l.splice,Cl=Il?Il.isConcatSpreadable:X,Ul=Il?Il.iterator:X,Bl=Il?Il.toStringTag:X,Tl=function(){\ntry{var n=Ai(ll,\"defineProperty\");return n({},\"\",{}),n}catch(n){}}(),$l=x.clearTimeout!==re.clearTimeout&&x.clearTimeout,Dl=ol&&ol.now!==re.Date.now&&ol.now,Ml=x.setTimeout!==re.setTimeout&&x.setTimeout,Fl=al.ceil,Nl=al.floor,Pl=ll.getOwnPropertySymbols,ql=Ol?Ol.isBuffer:X,Zl=x.isFinite,Kl=_l.join,Vl=F(ll.keys,ll),Gl=al.max,Hl=al.min,Jl=ol.now,Yl=x.parseInt,Ql=al.random,Xl=_l.reverse,ns=Ai(x,\"DataView\"),ts=Ai(x,\"Map\"),rs=Ai(x,\"Promise\"),es=Ai(x,\"Set\"),us=Ai(x,\"WeakMap\"),is=Ai(ll,\"create\"),os=us&&new us,fs={},cs=to(ns),as=to(ts),ls=to(rs),ss=to(es),hs=to(us),ps=Il?Il.prototype:X,_s=ps?ps.valueOf:X,vs=ps?ps.toString:X,gs=function(){\nfunction n(){}return function(t){if(!fc(t))return{};if(Sl)return Sl(t);n.prototype=t;var r=new n;return n.prototype=X,r}}();Z.templateSettings={escape:kt,evaluate:Ot,interpolate:It,variable:\"\",imports:{_:Z}},Z.prototype=J.prototype,Z.prototype.constructor=Z,Y.prototype=gs(J.prototype),Y.prototype.constructor=Y,Ct.prototype=gs(J.prototype),Ct.prototype.constructor=Ct,Xt.prototype.clear=nr,Xt.prototype.delete=tr,Xt.prototype.get=rr,Xt.prototype.has=er,Xt.prototype.set=ur,ir.prototype.clear=or,ir.prototype.delete=fr,\nir.prototype.get=cr,ir.prototype.has=ar,ir.prototype.set=lr,sr.prototype.clear=hr,sr.prototype.delete=pr,sr.prototype.get=_r,sr.prototype.has=vr,sr.prototype.set=gr,yr.prototype.add=yr.prototype.push=dr,yr.prototype.has=br,wr.prototype.clear=mr,wr.prototype.delete=xr,wr.prototype.get=jr,wr.prototype.has=Ar,wr.prototype.set=kr;var ys=Pu(ue),ds=Pu(oe,!0),bs=qu(),ws=qu(!0),ms=os?function(n,t){return os.set(n,t),n}:La,xs=Tl?function(n,t){return Tl(n,\"toString\",{configurable:!0,enumerable:!1,value:Sa(t),\nwritable:!0})}:La,js=uu,As=$l||function(n){return re.clearTimeout(n)},ks=es&&1/P(new es([,-0]))[1]==Sn?function(n){return new es(n)}:Da,Os=os?function(n){return os.get(n)}:Da,Is=Pl?function(n){return null==n?[]:(n=ll(n),i(Pl(n),function(t){return Wl.call(n,t)}))}:Pa,Rs=Pl?function(n){for(var t=[];n;)a(t,Is(n)),n=El(n);return t}:Pa,zs=we;(ns&&zs(new ns(new ArrayBuffer(1)))!=ct||ts&&zs(new ts)!=Gn||rs&&zs(rs.resolve())!=Qn||es&&zs(new es)!=tt||us&&zs(new us)!=it)&&(zs=function(n){var t=we(n),r=t==Yn?n.constructor:X,e=r?to(r):\"\";\nif(e)switch(e){case cs:return ct;case as:return Gn;case ls:return Qn;case ss:return tt;case hs:return it}return t});var Es=yl?uc:qa,Ss=Qi(ms),Ws=Ml||function(n,t){return re.setTimeout(n,t)},Ls=Qi(xs),Cs=Pi(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(\"\"),n.replace(Et,function(n,r,e,u){t.push(e?u.replace(Mt,\"$1\"):r||n)}),t}),Us=uu(function(n,t){return Jf(n)?Hr(n,ee(t,1,Jf,!0)):[]}),Bs=uu(function(n,t){var r=jo(t);return Jf(r)&&(r=X),Jf(n)?Hr(n,ee(t,1,Jf,!0),mi(r,2)):[]}),Ts=uu(function(n,t){\nvar r=jo(t);return Jf(r)&&(r=X),Jf(n)?Hr(n,ee(t,1,Jf,!0),X,r):[]}),$s=uu(function(n){var t=c(n,ju);return t.length&&t[0]===n[0]?ke(t):[]}),Ds=uu(function(n){var t=jo(n),r=c(n,ju);return t===jo(r)?t=X:r.pop(),r.length&&r[0]===n[0]?ke(r,mi(t,2)):[]}),Ms=uu(function(n){var t=jo(n),r=c(n,ju);return t=\"function\"==typeof t?t:X,t&&r.pop(),r.length&&r[0]===n[0]?ke(r,X,t):[]}),Fs=uu(Oo),Ns=gi(function(n,t){var r=null==n?0:n.length,e=Tr(n,t);return nu(n,c(t,function(n){return Ci(n,r)?+n:n}).sort(Lu)),e}),Ps=uu(function(n){\nreturn gu(ee(n,1,Jf,!0))}),qs=uu(function(n){var t=jo(n);return Jf(t)&&(t=X),gu(ee(n,1,Jf,!0),mi(t,2))}),Zs=uu(function(n){var t=jo(n);return t=\"function\"==typeof t?t:X,gu(ee(n,1,Jf,!0),X,t)}),Ks=uu(function(n,t){return Jf(n)?Hr(n,t):[]}),Vs=uu(function(n){return mu(i(n,Jf))}),Gs=uu(function(n){var t=jo(n);return Jf(t)&&(t=X),mu(i(n,Jf),mi(t,2))}),Hs=uu(function(n){var t=jo(n);return t=\"function\"==typeof t?t:X,mu(i(n,Jf),X,t)}),Js=uu(Go),Ys=uu(function(n){var t=n.length,r=t>1?n[t-1]:X;return r=\"function\"==typeof r?(n.pop(),\nr):X,Ho(n,r)}),Qs=gi(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,u=function(t){return Tr(t,n)};return!(t>1||this.__actions__.length)&&e instanceof Ct&&Ci(r)?(e=e.slice(r,+r+(t?1:0)),e.__actions__.push({func:nf,args:[u],thisArg:X}),new Y(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(X),n})):this.thru(u)}),Xs=Fu(function(n,t,r){bl.call(n,r)?++n[r]:Br(n,r,1)}),nh=Ju(ho),th=Ju(po),rh=Fu(function(n,t,r){bl.call(n,r)?n[r].push(t):Br(n,r,[t])}),eh=uu(function(t,r,e){var u=-1,i=\"function\"==typeof r,o=Hf(t)?il(t.length):[];\nreturn ys(t,function(t){o[++u]=i?n(r,t,e):Ie(t,r,e)}),o}),uh=Fu(function(n,t,r){Br(n,r,t)}),ih=Fu(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),oh=uu(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Ui(n,t[0],t[1])?t=[]:r>2&&Ui(t[0],t[1],t[2])&&(t=[t[0]]),He(n,ee(t,1),[])}),fh=Dl||function(){return re.Date.now()},ch=uu(function(n,t,r){var e=_n;if(r.length){var u=N(r,wi(ch));e|=bn}return ai(n,e,t,r,u)}),ah=uu(function(n,t,r){var e=_n|vn;if(r.length){var u=N(r,wi(ah));e|=bn;\n}return ai(t,e,n,r,u)}),lh=uu(function(n,t){return Gr(n,1,t)}),sh=uu(function(n,t,r){return Gr(n,Ic(t)||0,r)});Cf.Cache=sr;var hh=js(function(t,r){r=1==r.length&&bh(r[0])?c(r[0],z(mi())):c(ee(r,1),z(mi()));var e=r.length;return uu(function(u){for(var i=-1,o=Hl(u.length,e);++i<o;)u[i]=r[i].call(this,u[i]);return n(t,this,u)})}),ph=uu(function(n,t){return ai(n,bn,X,t,N(t,wi(ph)))}),_h=uu(function(n,t){return ai(n,wn,X,t,N(t,wi(_h)))}),vh=gi(function(n,t){return ai(n,xn,X,X,X,t)}),gh=ii(me),yh=ii(function(n,t){\nreturn n>=t}),dh=Re(function(){return arguments}())?Re:function(n){return cc(n)&&bl.call(n,\"callee\")&&!Wl.call(n,\"callee\")},bh=il.isArray,wh=ce?z(ce):ze,mh=ql||qa,xh=ae?z(ae):Ee,jh=le?z(le):Le,Ah=se?z(se):Be,kh=he?z(he):Te,Oh=pe?z(pe):$e,Ih=ii(Ne),Rh=ii(function(n,t){return n<=t}),zh=Nu(function(n,t){if(Mi(t)||Hf(t))return $u(t,Pc(t),n),X;for(var r in t)bl.call(t,r)&&Sr(n,r,t[r])}),Eh=Nu(function(n,t){$u(t,qc(t),n)}),Sh=Nu(function(n,t,r,e){$u(t,qc(t),n,e)}),Wh=Nu(function(n,t,r,e){$u(t,Pc(t),n,e);\n}),Lh=gi(Tr),Ch=uu(function(n,t){n=ll(n);var r=-1,e=t.length,u=e>2?t[2]:X;for(u&&Ui(t[0],t[1],u)&&(e=1);++r<e;)for(var i=t[r],o=qc(i),f=-1,c=o.length;++f<c;){var a=o[f],l=n[a];(l===X||Gf(l,gl[a])&&!bl.call(n,a))&&(n[a]=i[a])}return n}),Uh=uu(function(t){return t.push(X,si),n(Mh,X,t)}),Bh=Xu(function(n,t,r){null!=t&&\"function\"!=typeof t.toString&&(t=xl.call(t)),n[t]=r},Sa(La)),Th=Xu(function(n,t,r){null!=t&&\"function\"!=typeof t.toString&&(t=xl.call(t)),bl.call(n,t)?n[t].push(r):n[t]=[r]},mi),$h=uu(Ie),Dh=Nu(function(n,t,r){\nKe(n,t,r)}),Mh=Nu(function(n,t,r,e){Ke(n,t,r,e)}),Fh=gi(function(n,t){var r={};if(null==n)return r;var e=!1;t=c(t,function(t){return t=ku(t,n),e||(e=t.length>1),t}),$u(n,di(n),r),e&&(r=Fr(r,an|ln|sn,hi));for(var u=t.length;u--;)yu(r,t[u]);return r}),Nh=gi(function(n,t){return null==n?{}:Je(n,t)}),Ph=ci(Pc),qh=ci(qc),Zh=Vu(function(n,t,r){return t=t.toLowerCase(),n+(r?fa(t):t)}),Kh=Vu(function(n,t,r){return n+(r?\"-\":\"\")+t.toLowerCase()}),Vh=Vu(function(n,t,r){return n+(r?\" \":\"\")+t.toLowerCase()}),Gh=Ku(\"toLowerCase\"),Hh=Vu(function(n,t,r){\nreturn n+(r?\"_\":\"\")+t.toLowerCase()}),Jh=Vu(function(n,t,r){return n+(r?\" \":\"\")+Qh(t)}),Yh=Vu(function(n,t,r){return n+(r?\" \":\"\")+t.toUpperCase()}),Qh=Ku(\"toUpperCase\"),Xh=uu(function(t,r){try{return n(t,X,r)}catch(n){return rc(n)?n:new fl(n)}}),np=gi(function(n,t){return r(t,function(t){t=no(t),Br(n,t,ch(n[t],n))}),n}),tp=Yu(),rp=Yu(!0),ep=uu(function(n,t){return function(r){return Ie(r,n,t)}}),up=uu(function(n,t){return function(r){return Ie(n,r,t)}}),ip=ti(c),op=ti(u),fp=ti(h),cp=ui(),ap=ui(!0),lp=ni(function(n,t){\nreturn n+t},0),sp=fi(\"ceil\"),hp=ni(function(n,t){return n/t},1),pp=fi(\"floor\"),_p=ni(function(n,t){return n*t},1),vp=fi(\"round\"),gp=ni(function(n,t){return n-t},0);return Z.after=If,Z.ary=Rf,Z.assign=zh,Z.assignIn=Eh,Z.assignInWith=Sh,Z.assignWith=Wh,Z.at=Lh,Z.before=zf,Z.bind=ch,Z.bindAll=np,Z.bindKey=ah,Z.castArray=Nf,Z.chain=Qo,Z.chunk=uo,Z.compact=io,Z.concat=oo,Z.cond=za,Z.conforms=Ea,Z.constant=Sa,Z.countBy=Xs,Z.create=Sc,Z.curry=Ef,Z.curryRight=Sf,Z.debounce=Wf,Z.defaults=Ch,Z.defaultsDeep=Uh,\nZ.defer=lh,Z.delay=sh,Z.difference=Us,Z.differenceBy=Bs,Z.differenceWith=Ts,Z.drop=fo,Z.dropRight=co,Z.dropRightWhile=ao,Z.dropWhile=lo,Z.fill=so,Z.filter=lf,Z.flatMap=sf,Z.flatMapDeep=hf,Z.flatMapDepth=pf,Z.flatten=_o,Z.flattenDeep=vo,Z.flattenDepth=go,Z.flip=Lf,Z.flow=tp,Z.flowRight=rp,Z.fromPairs=yo,Z.functions=$c,Z.functionsIn=Dc,Z.groupBy=rh,Z.initial=mo,Z.intersection=$s,Z.intersectionBy=Ds,Z.intersectionWith=Ms,Z.invert=Bh,Z.invertBy=Th,Z.invokeMap=eh,Z.iteratee=Ca,Z.keyBy=uh,Z.keys=Pc,Z.keysIn=qc,\nZ.map=yf,Z.mapKeys=Zc,Z.mapValues=Kc,Z.matches=Ua,Z.matchesProperty=Ba,Z.memoize=Cf,Z.merge=Dh,Z.mergeWith=Mh,Z.method=ep,Z.methodOf=up,Z.mixin=Ta,Z.negate=Uf,Z.nthArg=Ma,Z.omit=Fh,Z.omitBy=Vc,Z.once=Bf,Z.orderBy=df,Z.over=ip,Z.overArgs=hh,Z.overEvery=op,Z.overSome=fp,Z.partial=ph,Z.partialRight=_h,Z.partition=ih,Z.pick=Nh,Z.pickBy=Gc,Z.property=Fa,Z.propertyOf=Na,Z.pull=Fs,Z.pullAll=Oo,Z.pullAllBy=Io,Z.pullAllWith=Ro,Z.pullAt=Ns,Z.range=cp,Z.rangeRight=ap,Z.rearg=vh,Z.reject=mf,Z.remove=zo,Z.rest=Tf,\nZ.reverse=Eo,Z.sampleSize=jf,Z.set=Jc,Z.setWith=Yc,Z.shuffle=Af,Z.slice=So,Z.sortBy=oh,Z.sortedUniq=$o,Z.sortedUniqBy=Do,Z.split=da,Z.spread=$f,Z.tail=Mo,Z.take=Fo,Z.takeRight=No,Z.takeRightWhile=Po,Z.takeWhile=qo,Z.tap=Xo,Z.throttle=Df,Z.thru=nf,Z.toArray=jc,Z.toPairs=Ph,Z.toPairsIn=qh,Z.toPath=Ha,Z.toPlainObject=Rc,Z.transform=Qc,Z.unary=Mf,Z.union=Ps,Z.unionBy=qs,Z.unionWith=Zs,Z.uniq=Zo,Z.uniqBy=Ko,Z.uniqWith=Vo,Z.unset=Xc,Z.unzip=Go,Z.unzipWith=Ho,Z.update=na,Z.updateWith=ta,Z.values=ra,Z.valuesIn=ea,\nZ.without=Ks,Z.words=Ra,Z.wrap=Ff,Z.xor=Vs,Z.xorBy=Gs,Z.xorWith=Hs,Z.zip=Js,Z.zipObject=Jo,Z.zipObjectDeep=Yo,Z.zipWith=Ys,Z.entries=Ph,Z.entriesIn=qh,Z.extend=Eh,Z.extendWith=Sh,Ta(Z,Z),Z.add=lp,Z.attempt=Xh,Z.camelCase=Zh,Z.capitalize=fa,Z.ceil=sp,Z.clamp=ua,Z.clone=Pf,Z.cloneDeep=Zf,Z.cloneDeepWith=Kf,Z.cloneWith=qf,Z.conformsTo=Vf,Z.deburr=ca,Z.defaultTo=Wa,Z.divide=hp,Z.endsWith=aa,Z.eq=Gf,Z.escape=la,Z.escapeRegExp=sa,Z.every=af,Z.find=nh,Z.findIndex=ho,Z.findKey=Wc,Z.findLast=th,Z.findLastIndex=po,\nZ.findLastKey=Lc,Z.floor=pp,Z.forEach=_f,Z.forEachRight=vf,Z.forIn=Cc,Z.forInRight=Uc,Z.forOwn=Bc,Z.forOwnRight=Tc,Z.get=Mc,Z.gt=gh,Z.gte=yh,Z.has=Fc,Z.hasIn=Nc,Z.head=bo,Z.identity=La,Z.includes=gf,Z.indexOf=wo,Z.inRange=ia,Z.invoke=$h,Z.isArguments=dh,Z.isArray=bh,Z.isArrayBuffer=wh,Z.isArrayLike=Hf,Z.isArrayLikeObject=Jf,Z.isBoolean=Yf,Z.isBuffer=mh,Z.isDate=xh,Z.isElement=Qf,Z.isEmpty=Xf,Z.isEqual=nc,Z.isEqualWith=tc,Z.isError=rc,Z.isFinite=ec,Z.isFunction=uc,Z.isInteger=ic,Z.isLength=oc,Z.isMap=jh,\nZ.isMatch=ac,Z.isMatchWith=lc,Z.isNaN=sc,Z.isNative=hc,Z.isNil=_c,Z.isNull=pc,Z.isNumber=vc,Z.isObject=fc,Z.isObjectLike=cc,Z.isPlainObject=gc,Z.isRegExp=Ah,Z.isSafeInteger=yc,Z.isSet=kh,Z.isString=dc,Z.isSymbol=bc,Z.isTypedArray=Oh,Z.isUndefined=wc,Z.isWeakMap=mc,Z.isWeakSet=xc,Z.join=xo,Z.kebabCase=Kh,Z.last=jo,Z.lastIndexOf=Ao,Z.lowerCase=Vh,Z.lowerFirst=Gh,Z.lt=Ih,Z.lte=Rh,Z.max=Ya,Z.maxBy=Qa,Z.mean=Xa,Z.meanBy=nl,Z.min=tl,Z.minBy=rl,Z.stubArray=Pa,Z.stubFalse=qa,Z.stubObject=Za,Z.stubString=Ka,\nZ.stubTrue=Va,Z.multiply=_p,Z.nth=ko,Z.noConflict=$a,Z.noop=Da,Z.now=fh,Z.pad=ha,Z.padEnd=pa,Z.padStart=_a,Z.parseInt=va,Z.random=oa,Z.reduce=bf,Z.reduceRight=wf,Z.repeat=ga,Z.replace=ya,Z.result=Hc,Z.round=vp,Z.runInContext=p,Z.sample=xf,Z.size=kf,Z.snakeCase=Hh,Z.some=Of,Z.sortedIndex=Wo,Z.sortedIndexBy=Lo,Z.sortedIndexOf=Co,Z.sortedLastIndex=Uo,Z.sortedLastIndexBy=Bo,Z.sortedLastIndexOf=To,Z.startCase=Jh,Z.startsWith=ba,Z.subtract=gp,Z.sum=el,Z.sumBy=ul,Z.template=wa,Z.times=Ga,Z.toFinite=Ac,Z.toInteger=kc,\nZ.toLength=Oc,Z.toLower=ma,Z.toNumber=Ic,Z.toSafeInteger=zc,Z.toString=Ec,Z.toUpper=xa,Z.trim=ja,Z.trimEnd=Aa,Z.trimStart=ka,Z.truncate=Oa,Z.unescape=Ia,Z.uniqueId=Ja,Z.upperCase=Yh,Z.upperFirst=Qh,Z.each=_f,Z.eachRight=vf,Z.first=bo,Ta(Z,function(){var n={};return ue(Z,function(t,r){bl.call(Z.prototype,r)||(n[r]=t)}),n}(),{chain:!1}),Z.VERSION=nn,r([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(n){Z[n].placeholder=Z}),r([\"drop\",\"take\"],function(n,t){Ct.prototype[n]=function(r){\nr=r===X?1:Gl(kc(r),0);var e=this.__filtered__&&!t?new Ct(this):this.clone();return e.__filtered__?e.__takeCount__=Hl(r,e.__takeCount__):e.__views__.push({size:Hl(r,Un),type:n+(e.__dir__<0?\"Right\":\"\")}),e},Ct.prototype[n+\"Right\"]=function(t){return this.reverse()[n](t).reverse()}}),r([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=r==Rn||r==En;Ct.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:mi(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r([\"head\",\"last\"],function(n,t){\nvar r=\"take\"+(t?\"Right\":\"\");Ct.prototype[n]=function(){return this[r](1).value()[0]}}),r([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Ct.prototype[n]=function(){return this.__filtered__?new Ct(this):this[r](1)}}),Ct.prototype.compact=function(){return this.filter(La)},Ct.prototype.find=function(n){return this.filter(n).head()},Ct.prototype.findLast=function(n){return this.reverse().find(n)},Ct.prototype.invokeMap=uu(function(n,t){return\"function\"==typeof n?new Ct(this):this.map(function(r){\nreturn Ie(r,n,t)})}),Ct.prototype.reject=function(n){return this.filter(Uf(mi(n)))},Ct.prototype.slice=function(n,t){n=kc(n);var r=this;return r.__filtered__&&(n>0||t<0)?new Ct(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==X&&(t=kc(t),r=t<0?r.dropRight(-t):r.take(t-n)),r)},Ct.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Ct.prototype.toArray=function(){return this.take(Un)},ue(Ct.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=Z[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);\nu&&(Z.prototype[t]=function(){var t=this.__wrapped__,o=e?[1]:arguments,f=t instanceof Ct,c=o[0],l=f||bh(t),s=function(n){var t=u.apply(Z,a([n],o));return e&&h?t[0]:t};l&&r&&\"function\"==typeof c&&1!=c.length&&(f=l=!1);var h=this.__chain__,p=!!this.__actions__.length,_=i&&!h,v=f&&!p;if(!i&&l){t=v?t:new Ct(this);var g=n.apply(t,o);return g.__actions__.push({func:nf,args:[s],thisArg:X}),new Y(g,h)}return _&&v?n.apply(this,o):(g=this.thru(s),_?e?g.value()[0]:g.value():g)})}),r([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){\nvar t=_l[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);Z.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(bh(u)?u:[],n)}return this[r](function(r){return t.apply(bh(r)?r:[],n)})}}),ue(Ct.prototype,function(n,t){var r=Z[t];if(r){var e=r.name+\"\";bl.call(fs,e)||(fs[e]=[]),fs[e].push({name:t,func:r})}}),fs[Qu(X,vn).name]=[{name:\"wrapper\",func:X}],Ct.prototype.clone=$t,Ct.prototype.reverse=Yt,Ct.prototype.value=Qt,Z.prototype.at=Qs,\nZ.prototype.chain=tf,Z.prototype.commit=rf,Z.prototype.next=ef,Z.prototype.plant=of,Z.prototype.reverse=ff,Z.prototype.toJSON=Z.prototype.valueOf=Z.prototype.value=cf,Z.prototype.first=Z.prototype.head,Ul&&(Z.prototype[Ul]=uf),Z},be=de();\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd?(re._=be,define(function(){return be})):ue?((ue.exports=be)._=be,ee._=be):re._=be}).call(this);", "/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n  // Lodash aliases.\n  'each': 'forEach',\n  'eachRight': 'forEachRight',\n  'entries': 'toPairs',\n  'entriesIn': 'toPairsIn',\n  'extend': 'assignIn',\n  'extendAll': 'assignInAll',\n  'extendAllWith': 'assignInAllWith',\n  'extendWith': 'assignInWith',\n  'first': 'head',\n\n  // Methods that are curried variants of others.\n  'conforms': 'conformsTo',\n  'matches': 'isMatch',\n  'property': 'get',\n\n  // Ramda aliases.\n  '__': 'placeholder',\n  'F': 'stubFalse',\n  'T': 'stubTrue',\n  'all': 'every',\n  'allPass': 'overEvery',\n  'always': 'constant',\n  'any': 'some',\n  'anyPass': 'overSome',\n  'apply': 'spread',\n  'assoc': 'set',\n  'assocPath': 'set',\n  'complement': 'negate',\n  'compose': 'flowRight',\n  'contains': 'includes',\n  'dissoc': 'unset',\n  'dissocPath': 'unset',\n  'dropLast': 'dropRight',\n  'dropLastWhile': 'dropRightWhile',\n  'equals': 'isEqual',\n  'identical': 'eq',\n  'indexBy': 'keyBy',\n  'init': 'initial',\n  'invertObj': 'invert',\n  'juxt': 'over',\n  'omitAll': 'omit',\n  'nAry': 'ary',\n  'path': 'get',\n  'pathEq': 'matchesProperty',\n  'pathOr': 'getOr',\n  'paths': 'at',\n  'pickAll': 'pick',\n  'pipe': 'flow',\n  'pluck': 'map',\n  'prop': 'get',\n  'propEq': 'matchesProperty',\n  'propOr': 'getOr',\n  'props': 'at',\n  'symmetricDifference': 'xor',\n  'symmetricDifferenceBy': 'xorBy',\n  'symmetricDifferenceWith': 'xorWith',\n  'takeLast': 'takeRight',\n  'takeLastWhile': 'takeRightWhile',\n  'unapply': 'rest',\n  'unnest': 'flatten',\n  'useWith': 'overArgs',\n  'where': 'conformsTo',\n  'whereEq': 'isMatch',\n  'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n  '1': [\n    'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n    'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n    'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n    'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n    'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n    'uniqueId', 'words', 'zipAll'\n  ],\n  '2': [\n    'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n    'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n    'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n    'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n    'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n    'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n    'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n    'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n    'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n    'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n    'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n    'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n    'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n    'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n    'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n    'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n    'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n    'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n    'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n    'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n    'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n    'zipObjectDeep'\n  ],\n  '3': [\n    'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n    'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n    'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n    'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n    'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n    'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n    'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n    'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n    'xorWith', 'zipWith'\n  ],\n  '4': [\n    'fill', 'setWith', 'updateWith'\n  ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n  '2': [1, 0],\n  '3': [2, 0, 1],\n  '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n  'dropRightWhile': 1,\n  'dropWhile': 1,\n  'every': 1,\n  'filter': 1,\n  'find': 1,\n  'findFrom': 1,\n  'findIndex': 1,\n  'findIndexFrom': 1,\n  'findKey': 1,\n  'findLast': 1,\n  'findLastFrom': 1,\n  'findLastIndex': 1,\n  'findLastIndexFrom': 1,\n  'findLastKey': 1,\n  'flatMap': 1,\n  'flatMapDeep': 1,\n  'flatMapDepth': 1,\n  'forEach': 1,\n  'forEachRight': 1,\n  'forIn': 1,\n  'forInRight': 1,\n  'forOwn': 1,\n  'forOwnRight': 1,\n  'map': 1,\n  'mapKeys': 1,\n  'mapValues': 1,\n  'partition': 1,\n  'reduce': 2,\n  'reduceRight': 2,\n  'reject': 1,\n  'remove': 1,\n  'some': 1,\n  'takeRightWhile': 1,\n  'takeWhile': 1,\n  'times': 1,\n  'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n  'mapKeys': [1],\n  'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n  'assignInAllWith': [1, 0],\n  'assignInWith': [1, 2, 0],\n  'assignAllWith': [1, 0],\n  'assignWith': [1, 2, 0],\n  'differenceBy': [1, 2, 0],\n  'differenceWith': [1, 2, 0],\n  'getOr': [2, 1, 0],\n  'intersectionBy': [1, 2, 0],\n  'intersectionWith': [1, 2, 0],\n  'isEqualWith': [1, 2, 0],\n  'isMatchWith': [2, 1, 0],\n  'mergeAllWith': [1, 0],\n  'mergeWith': [1, 2, 0],\n  'padChars': [2, 1, 0],\n  'padCharsEnd': [2, 1, 0],\n  'padCharsStart': [2, 1, 0],\n  'pullAllBy': [2, 1, 0],\n  'pullAllWith': [2, 1, 0],\n  'rangeStep': [1, 2, 0],\n  'rangeStepRight': [1, 2, 0],\n  'setWith': [3, 1, 2, 0],\n  'sortedIndexBy': [2, 1, 0],\n  'sortedLastIndexBy': [2, 1, 0],\n  'unionBy': [1, 2, 0],\n  'unionWith': [1, 2, 0],\n  'updateWith': [3, 1, 2, 0],\n  'xorBy': [1, 2, 0],\n  'xorWith': [1, 2, 0],\n  'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n  'assignAll': { 'start': 0 },\n  'assignAllWith': { 'start': 0 },\n  'assignInAll': { 'start': 0 },\n  'assignInAllWith': { 'start': 0 },\n  'defaultsAll': { 'start': 0 },\n  'defaultsDeepAll': { 'start': 0 },\n  'invokeArgs': { 'start': 2 },\n  'invokeArgsMap': { 'start': 2 },\n  'mergeAll': { 'start': 0 },\n  'mergeAllWith': { 'start': 0 },\n  'partial': { 'start': 1 },\n  'partialRight': { 'start': 1 },\n  'without': { 'start': 1 },\n  'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n  'array': {\n    'fill': true,\n    'pull': true,\n    'pullAll': true,\n    'pullAllBy': true,\n    'pullAllWith': true,\n    'pullAt': true,\n    'remove': true,\n    'reverse': true\n  },\n  'object': {\n    'assign': true,\n    'assignAll': true,\n    'assignAllWith': true,\n    'assignIn': true,\n    'assignInAll': true,\n    'assignInAllWith': true,\n    'assignInWith': true,\n    'assignWith': true,\n    'defaults': true,\n    'defaultsAll': true,\n    'defaultsDeep': true,\n    'defaultsDeepAll': true,\n    'merge': true,\n    'mergeAll': true,\n    'mergeAllWith': true,\n    'mergeWith': true,\n  },\n  'set': {\n    'set': true,\n    'setWith': true,\n    'unset': true,\n    'update': true,\n    'updateWith': true\n  }\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n  var hasOwnProperty = Object.prototype.hasOwnProperty,\n      object = exports.aliasToReal,\n      result = {};\n\n  for (var key in object) {\n    var value = object[key];\n    if (hasOwnProperty.call(result, value)) {\n      result[value].push(key);\n    } else {\n      result[value] = [key];\n    }\n  }\n  return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n  'assignAll': 'assign',\n  'assignAllWith': 'assignWith',\n  'assignInAll': 'assignIn',\n  'assignInAllWith': 'assignInWith',\n  'curryN': 'curry',\n  'curryRightN': 'curryRight',\n  'defaultsAll': 'defaults',\n  'defaultsDeepAll': 'defaultsDeep',\n  'findFrom': 'find',\n  'findIndexFrom': 'findIndex',\n  'findLastFrom': 'findLast',\n  'findLastIndexFrom': 'findLastIndex',\n  'getOr': 'get',\n  'includesFrom': 'includes',\n  'indexOfFrom': 'indexOf',\n  'invokeArgs': 'invoke',\n  'invokeArgsMap': 'invokeMap',\n  'lastIndexOfFrom': 'lastIndexOf',\n  'mergeAll': 'merge',\n  'mergeAllWith': 'mergeWith',\n  'padChars': 'pad',\n  'padCharsEnd': 'padEnd',\n  'padCharsStart': 'padStart',\n  'propertyOf': 'get',\n  'rangeStep': 'range',\n  'rangeStepRight': 'rangeRight',\n  'restFrom': 'rest',\n  'spreadFrom': 'spread',\n  'trimChars': 'trim',\n  'trimCharsEnd': 'trimEnd',\n  'trimCharsStart': 'trimStart',\n  'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n  'castArray': true,\n  'flow': true,\n  'flowRight': true,\n  'iteratee': true,\n  'mixin': true,\n  'rearg': true,\n  'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n  'add': true,\n  'assign': true,\n  'assignIn': true,\n  'bind': true,\n  'bindKey': true,\n  'concat': true,\n  'difference': true,\n  'divide': true,\n  'eq': true,\n  'gt': true,\n  'gte': true,\n  'isEqual': true,\n  'lt': true,\n  'lte': true,\n  'matchesProperty': true,\n  'merge': true,\n  'multiply': true,\n  'overArgs': true,\n  'partial': true,\n  'partialRight': true,\n  'propertyOf': true,\n  'random': true,\n  'range': true,\n  'rangeRight': true,\n  'subtract': true,\n  'zip': true,\n  'zipObject': true,\n  'zipObjectDeep': true\n};\n", "/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n", "var mapping = require('./_mapping'),\n    fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n  return n == 2\n    ? function(a, b) { return func.apply(undefined, arguments); }\n    : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n  return n == 2\n    ? function(a, b) { return func(a, b); }\n    : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n  var length = array ? array.length : 0,\n      result = Array(length);\n\n  while (length--) {\n    result[length] = array[length];\n  }\n  return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n  return function(object) {\n    return func({}, object);\n  };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n  return function() {\n    var length = arguments.length,\n        lastIndex = length - 1,\n        args = Array(length);\n\n    while (length--) {\n      args[length] = arguments[length];\n    }\n    var array = args[start],\n        otherArgs = args.slice(0, start);\n\n    if (array) {\n      push.apply(otherArgs, array);\n    }\n    if (start != lastIndex) {\n      push.apply(otherArgs, args.slice(start + 1));\n    }\n    return func.apply(this, otherArgs);\n  };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n  return function() {\n    var length = arguments.length;\n    if (!length) {\n      return;\n    }\n    var args = Array(length);\n    while (length--) {\n      args[length] = arguments[length];\n    }\n    var result = args[0] = cloner.apply(undefined, args);\n    func.apply(undefined, args);\n    return result;\n  };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n  var isLib = typeof name == 'function',\n      isObj = name === Object(name);\n\n  if (isObj) {\n    options = func;\n    func = name;\n    name = undefined;\n  }\n  if (func == null) {\n    throw new TypeError;\n  }\n  options || (options = {});\n\n  var config = {\n    'cap': 'cap' in options ? options.cap : true,\n    'curry': 'curry' in options ? options.curry : true,\n    'fixed': 'fixed' in options ? options.fixed : true,\n    'immutable': 'immutable' in options ? options.immutable : true,\n    'rearg': 'rearg' in options ? options.rearg : true\n  };\n\n  var defaultHolder = isLib ? func : fallbackHolder,\n      forceCurry = ('curry' in options) && options.curry,\n      forceFixed = ('fixed' in options) && options.fixed,\n      forceRearg = ('rearg' in options) && options.rearg,\n      pristine = isLib ? func.runInContext() : undefined;\n\n  var helpers = isLib ? func : {\n    'ary': util.ary,\n    'assign': util.assign,\n    'clone': util.clone,\n    'curry': util.curry,\n    'forEach': util.forEach,\n    'isArray': util.isArray,\n    'isError': util.isError,\n    'isFunction': util.isFunction,\n    'isWeakMap': util.isWeakMap,\n    'iteratee': util.iteratee,\n    'keys': util.keys,\n    'rearg': util.rearg,\n    'toInteger': util.toInteger,\n    'toPath': util.toPath\n  };\n\n  var ary = helpers.ary,\n      assign = helpers.assign,\n      clone = helpers.clone,\n      curry = helpers.curry,\n      each = helpers.forEach,\n      isArray = helpers.isArray,\n      isError = helpers.isError,\n      isFunction = helpers.isFunction,\n      isWeakMap = helpers.isWeakMap,\n      keys = helpers.keys,\n      rearg = helpers.rearg,\n      toInteger = helpers.toInteger,\n      toPath = helpers.toPath;\n\n  var aryMethodKeys = keys(mapping.aryMethod);\n\n  var wrappers = {\n    'castArray': function(castArray) {\n      return function() {\n        var value = arguments[0];\n        return isArray(value)\n          ? castArray(cloneArray(value))\n          : castArray.apply(undefined, arguments);\n      };\n    },\n    'iteratee': function(iteratee) {\n      return function() {\n        var func = arguments[0],\n            arity = arguments[1],\n            result = iteratee(func, arity),\n            length = result.length;\n\n        if (config.cap && typeof arity == 'number') {\n          arity = arity > 2 ? (arity - 2) : 1;\n          return (length && length <= arity) ? result : baseAry(result, arity);\n        }\n        return result;\n      };\n    },\n    'mixin': function(mixin) {\n      return function(source) {\n        var func = this;\n        if (!isFunction(func)) {\n          return mixin(func, Object(source));\n        }\n        var pairs = [];\n        each(keys(source), function(key) {\n          if (isFunction(source[key])) {\n            pairs.push([key, func.prototype[key]]);\n          }\n        });\n\n        mixin(func, Object(source));\n\n        each(pairs, function(pair) {\n          var value = pair[1];\n          if (isFunction(value)) {\n            func.prototype[pair[0]] = value;\n          } else {\n            delete func.prototype[pair[0]];\n          }\n        });\n        return func;\n      };\n    },\n    'nthArg': function(nthArg) {\n      return function(n) {\n        var arity = n < 0 ? 1 : (toInteger(n) + 1);\n        return curry(nthArg(n), arity);\n      };\n    },\n    'rearg': function(rearg) {\n      return function(func, indexes) {\n        var arity = indexes ? indexes.length : 0;\n        return curry(rearg(func, indexes), arity);\n      };\n    },\n    'runInContext': function(runInContext) {\n      return function(context) {\n        return baseConvert(util, runInContext(context), options);\n      };\n    }\n  };\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * Casts `func` to a function with an arity capped iteratee if needed.\n   *\n   * @private\n   * @param {string} name The name of the function to inspect.\n   * @param {Function} func The function to inspect.\n   * @returns {Function} Returns the cast function.\n   */\n  function castCap(name, func) {\n    if (config.cap) {\n      var indexes = mapping.iterateeRearg[name];\n      if (indexes) {\n        return iterateeRearg(func, indexes);\n      }\n      var n = !isLib && mapping.iterateeAry[name];\n      if (n) {\n        return iterateeAry(func, n);\n      }\n    }\n    return func;\n  }\n\n  /**\n   * Casts `func` to a curried function if needed.\n   *\n   * @private\n   * @param {string} name The name of the function to inspect.\n   * @param {Function} func The function to inspect.\n   * @param {number} n The arity of `func`.\n   * @returns {Function} Returns the cast function.\n   */\n  function castCurry(name, func, n) {\n    return (forceCurry || (config.curry && n > 1))\n      ? curry(func, n)\n      : func;\n  }\n\n  /**\n   * Casts `func` to a fixed arity function if needed.\n   *\n   * @private\n   * @param {string} name The name of the function to inspect.\n   * @param {Function} func The function to inspect.\n   * @param {number} n The arity cap.\n   * @returns {Function} Returns the cast function.\n   */\n  function castFixed(name, func, n) {\n    if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n      var data = mapping.methodSpread[name],\n          start = data && data.start;\n\n      return start  === undefined ? ary(func, n) : flatSpread(func, start);\n    }\n    return func;\n  }\n\n  /**\n   * Casts `func` to an rearged function if needed.\n   *\n   * @private\n   * @param {string} name The name of the function to inspect.\n   * @param {Function} func The function to inspect.\n   * @param {number} n The arity of `func`.\n   * @returns {Function} Returns the cast function.\n   */\n  function castRearg(name, func, n) {\n    return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n      ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n      : func;\n  }\n\n  /**\n   * Creates a clone of `object` by `path`.\n   *\n   * @private\n   * @param {Object} object The object to clone.\n   * @param {Array|string} path The path to clone by.\n   * @returns {Object} Returns the cloned object.\n   */\n  function cloneByPath(object, path) {\n    path = toPath(path);\n\n    var index = -1,\n        length = path.length,\n        lastIndex = length - 1,\n        result = clone(Object(object)),\n        nested = result;\n\n    while (nested != null && ++index < length) {\n      var key = path[index],\n          value = nested[key];\n\n      if (value != null &&\n          !(isFunction(value) || isError(value) || isWeakMap(value))) {\n        nested[key] = clone(index == lastIndex ? value : Object(value));\n      }\n      nested = nested[key];\n    }\n    return result;\n  }\n\n  /**\n   * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n   * version with conversion `options` applied.\n   *\n   * @param {Object} [options] The options object. See `baseConvert` for more details.\n   * @returns {Function} Returns the converted `lodash`.\n   */\n  function convertLib(options) {\n    return _.runInContext.convert(options)(undefined);\n  }\n\n  /**\n   * Create a converter function for `func` of `name`.\n   *\n   * @param {string} name The name of the function to convert.\n   * @param {Function} func The function to convert.\n   * @returns {Function} Returns the new converter function.\n   */\n  function createConverter(name, func) {\n    var realName = mapping.aliasToReal[name] || name,\n        methodName = mapping.remap[realName] || realName,\n        oldOptions = options;\n\n    return function(options) {\n      var newUtil = isLib ? pristine : helpers,\n          newFunc = isLib ? pristine[methodName] : func,\n          newOptions = assign(assign({}, oldOptions), options);\n\n      return baseConvert(newUtil, realName, newFunc, newOptions);\n    };\n  }\n\n  /**\n   * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n   * arguments, ignoring any additional arguments.\n   *\n   * @private\n   * @param {Function} func The function to cap iteratee arguments for.\n   * @param {number} n The arity cap.\n   * @returns {Function} Returns the new function.\n   */\n  function iterateeAry(func, n) {\n    return overArg(func, function(func) {\n      return typeof func == 'function' ? baseAry(func, n) : func;\n    });\n  }\n\n  /**\n   * Creates a function that wraps `func` to invoke its iteratee with arguments\n   * arranged according to the specified `indexes` where the argument value at\n   * the first index is provided as the first argument, the argument value at\n   * the second index is provided as the second argument, and so on.\n   *\n   * @private\n   * @param {Function} func The function to rearrange iteratee arguments for.\n   * @param {number[]} indexes The arranged argument indexes.\n   * @returns {Function} Returns the new function.\n   */\n  function iterateeRearg(func, indexes) {\n    return overArg(func, function(func) {\n      var n = indexes.length;\n      return baseArity(rearg(baseAry(func, n), indexes), n);\n    });\n  }\n\n  /**\n   * Creates a function that invokes `func` with its first 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() {\n      var length = arguments.length;\n      if (!length) {\n        return func();\n      }\n      var args = Array(length);\n      while (length--) {\n        args[length] = arguments[length];\n      }\n      var index = config.rearg ? 0 : (length - 1);\n      args[index] = transform(args[index]);\n      return func.apply(undefined, args);\n    };\n  }\n\n  /**\n   * Creates a function that wraps `func` and applys the conversions\n   * rules by `name`.\n   *\n   * @private\n   * @param {string} name The name of the function to wrap.\n   * @param {Function} func The function to wrap.\n   * @returns {Function} Returns the converted function.\n   */\n  function wrap(name, func, placeholder) {\n    var result,\n        realName = mapping.aliasToReal[name] || name,\n        wrapped = func,\n        wrapper = wrappers[realName];\n\n    if (wrapper) {\n      wrapped = wrapper(func);\n    }\n    else if (config.immutable) {\n      if (mapping.mutate.array[realName]) {\n        wrapped = wrapImmutable(func, cloneArray);\n      }\n      else if (mapping.mutate.object[realName]) {\n        wrapped = wrapImmutable(func, createCloner(func));\n      }\n      else if (mapping.mutate.set[realName]) {\n        wrapped = wrapImmutable(func, cloneByPath);\n      }\n    }\n    each(aryMethodKeys, function(aryKey) {\n      each(mapping.aryMethod[aryKey], function(otherName) {\n        if (realName == otherName) {\n          var data = mapping.methodSpread[realName],\n              afterRearg = data && data.afterRearg;\n\n          result = afterRearg\n            ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n            : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n          result = castCap(realName, result);\n          result = castCurry(realName, result, aryKey);\n          return false;\n        }\n      });\n      return !result;\n    });\n\n    result || (result = wrapped);\n    if (result == func) {\n      result = forceCurry ? curry(result, 1) : function() {\n        return func.apply(this, arguments);\n      };\n    }\n    result.convert = createConverter(realName, func);\n    result.placeholder = func.placeholder = placeholder;\n\n    return result;\n  }\n\n  /*--------------------------------------------------------------------------*/\n\n  if (!isObj) {\n    return wrap(name, func, defaultHolder);\n  }\n  var _ = func;\n\n  // Convert methods by ary cap.\n  var pairs = [];\n  each(aryMethodKeys, function(aryKey) {\n    each(mapping.aryMethod[aryKey], function(key) {\n      var func = _[mapping.remap[key] || key];\n      if (func) {\n        pairs.push([key, wrap(key, func, _)]);\n      }\n    });\n  });\n\n  // Convert remaining methods.\n  each(keys(_), function(key) {\n    var func = _[key];\n    if (typeof func == 'function') {\n      var length = pairs.length;\n      while (length--) {\n        if (pairs[length][0] == key) {\n          return;\n        }\n      }\n      func.convert = createConverter(key, func);\n      pairs.push([key, func]);\n    }\n  });\n\n  // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n  each(pairs, function(pair) {\n    _[pair[0]] = pair[1];\n  });\n\n  _.convert = convertLib;\n  _.placeholder = _;\n\n  // Assign aliases.\n  each(keys(_), function(key) {\n    each(mapping.realToAlias[key] || [], function(alias) {\n      _[alias] = _[key];\n    });\n  });\n\n  return _;\n}\n\nmodule.exports = baseConvert;\n", "var _ = require('./lodash.min').runInContext();\nmodule.exports = require('./fp/_baseConvert')(_, _);\n", "/**\n * TinyMCE version 6.3.1 (2022-12-06)\n */\n\n(function () {\n    'use strict';\n\n    var typeOf$1 = function (x) {\n      if (x === null) {\n        return 'null';\n      }\n      if (x === undefined) {\n        return 'undefined';\n      }\n      var t = typeof x;\n      if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n        return 'array';\n      }\n      if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n        return 'string';\n      }\n      return t;\n    };\n    var isEquatableType = function (x) {\n      return [\n        'undefined',\n        'boolean',\n        'number',\n        'string',\n        'function',\n        'xml',\n        'null'\n      ].indexOf(x) !== -1;\n    };\n\n    var sort$1 = function (xs, compareFn) {\n      var clone = Array.prototype.slice.call(xs);\n      return clone.sort(compareFn);\n    };\n\n    var contramap = function (eqa, f) {\n      return eq$2(function (x, y) {\n        return eqa.eq(f(x), f(y));\n      });\n    };\n    var eq$2 = function (f) {\n      return { eq: f };\n    };\n    var tripleEq = eq$2(function (x, y) {\n      return x === y;\n    });\n    var eqString = tripleEq;\n    var eqArray = function (eqa) {\n      return eq$2(function (x, y) {\n        if (x.length !== y.length) {\n          return false;\n        }\n        var len = x.length;\n        for (var i = 0; i < len; i++) {\n          if (!eqa.eq(x[i], y[i])) {\n            return false;\n          }\n        }\n        return true;\n      });\n    };\n    var eqSortedArray = function (eqa, compareFn) {\n      return contramap(eqArray(eqa), function (xs) {\n        return sort$1(xs, compareFn);\n      });\n    };\n    var eqRecord = function (eqa) {\n      return eq$2(function (x, y) {\n        var kx = Object.keys(x);\n        var ky = Object.keys(y);\n        if (!eqSortedArray(eqString).eq(kx, ky)) {\n          return false;\n        }\n        var len = kx.length;\n        for (var i = 0; i < len; i++) {\n          var q = kx[i];\n          if (!eqa.eq(x[q], y[q])) {\n            return false;\n          }\n        }\n        return true;\n      });\n    };\n    var eqAny = eq$2(function (x, y) {\n      if (x === y) {\n        return true;\n      }\n      var tx = typeOf$1(x);\n      var ty = typeOf$1(y);\n      if (tx !== ty) {\n        return false;\n      }\n      if (isEquatableType(tx)) {\n        return x === y;\n      } else if (tx === 'array') {\n        return eqArray(eqAny).eq(x, y);\n      } else if (tx === 'object') {\n        return eqRecord(eqAny).eq(x, y);\n      }\n      return false;\n    });\n\n    const getPrototypeOf$1 = Object.getPrototypeOf;\n    const hasProto = (v, constructor, predicate) => {\n      var _a;\n      if (predicate(v, constructor.prototype)) {\n        return true;\n      } else {\n        return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n      }\n    };\n    const typeOf = x => {\n      const t = typeof x;\n      if (x === null) {\n        return 'null';\n      } else if (t === 'object' && Array.isArray(x)) {\n        return 'array';\n      } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n        return 'string';\n      } else {\n        return t;\n      }\n    };\n    const isType$1 = type => value => typeOf(value) === type;\n    const isSimpleType = type => value => typeof value === type;\n    const eq$1 = t => a => t === a;\n    const is$4 = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf$1(o) === proto);\n    const isString = isType$1('string');\n    const isObject = isType$1('object');\n    const isPlainObject = value => is$4(value, Object);\n    const isArray$1 = isType$1('array');\n    const isNull = eq$1(null);\n    const isBoolean = isSimpleType('boolean');\n    const isUndefined = eq$1(undefined);\n    const isNullable = a => a === null || a === undefined;\n    const isNonNullable = a => !isNullable(a);\n    const isFunction = isSimpleType('function');\n    const isNumber = isSimpleType('number');\n    const isArrayOf = (value, pred) => {\n      if (isArray$1(value)) {\n        for (let i = 0, len = value.length; i < len; ++i) {\n          if (!pred(value[i])) {\n            return false;\n          }\n        }\n        return true;\n      }\n      return false;\n    };\n\n    const noop = () => {\n    };\n    const compose = (fa, fb) => {\n      return (...args) => {\n        return fa(fb.apply(null, args));\n      };\n    };\n    const compose1 = (fbc, fab) => a => fbc(fab(a));\n    const constant = value => {\n      return () => {\n        return value;\n      };\n    };\n    const identity = x => {\n      return x;\n    };\n    const tripleEquals = (a, b) => {\n      return a === b;\n    };\n    function curry(fn, ...initialArgs) {\n      return (...restArgs) => {\n        const all = initialArgs.concat(restArgs);\n        return fn.apply(null, all);\n      };\n    }\n    const not = f => t => !f(t);\n    const die = msg => {\n      return () => {\n        throw new Error(msg);\n      };\n    };\n    const apply$1 = f => {\n      return f();\n    };\n    const call = f => {\n      f();\n    };\n    const never = constant(false);\n    const always = constant(true);\n\n    class Optional {\n      constructor(tag, value) {\n        this.tag = tag;\n        this.value = value;\n      }\n      static some(value) {\n        return new Optional(true, value);\n      }\n      static none() {\n        return Optional.singletonNone;\n      }\n      fold(onNone, onSome) {\n        if (this.tag) {\n          return onSome(this.value);\n        } else {\n          return onNone();\n        }\n      }\n      isSome() {\n        return this.tag;\n      }\n      isNone() {\n        return !this.tag;\n      }\n      map(mapper) {\n        if (this.tag) {\n          return Optional.some(mapper(this.value));\n        } else {\n          return Optional.none();\n        }\n      }\n      bind(binder) {\n        if (this.tag) {\n          return binder(this.value);\n        } else {\n          return Optional.none();\n        }\n      }\n      exists(predicate) {\n        return this.tag && predicate(this.value);\n      }\n      forall(predicate) {\n        return !this.tag || predicate(this.value);\n      }\n      filter(predicate) {\n        if (!this.tag || predicate(this.value)) {\n          return this;\n        } else {\n          return Optional.none();\n        }\n      }\n      getOr(replacement) {\n        return this.tag ? this.value : replacement;\n      }\n      or(replacement) {\n        return this.tag ? this : replacement;\n      }\n      getOrThunk(thunk) {\n        return this.tag ? this.value : thunk();\n      }\n      orThunk(thunk) {\n        return this.tag ? this : thunk();\n      }\n      getOrDie(message) {\n        if (!this.tag) {\n          throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n        } else {\n          return this.value;\n        }\n      }\n      static from(value) {\n        return isNonNullable(value) ? Optional.some(value) : Optional.none();\n      }\n      getOrNull() {\n        return this.tag ? this.value : null;\n      }\n      getOrUndefined() {\n        return this.value;\n      }\n      each(worker) {\n        if (this.tag) {\n          worker(this.value);\n        }\n      }\n      toArray() {\n        return this.tag ? [this.value] : [];\n      }\n      toString() {\n        return this.tag ? `some(${ this.value })` : 'none()';\n      }\n    }\n    Optional.singletonNone = new Optional(false);\n\n    const nativeSlice = Array.prototype.slice;\n    const nativeIndexOf = Array.prototype.indexOf;\n    const nativePush = Array.prototype.push;\n    const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n    const indexOf$1 = (xs, x) => {\n      const r = rawIndexOf(xs, x);\n      return r === -1 ? Optional.none() : Optional.some(r);\n    };\n    const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n    const exists = (xs, pred) => {\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        if (pred(x, i)) {\n          return true;\n        }\n      }\n      return false;\n    };\n    const map$3 = (xs, f) => {\n      const len = xs.length;\n      const r = new Array(len);\n      for (let i = 0; i < len; i++) {\n        const x = xs[i];\n        r[i] = f(x, i);\n      }\n      return r;\n    };\n    const each$e = (xs, f) => {\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        f(x, i);\n      }\n    };\n    const eachr = (xs, f) => {\n      for (let i = xs.length - 1; i >= 0; i--) {\n        const x = xs[i];\n        f(x, i);\n      }\n    };\n    const partition$2 = (xs, pred) => {\n      const pass = [];\n      const fail = [];\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        const arr = pred(x, i) ? pass : fail;\n        arr.push(x);\n      }\n      return {\n        pass,\n        fail\n      };\n    };\n    const filter$5 = (xs, pred) => {\n      const r = [];\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        if (pred(x, i)) {\n          r.push(x);\n        }\n      }\n      return r;\n    };\n    const foldr = (xs, f, acc) => {\n      eachr(xs, (x, i) => {\n        acc = f(acc, x, i);\n      });\n      return acc;\n    };\n    const foldl = (xs, f, acc) => {\n      each$e(xs, (x, i) => {\n        acc = f(acc, x, i);\n      });\n      return acc;\n    };\n    const findUntil$1 = (xs, pred, until) => {\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        if (pred(x, i)) {\n          return Optional.some(x);\n        } else if (until(x, i)) {\n          break;\n        }\n      }\n      return Optional.none();\n    };\n    const find$2 = (xs, pred) => {\n      return findUntil$1(xs, pred, never);\n    };\n    const findIndex$2 = (xs, pred) => {\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        if (pred(x, i)) {\n          return Optional.some(i);\n        }\n      }\n      return Optional.none();\n    };\n    const flatten = xs => {\n      const r = [];\n      for (let i = 0, len = xs.length; i < len; ++i) {\n        if (!isArray$1(xs[i])) {\n          throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n        }\n        nativePush.apply(r, xs[i]);\n      }\n      return r;\n    };\n    const bind$3 = (xs, f) => flatten(map$3(xs, f));\n    const forall = (xs, pred) => {\n      for (let i = 0, len = xs.length; i < len; ++i) {\n        const x = xs[i];\n        if (pred(x, i) !== true) {\n          return false;\n        }\n      }\n      return true;\n    };\n    const reverse = xs => {\n      const r = nativeSlice.call(xs, 0);\n      r.reverse();\n      return r;\n    };\n    const difference = (a1, a2) => filter$5(a1, x => !contains$2(a2, x));\n    const mapToObject = (xs, f) => {\n      const r = {};\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        r[String(x)] = f(x, i);\n      }\n      return r;\n    };\n    const sort = (xs, comparator) => {\n      const copy = nativeSlice.call(xs, 0);\n      copy.sort(comparator);\n      return copy;\n    };\n    const get$b = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n    const head = xs => get$b(xs, 0);\n    const last$3 = xs => get$b(xs, xs.length - 1);\n    const from = isFunction(Array.from) ? Array.from : x => nativeSlice.call(x);\n    const findMap = (arr, f) => {\n      for (let i = 0; i < arr.length; i++) {\n        const r = f(arr[i], i);\n        if (r.isSome()) {\n          return r;\n        }\n      }\n      return Optional.none();\n    };\n    const unique$1 = (xs, comparator) => {\n      const r = [];\n      const isDuplicated = isFunction(comparator) ? x => exists(r, i => comparator(i, x)) : x => contains$2(r, x);\n      for (let i = 0, len = xs.length; i < len; i++) {\n        const x = xs[i];\n        if (!isDuplicated(x)) {\n          r.push(x);\n        }\n      }\n      return r;\n    };\n\n    const keys = Object.keys;\n    const hasOwnProperty$2 = Object.hasOwnProperty;\n    const each$d = (obj, f) => {\n      const props = keys(obj);\n      for (let k = 0, len = props.length; k < len; k++) {\n        const i = props[k];\n        const x = obj[i];\n        f(x, i);\n      }\n    };\n    const map$2 = (obj, f) => {\n      return tupleMap(obj, (x, i) => ({\n        k: i,\n        v: f(x, i)\n      }));\n    };\n    const tupleMap = (obj, f) => {\n      const r = {};\n      each$d(obj, (x, i) => {\n        const tuple = f(x, i);\n        r[tuple.k] = tuple.v;\n      });\n      return r;\n    };\n    const objAcc = r => (x, i) => {\n      r[i] = x;\n    };\n    const internalFilter = (obj, pred, onTrue, onFalse) => {\n      each$d(obj, (x, i) => {\n        (pred(x, i) ? onTrue : onFalse)(x, i);\n      });\n    };\n    const bifilter = (obj, pred) => {\n      const t = {};\n      const f = {};\n      internalFilter(obj, pred, objAcc(t), objAcc(f));\n      return {\n        t,\n        f\n      };\n    };\n    const filter$4 = (obj, pred) => {\n      const t = {};\n      internalFilter(obj, pred, objAcc(t), noop);\n      return t;\n    };\n    const mapToArray = (obj, f) => {\n      const r = [];\n      each$d(obj, (value, name) => {\n        r.push(f(value, name));\n      });\n      return r;\n    };\n    const values = obj => {\n      return mapToArray(obj, identity);\n    };\n    const get$a = (obj, key) => {\n      return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n    };\n    const has$2 = (obj, key) => hasOwnProperty$2.call(obj, key);\n    const hasNonNullableKey = (obj, key) => has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n    const equal$1 = (a1, a2, eq = eqAny) => eqRecord(eq).eq(a1, a2);\n\n    const stringArray = a => {\n      const all = {};\n      each$e(a, key => {\n        all[key] = {};\n      });\n      return keys(all);\n    };\n\n    const isArrayLike = o => o.length !== undefined;\n    const isArray = Array.isArray;\n    const toArray$1 = obj => {\n      if (!isArray(obj)) {\n        const array = [];\n        for (let i = 0, l = obj.length; i < l; i++) {\n          array[i] = obj[i];\n        }\n        return array;\n      } else {\n        return obj;\n      }\n    };\n    const each$c = (o, cb, s) => {\n      if (!o) {\n        return false;\n      }\n      s = s || o;\n      if (isArrayLike(o)) {\n        for (let n = 0, l = o.length; n < l; n++) {\n          if (cb.call(s, o[n], n, o) === false) {\n            return false;\n          }\n        }\n      } else {\n        for (const n in o) {\n          if (has$2(o, n)) {\n            if (cb.call(s, o[n], n, o) === false) {\n              return false;\n            }\n          }\n        }\n      }\n      return true;\n    };\n    const map$1 = (array, callback) => {\n      const out = [];\n      each$c(array, (item, index) => {\n        out.push(callback(item, index, array));\n      });\n      return out;\n    };\n    const filter$3 = (a, f) => {\n      const o = [];\n      each$c(a, (v, index) => {\n        if (!f || f(v, index, a)) {\n          o.push(v);\n        }\n      });\n      return o;\n    };\n    const indexOf = (a, v) => {\n      if (a) {\n        for (let i = 0, l = a.length; i < l; i++) {\n          if (a[i] === v) {\n            return i;\n          }\n        }\n      }\n      return -1;\n    };\n    const reduce = (collection, iteratee, accumulator, thisArg) => {\n      let acc = isUndefined(accumulator) ? collection[0] : accumulator;\n      for (let i = 0; i < collection.length; i++) {\n        acc = iteratee.call(thisArg, acc, collection[i], i);\n      }\n      return acc;\n    };\n    const findIndex$1 = (array, predicate, thisArg) => {\n      for (let i = 0, l = array.length; i < l; i++) {\n        if (predicate.call(thisArg, array[i], i, array)) {\n          return i;\n        }\n      }\n      return -1;\n    };\n    const last$2 = collection => collection[collection.length - 1];\n\n    const cached = f => {\n      let called = false;\n      let r;\n      return (...args) => {\n        if (!called) {\n          called = true;\n          r = f.apply(null, args);\n        }\n        return r;\n      };\n    };\n\n    const DeviceType = (os, browser, userAgent, mediaMatch) => {\n      const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n      const isiPhone = os.isiOS() && !isiPad;\n      const isMobile = os.isiOS() || os.isAndroid();\n      const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n      const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n      const isPhone = isiPhone || isMobile && !isTablet;\n      const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n      const isDesktop = !isPhone && !isTablet && !iOSwebview;\n      return {\n        isiPad: constant(isiPad),\n        isiPhone: constant(isiPhone),\n        isTablet: constant(isTablet),\n        isPhone: constant(isPhone),\n        isTouch: constant(isTouch),\n        isAndroid: os.isAndroid,\n        isiOS: os.isiOS,\n        isWebView: constant(iOSwebview),\n        isDesktop: constant(isDesktop)\n      };\n    };\n\n    const firstMatch = (regexes, s) => {\n      for (let i = 0; i < regexes.length; i++) {\n        const x = regexes[i];\n        if (x.test(s)) {\n          return x;\n        }\n      }\n      return undefined;\n    };\n    const find$1 = (regexes, agent) => {\n      const r = firstMatch(regexes, agent);\n      if (!r) {\n        return {\n          major: 0,\n          minor: 0\n        };\n      }\n      const group = i => {\n        return Number(agent.replace(r, '$' + i));\n      };\n      return nu$3(group(1), group(2));\n    };\n    const detect$5 = (versionRegexes, agent) => {\n      const cleanedAgent = String(agent).toLowerCase();\n      if (versionRegexes.length === 0) {\n        return unknown$2();\n      }\n      return find$1(versionRegexes, cleanedAgent);\n    };\n    const unknown$2 = () => {\n      return nu$3(0, 0);\n    };\n    const nu$3 = (major, minor) => {\n      return {\n        major,\n        minor\n      };\n    };\n    const Version = {\n      nu: nu$3,\n      detect: detect$5,\n      unknown: unknown$2\n    };\n\n    const detectBrowser$1 = (browsers, userAgentData) => {\n      return findMap(userAgentData.brands, uaBrand => {\n        const lcBrand = uaBrand.brand.toLowerCase();\n        return find$2(browsers, browser => {\n          var _a;\n          return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n        }).map(info => ({\n          current: info.name,\n          version: Version.nu(parseInt(uaBrand.version, 10), 0)\n        }));\n      });\n    };\n\n    const detect$4 = (candidates, userAgent) => {\n      const agent = String(userAgent).toLowerCase();\n      return find$2(candidates, candidate => {\n        return candidate.search(agent);\n      });\n    };\n    const detectBrowser = (browsers, userAgent) => {\n      return detect$4(browsers, userAgent).map(browser => {\n        const version = Version.detect(browser.versionRegexes, userAgent);\n        return {\n          current: browser.name,\n          version\n        };\n      });\n    };\n    const detectOs = (oses, userAgent) => {\n      return detect$4(oses, userAgent).map(os => {\n        const version = Version.detect(os.versionRegexes, userAgent);\n        return {\n          current: os.name,\n          version\n        };\n      });\n    };\n\n    const removeFromStart = (str, numChars) => {\n      return str.substring(numChars);\n    };\n\n    const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n    const removeLeading = (str, prefix) => {\n      return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n    };\n    const contains$1 = (str, substr, start = 0, end) => {\n      const idx = str.indexOf(substr, start);\n      if (idx !== -1) {\n        return isUndefined(end) ? true : idx + substr.length <= end;\n      } else {\n        return false;\n      }\n    };\n    const startsWith = (str, prefix) => {\n      return checkRange(str, prefix, 0);\n    };\n    const endsWith = (str, suffix) => {\n      return checkRange(str, suffix, str.length - suffix.length);\n    };\n    const blank = r => s => s.replace(r, '');\n    const trim$3 = blank(/^\\s+|\\s+$/g);\n    const lTrim = blank(/^\\s+/g);\n    const rTrim = blank(/\\s+$/g);\n    const isNotEmpty = s => s.length > 0;\n    const isEmpty$3 = s => !isNotEmpty(s);\n    const repeat = (s, count) => count <= 0 ? '' : new Array(count + 1).join(s);\n    const toInt = (value, radix = 10) => {\n      const num = parseInt(value, radix);\n      return isNaN(num) ? Optional.none() : Optional.some(num);\n    };\n\n    const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n    const checkContains = target => {\n      return uastring => {\n        return contains$1(uastring, target);\n      };\n    };\n    const browsers = [\n      {\n        name: 'Edge',\n        versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n        search: uastring => {\n          return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n        }\n      },\n      {\n        name: 'Chromium',\n        brand: 'Chromium',\n        versionRegexes: [\n          /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n          normalVersionRegex\n        ],\n        search: uastring => {\n          return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n        }\n      },\n      {\n        name: 'IE',\n        versionRegexes: [\n          /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n          /.*?rv:([0-9]+)\\.([0-9]+).*/\n        ],\n        search: uastring => {\n          return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n        }\n      },\n      {\n        name: 'Opera',\n        versionRegexes: [\n          normalVersionRegex,\n          /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n        ],\n        search: checkContains('opera')\n      },\n      {\n        name: 'Firefox',\n        versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n        search: checkContains('firefox')\n      },\n      {\n        name: 'Safari',\n        versionRegexes: [\n          normalVersionRegex,\n          /.*?cpu os ([0-9]+)_([0-9]+).*/\n        ],\n        search: uastring => {\n          return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n        }\n      }\n    ];\n    const oses = [\n      {\n        name: 'Windows',\n        search: checkContains('win'),\n        versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n      },\n      {\n        name: 'iOS',\n        search: uastring => {\n          return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n        },\n        versionRegexes: [\n          /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n          /.*cpu os ([0-9]+)_([0-9]+).*/,\n          /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n        ]\n      },\n      {\n        name: 'Android',\n        search: checkContains('android'),\n        versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n      },\n      {\n        name: 'macOS',\n        search: checkContains('mac os x'),\n        versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n      },\n      {\n        name: 'Linux',\n        search: checkContains('linux'),\n        versionRegexes: []\n      },\n      {\n        name: 'Solaris',\n        search: checkContains('sunos'),\n        versionRegexes: []\n      },\n      {\n        name: 'FreeBSD',\n        search: checkContains('freebsd'),\n        versionRegexes: []\n      },\n      {\n        name: 'ChromeOS',\n        search: checkContains('cros'),\n        versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n      }\n    ];\n    const PlatformInfo = {\n      browsers: constant(browsers),\n      oses: constant(oses)\n    };\n\n    const edge = 'Edge';\n    const chromium = 'Chromium';\n    const ie = 'IE';\n    const opera = 'Opera';\n    const firefox = 'Firefox';\n    const safari = 'Safari';\n    const unknown$1 = () => {\n      return nu$2({\n        current: undefined,\n        version: Version.unknown()\n      });\n    };\n    const nu$2 = info => {\n      const current = info.current;\n      const version = info.version;\n      const isBrowser = name => () => current === name;\n      return {\n        current,\n        version,\n        isEdge: isBrowser(edge),\n        isChromium: isBrowser(chromium),\n        isIE: isBrowser(ie),\n        isOpera: isBrowser(opera),\n        isFirefox: isBrowser(firefox),\n        isSafari: isBrowser(safari)\n      };\n    };\n    const Browser = {\n      unknown: unknown$1,\n      nu: nu$2,\n      edge: constant(edge),\n      chromium: constant(chromium),\n      ie: constant(ie),\n      opera: constant(opera),\n      firefox: constant(firefox),\n      safari: constant(safari)\n    };\n\n    const windows = 'Windows';\n    const ios = 'iOS';\n    const android = 'Android';\n    const linux = 'Linux';\n    const macos = 'macOS';\n    const solaris = 'Solaris';\n    const freebsd = 'FreeBSD';\n    const chromeos = 'ChromeOS';\n    const unknown = () => {\n      return nu$1({\n        current: undefined,\n        version: Version.unknown()\n      });\n    };\n    const nu$1 = info => {\n      const current = info.current;\n      const version = info.version;\n      const isOS = name => () => current === name;\n      return {\n        current,\n        version,\n        isWindows: isOS(windows),\n        isiOS: isOS(ios),\n        isAndroid: isOS(android),\n        isMacOS: isOS(macos),\n        isLinux: isOS(linux),\n        isSolaris: isOS(solaris),\n        isFreeBSD: isOS(freebsd),\n        isChromeOS: isOS(chromeos)\n      };\n    };\n    const OperatingSystem = {\n      unknown,\n      nu: nu$1,\n      windows: constant(windows),\n      ios: constant(ios),\n      android: constant(android),\n      linux: constant(linux),\n      macos: constant(macos),\n      solaris: constant(solaris),\n      freebsd: constant(freebsd),\n      chromeos: constant(chromeos)\n    };\n\n    const detect$3 = (userAgent, userAgentDataOpt, mediaMatch) => {\n      const browsers = PlatformInfo.browsers();\n      const oses = PlatformInfo.oses();\n      const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n      const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n      const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n      return {\n        browser,\n        os,\n        deviceType\n      };\n    };\n    const PlatformDetection = { detect: detect$3 };\n\n    const mediaMatch = query => window.matchMedia(query).matches;\n    let platform$2 = cached(() => PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch));\n    const detect$2 = () => platform$2();\n\n    const userAgent = navigator.userAgent;\n    const platform$1 = detect$2();\n    const browser$1 = platform$1.browser;\n    const os = platform$1.os;\n    const deviceType = platform$1.deviceType;\n    const windowsPhone = userAgent.indexOf('Windows Phone') !== -1;\n    const Env = {\n      transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n      documentMode: browser$1.isIE() ? document.documentMode || 7 : 10,\n      cacheSuffix: null,\n      container: null,\n      canHaveCSP: !browser$1.isIE(),\n      windowsPhone,\n      browser: {\n        current: browser$1.current,\n        version: browser$1.version,\n        isChromium: browser$1.isChromium,\n        isEdge: browser$1.isEdge,\n        isFirefox: browser$1.isFirefox,\n        isIE: browser$1.isIE,\n        isOpera: browser$1.isOpera,\n        isSafari: browser$1.isSafari\n      },\n      os: {\n        current: os.current,\n        version: os.version,\n        isAndroid: os.isAndroid,\n        isChromeOS: os.isChromeOS,\n        isFreeBSD: os.isFreeBSD,\n        isiOS: os.isiOS,\n        isLinux: os.isLinux,\n        isMacOS: os.isMacOS,\n        isSolaris: os.isSolaris,\n        isWindows: os.isWindows\n      },\n      deviceType: {\n        isDesktop: deviceType.isDesktop,\n        isiPad: deviceType.isiPad,\n        isiPhone: deviceType.isiPhone,\n        isPhone: deviceType.isPhone,\n        isTablet: deviceType.isTablet,\n        isTouch: deviceType.isTouch,\n        isWebView: deviceType.isWebView\n      }\n    };\n\n    const whiteSpaceRegExp$1 = /^\\s*|\\s*$/g;\n    const trim$2 = str => {\n      return isNullable(str) ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');\n    };\n    const is$3 = (obj, type) => {\n      if (!type) {\n        return obj !== undefined;\n      }\n      if (type === 'array' && isArray(obj)) {\n        return true;\n      }\n      return typeof obj === type;\n    };\n    const makeMap$4 = (items, delim, map = {}) => {\n      const resolvedItems = isString(items) ? items.split(delim || ',') : items || [];\n      let i = resolvedItems.length;\n      while (i--) {\n        map[resolvedItems[i]] = {};\n      }\n      return map;\n    };\n    const hasOwnProperty$1 = has$2;\n    const extend$3 = (obj, ...exts) => {\n      for (let i = 0; i < exts.length; i++) {\n        const ext = exts[i];\n        for (const name in ext) {\n          if (has$2(ext, name)) {\n            const value = ext[name];\n            if (value !== undefined) {\n              obj[name] = value;\n            }\n          }\n        }\n      }\n      return obj;\n    };\n    const walk$4 = function (o, f, n, s) {\n      s = s || this;\n      if (o) {\n        if (n) {\n          o = o[n];\n        }\n        each$c(o, (o, i) => {\n          if (f.call(s, o, i, n) === false) {\n            return false;\n          } else {\n            walk$4(o, f, n, s);\n            return true;\n          }\n        });\n      }\n    };\n    const resolve$2 = (n, o = window) => {\n      const path = n.split('.');\n      for (let i = 0, l = path.length; i < l; i++) {\n        o = o[path[i]];\n        if (!o) {\n          break;\n        }\n      }\n      return o;\n    };\n    const explode$3 = (s, d) => {\n      if (isArray$1(s)) {\n        return s;\n      } else if (s === '') {\n        return [];\n      } else {\n        return map$1(s.split(d || ','), trim$2);\n      }\n    };\n    const _addCacheSuffix = url => {\n      const cacheSuffix = Env.cacheSuffix;\n      if (cacheSuffix) {\n        url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;\n      }\n      return url;\n    };\n    const Tools = {\n      trim: trim$2,\n      isArray: isArray,\n      is: is$3,\n      toArray: toArray$1,\n      makeMap: makeMap$4,\n      each: each$c,\n      map: map$1,\n      grep: filter$3,\n      inArray: indexOf,\n      hasOwn: hasOwnProperty$1,\n      extend: extend$3,\n      walk: walk$4,\n      resolve: resolve$2,\n      explode: explode$3,\n      _addCacheSuffix\n    };\n\n    const is$2 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n    const cat = arr => {\n      const r = [];\n      const push = x => {\n        r.push(x);\n      };\n      for (let i = 0; i < arr.length; i++) {\n        arr[i].each(push);\n      }\n      return r;\n    };\n    const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n    const lift3 = (oa, ob, oc, f) => oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n    const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n    typeof window !== 'undefined' ? window : Function('return this;')();\n\n    const COMMENT = 8;\n    const DOCUMENT = 9;\n    const DOCUMENT_FRAGMENT = 11;\n    const ELEMENT = 1;\n    const TEXT = 3;\n\n    const name = element => {\n      const r = element.dom.nodeName;\n      return r.toLowerCase();\n    };\n    const type$1 = element => element.dom.nodeType;\n    const isType = t => element => type$1(element) === t;\n    const isComment$1 = element => type$1(element) === COMMENT || name(element) === '#comment';\n    const isElement$7 = isType(ELEMENT);\n    const isText$b = isType(TEXT);\n    const isDocument$2 = isType(DOCUMENT);\n    const isDocumentFragment$1 = isType(DOCUMENT_FRAGMENT);\n    const isTag = tag => e => isElement$7(e) && name(e) === tag;\n\n    const rawSet = (dom, key, value) => {\n      if (isString(value) || isBoolean(value) || isNumber(value)) {\n        dom.setAttribute(key, value + '');\n      } else {\n        console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n        throw new Error('Attribute value was not simple');\n      }\n    };\n    const set$2 = (element, key, value) => {\n      rawSet(element.dom, key, value);\n    };\n    const setAll$1 = (element, attrs) => {\n      const dom = element.dom;\n      each$d(attrs, (v, k) => {\n        rawSet(dom, k, v);\n      });\n    };\n    const get$9 = (element, key) => {\n      const v = element.dom.getAttribute(key);\n      return v === null ? undefined : v;\n    };\n    const getOpt = (element, key) => Optional.from(get$9(element, key));\n    const has$1 = (element, key) => {\n      const dom = element.dom;\n      return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n    };\n    const remove$b = (element, key) => {\n      element.dom.removeAttribute(key);\n    };\n    const hasNone = element => {\n      const attrs = element.dom.attributes;\n      return attrs === undefined || attrs === null || attrs.length === 0;\n    };\n    const clone$4 = element => foldl(element.dom.attributes, (acc, attr) => {\n      acc[attr.name] = attr.value;\n      return acc;\n    }, {});\n\n    const read$4 = (element, attr) => {\n      const value = get$9(element, attr);\n      return value === undefined || value === '' ? [] : value.split(' ');\n    };\n    const add$4 = (element, attr, id) => {\n      const old = read$4(element, attr);\n      const nu = old.concat([id]);\n      set$2(element, attr, nu.join(' '));\n      return true;\n    };\n    const remove$a = (element, attr, id) => {\n      const nu = filter$5(read$4(element, attr), v => v !== id);\n      if (nu.length > 0) {\n        set$2(element, attr, nu.join(' '));\n      } else {\n        remove$b(element, attr);\n      }\n      return false;\n    };\n\n    const supports = element => element.dom.classList !== undefined;\n    const get$8 = element => read$4(element, 'class');\n    const add$3 = (element, clazz) => add$4(element, 'class', clazz);\n    const remove$9 = (element, clazz) => remove$a(element, 'class', clazz);\n    const toggle$2 = (element, clazz) => {\n      if (contains$2(get$8(element), clazz)) {\n        return remove$9(element, clazz);\n      } else {\n        return add$3(element, clazz);\n      }\n    };\n\n    const add$2 = (element, clazz) => {\n      if (supports(element)) {\n        element.dom.classList.add(clazz);\n      } else {\n        add$3(element, clazz);\n      }\n    };\n    const cleanClass = element => {\n      const classList = supports(element) ? element.dom.classList : get$8(element);\n      if (classList.length === 0) {\n        remove$b(element, 'class');\n      }\n    };\n    const remove$8 = (element, clazz) => {\n      if (supports(element)) {\n        const classList = element.dom.classList;\n        classList.remove(clazz);\n      } else {\n        remove$9(element, clazz);\n      }\n      cleanClass(element);\n    };\n    const toggle$1 = (element, clazz) => {\n      const result = supports(element) ? element.dom.classList.toggle(clazz) : toggle$2(element, clazz);\n      cleanClass(element);\n      return result;\n    };\n    const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n    const isSupported$1 = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n    const fromHtml$1 = (html, scope) => {\n      const doc = scope || document;\n      const div = doc.createElement('div');\n      div.innerHTML = html;\n      if (!div.hasChildNodes() || div.childNodes.length > 1) {\n        const message = 'HTML does not have a single root node';\n        console.error(message, html);\n        throw new Error(message);\n      }\n      return fromDom$2(div.childNodes[0]);\n    };\n    const fromTag = (tag, scope) => {\n      const doc = scope || document;\n      const node = doc.createElement(tag);\n      return fromDom$2(node);\n    };\n    const fromText = (text, scope) => {\n      const doc = scope || document;\n      const node = doc.createTextNode(text);\n      return fromDom$2(node);\n    };\n    const fromDom$2 = node => {\n      if (node === null || node === undefined) {\n        throw new Error('Node cannot be null or undefined');\n      }\n      return { dom: node };\n    };\n    const fromPoint$2 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$2);\n    const SugarElement = {\n      fromHtml: fromHtml$1,\n      fromTag,\n      fromText,\n      fromDom: fromDom$2,\n      fromPoint: fromPoint$2\n    };\n\n    const toArray = (target, f) => {\n      const r = [];\n      const recurse = e => {\n        r.push(e);\n        return f(e);\n      };\n      let cur = f(target);\n      do {\n        cur = cur.bind(recurse);\n      } while (cur.isSome());\n      return r;\n    };\n\n    const is$1 = (element, selector) => {\n      const dom = element.dom;\n      if (dom.nodeType !== ELEMENT) {\n        return false;\n      } else {\n        const elem = dom;\n        if (elem.matches !== undefined) {\n          return elem.matches(selector);\n        } else if (elem.msMatchesSelector !== undefined) {\n          return elem.msMatchesSelector(selector);\n        } else if (elem.webkitMatchesSelector !== undefined) {\n          return elem.webkitMatchesSelector(selector);\n        } else if (elem.mozMatchesSelector !== undefined) {\n          return elem.mozMatchesSelector(selector);\n        } else {\n          throw new Error('Browser lacks native selectors');\n        }\n      }\n    };\n    const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n    const all = (selector, scope) => {\n      const base = scope === undefined ? document : scope.dom;\n      return bypassSelector(base) ? [] : map$3(base.querySelectorAll(selector), SugarElement.fromDom);\n    };\n    const one = (selector, scope) => {\n      const base = scope === undefined ? document : scope.dom;\n      return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n    };\n\n    const eq = (e1, e2) => e1.dom === e2.dom;\n    const contains = (e1, e2) => {\n      const d1 = e1.dom;\n      const d2 = e2.dom;\n      return d1 === d2 ? false : d1.contains(d2);\n    };\n\n    const owner$1 = element => SugarElement.fromDom(element.dom.ownerDocument);\n    const documentOrOwner = dos => isDocument$2(dos) ? dos : owner$1(dos);\n    const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n    const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n    const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n    const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n    const parents$1 = (element, isRoot) => {\n      const stop = isFunction(isRoot) ? isRoot : never;\n      let dom = element.dom;\n      const ret = [];\n      while (dom.parentNode !== null && dom.parentNode !== undefined) {\n        const rawParent = dom.parentNode;\n        const p = SugarElement.fromDom(rawParent);\n        ret.push(p);\n        if (stop(p) === true) {\n          break;\n        } else {\n          dom = rawParent;\n        }\n      }\n      return ret;\n    };\n    const siblings = element => {\n      const filterSelf = elements => filter$5(elements, x => !eq(element, x));\n      return parent(element).map(children$1).map(filterSelf).getOr([]);\n    };\n    const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n    const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n    const prevSiblings = element => reverse(toArray(element, prevSibling));\n    const nextSiblings = element => toArray(element, nextSibling);\n    const children$1 = element => map$3(element.dom.childNodes, SugarElement.fromDom);\n    const child$1 = (element, index) => {\n      const cs = element.dom.childNodes;\n      return Optional.from(cs[index]).map(SugarElement.fromDom);\n    };\n    const firstChild = element => child$1(element, 0);\n    const lastChild = element => child$1(element, element.dom.childNodes.length - 1);\n    const childNodesCount = element => element.dom.childNodes.length;\n\n    const getHead = doc => {\n      const b = doc.dom.head;\n      if (b === null || b === undefined) {\n        throw new Error('Head is not available yet');\n      }\n      return SugarElement.fromDom(b);\n    };\n\n    const isShadowRoot = dos => isDocumentFragment$1(dos) && isNonNullable(dos.dom.host);\n    const supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);\n    const isSupported = constant(supported);\n    const getRootNode = supported ? e => SugarElement.fromDom(e.dom.getRootNode()) : documentOrOwner;\n    const getStyleContainer = dos => isShadowRoot(dos) ? dos : getHead(documentOrOwner(dos));\n    const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n    const getShadowRoot = e => {\n      const r = getRootNode(e);\n      return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n    };\n    const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n    const getOriginalEventTarget = event => {\n      if (isSupported() && isNonNullable(event.target)) {\n        const el = SugarElement.fromDom(event.target);\n        if (isElement$7(el) && isOpenShadowHost(el)) {\n          if (event.composed && event.composedPath) {\n            const composedPath = event.composedPath();\n            if (composedPath) {\n              return head(composedPath);\n            }\n          }\n        }\n      }\n      return Optional.from(event.target);\n    };\n    const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n    const inBody = element => {\n      const dom = isText$b(element) ? element.dom.parentNode : element.dom;\n      if (dom === undefined || dom === null || dom.ownerDocument === null) {\n        return false;\n      }\n      const doc = dom.ownerDocument;\n      return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n    };\n\n    const internalSet = (dom, property, value) => {\n      if (!isString(value)) {\n        console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n        throw new Error('CSS value must be a string: ' + value);\n      }\n      if (isSupported$1(dom)) {\n        dom.style.setProperty(property, value);\n      }\n    };\n    const internalRemove = (dom, property) => {\n      if (isSupported$1(dom)) {\n        dom.style.removeProperty(property);\n      }\n    };\n    const set$1 = (element, property, value) => {\n      const dom = element.dom;\n      internalSet(dom, property, value);\n    };\n    const setAll = (element, css) => {\n      const dom = element.dom;\n      each$d(css, (v, k) => {\n        internalSet(dom, k, v);\n      });\n    };\n    const get$7 = (element, property) => {\n      const dom = element.dom;\n      const styles = window.getComputedStyle(dom);\n      const r = styles.getPropertyValue(property);\n      return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n    };\n    const getUnsafeProperty = (dom, property) => isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';\n    const getRaw$1 = (element, property) => {\n      const dom = element.dom;\n      const raw = getUnsafeProperty(dom, property);\n      return Optional.from(raw).filter(r => r.length > 0);\n    };\n    const getAllRaw = element => {\n      const css = {};\n      const dom = element.dom;\n      if (isSupported$1(dom)) {\n        for (let i = 0; i < dom.style.length; i++) {\n          const ruleName = dom.style.item(i);\n          css[ruleName] = dom.style[ruleName];\n        }\n      }\n      return css;\n    };\n    const remove$7 = (element, property) => {\n      const dom = element.dom;\n      internalRemove(dom, property);\n      if (is$2(getOpt(element, 'style').map(trim$3), '')) {\n        remove$b(element, 'style');\n      }\n    };\n    const reflow = e => e.dom.offsetWidth;\n\n    const before$3 = (marker, element) => {\n      const parent$1 = parent(marker);\n      parent$1.each(v => {\n        v.dom.insertBefore(element.dom, marker.dom);\n      });\n    };\n    const after$4 = (marker, element) => {\n      const sibling = nextSibling(marker);\n      sibling.fold(() => {\n        const parent$1 = parent(marker);\n        parent$1.each(v => {\n          append$1(v, element);\n        });\n      }, v => {\n        before$3(v, element);\n      });\n    };\n    const prepend = (parent, element) => {\n      const firstChild$1 = firstChild(parent);\n      firstChild$1.fold(() => {\n        append$1(parent, element);\n      }, v => {\n        parent.dom.insertBefore(element.dom, v.dom);\n      });\n    };\n    const append$1 = (parent, element) => {\n      parent.dom.appendChild(element.dom);\n    };\n    const wrap$2 = (element, wrapper) => {\n      before$3(element, wrapper);\n      append$1(wrapper, element);\n    };\n\n    const after$3 = (marker, elements) => {\n      each$e(elements, (x, i) => {\n        const e = i === 0 ? marker : elements[i - 1];\n        after$4(e, x);\n      });\n    };\n    const append = (parent, elements) => {\n      each$e(elements, x => {\n        append$1(parent, x);\n      });\n    };\n\n    const empty = element => {\n      element.dom.textContent = '';\n      each$e(children$1(element), rogue => {\n        remove$6(rogue);\n      });\n    };\n    const remove$6 = element => {\n      const dom = element.dom;\n      if (dom.parentNode !== null) {\n        dom.parentNode.removeChild(dom);\n      }\n    };\n    const unwrap = wrapper => {\n      const children = children$1(wrapper);\n      if (children.length > 0) {\n        after$3(wrapper, children);\n      }\n      remove$6(wrapper);\n    };\n\n    const fromHtml = (html, scope) => {\n      const doc = scope || document;\n      const div = doc.createElement('div');\n      div.innerHTML = html;\n      return children$1(SugarElement.fromDom(div));\n    };\n    const fromDom$1 = nodes => map$3(nodes, SugarElement.fromDom);\n\n    const get$6 = element => element.dom.innerHTML;\n    const set = (element, content) => {\n      const owner = owner$1(element);\n      const docDom = owner.dom;\n      const fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n      const contentElements = fromHtml(content, docDom);\n      append(fragment, contentElements);\n      empty(element);\n      append$1(element, fragment);\n    };\n    const getOuter = element => {\n      const container = SugarElement.fromTag('div');\n      const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n      append$1(container, clone);\n      return get$6(container);\n    };\n\n    const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n      target,\n      x,\n      y,\n      stop,\n      prevent,\n      kill,\n      raw\n    });\n    const fromRawEvent = rawEvent => {\n      const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n      const stop = () => rawEvent.stopPropagation();\n      const prevent = () => rawEvent.preventDefault();\n      const kill = compose(prevent, stop);\n      return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n    };\n    const handle$1 = (filter, handler) => rawEvent => {\n      if (filter(rawEvent)) {\n        handler(fromRawEvent(rawEvent));\n      }\n    };\n    const binder = (element, event, filter, handler, useCapture) => {\n      const wrapped = handle$1(filter, handler);\n      element.dom.addEventListener(event, wrapped, useCapture);\n      return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n    };\n    const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n    const unbind = (element, event, handler, useCapture) => {\n      element.dom.removeEventListener(event, handler, useCapture);\n    };\n\n    const r = (left, top) => {\n      const translate = (x, y) => r(left + x, top + y);\n      return {\n        left,\n        top,\n        translate\n      };\n    };\n    const SugarPosition = r;\n\n    const boxPosition = dom => {\n      const box = dom.getBoundingClientRect();\n      return SugarPosition(box.left, box.top);\n    };\n    const firstDefinedOrZero = (a, b) => {\n      if (a !== undefined) {\n        return a;\n      } else {\n        return b !== undefined ? b : 0;\n      }\n    };\n    const absolute = element => {\n      const doc = element.dom.ownerDocument;\n      const body = doc.body;\n      const win = doc.defaultView;\n      const html = doc.documentElement;\n      if (body === element.dom) {\n        return SugarPosition(body.offsetLeft, body.offsetTop);\n      }\n      const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n      const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n      const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n      const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n      return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n    };\n    const viewport = element => {\n      const dom = element.dom;\n      const doc = dom.ownerDocument;\n      const body = doc.body;\n      if (body === dom) {\n        return SugarPosition(body.offsetLeft, body.offsetTop);\n      }\n      if (!inBody(element)) {\n        return SugarPosition(0, 0);\n      }\n      return boxPosition(dom);\n    };\n\n    const get$5 = _DOC => {\n      const doc = _DOC !== undefined ? _DOC.dom : document;\n      const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n      const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n      return SugarPosition(x, y);\n    };\n    const to = (x, y, _DOC) => {\n      const doc = _DOC !== undefined ? _DOC.dom : document;\n      const win = doc.defaultView;\n      if (win) {\n        win.scrollTo(x, y);\n      }\n    };\n    const intoView = (element, alignToTop) => {\n      const isSafari = detect$2().browser.isSafari();\n      if (isSafari && isFunction(element.dom.scrollIntoViewIfNeeded)) {\n        element.dom.scrollIntoViewIfNeeded(false);\n      } else {\n        element.dom.scrollIntoView(alignToTop);\n      }\n    };\n\n    const get$4 = _win => {\n      const win = _win === undefined ? window : _win;\n      if (detect$2().browser.isFirefox()) {\n        return Optional.none();\n      } else {\n        return Optional.from(win.visualViewport);\n      }\n    };\n    const bounds = (x, y, width, height) => ({\n      x,\n      y,\n      width,\n      height,\n      right: x + width,\n      bottom: y + height\n    });\n    const getBounds = _win => {\n      const win = _win === undefined ? window : _win;\n      const doc = win.document;\n      const scroll = get$5(SugarElement.fromDom(doc));\n      return get$4(win).fold(() => {\n        const html = win.document.documentElement;\n        const width = html.clientWidth;\n        const height = html.clientHeight;\n        return bounds(scroll.left, scroll.top, width, height);\n      }, visualViewport => bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));\n    };\n\n    const children = (scope, predicate) => filter$5(children$1(scope), predicate);\n    const descendants$1 = (scope, predicate) => {\n      let result = [];\n      each$e(children$1(scope), x => {\n        if (predicate(x)) {\n          result = result.concat([x]);\n        }\n        result = result.concat(descendants$1(x, predicate));\n      });\n      return result;\n    };\n\n    var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n      if (is(scope, a)) {\n        return Optional.some(scope);\n      } else if (isFunction(isRoot) && isRoot(scope)) {\n        return Optional.none();\n      } else {\n        return ancestor(scope, a, isRoot);\n      }\n    };\n\n    const ancestor$3 = (scope, predicate, isRoot) => {\n      let element = scope.dom;\n      const stop = isFunction(isRoot) ? isRoot : never;\n      while (element.parentNode) {\n        element = element.parentNode;\n        const el = SugarElement.fromDom(element);\n        if (predicate(el)) {\n          return Optional.some(el);\n        } else if (stop(el)) {\n          break;\n        }\n      }\n      return Optional.none();\n    };\n    const closest$4 = (scope, predicate, isRoot) => {\n      const is = (s, test) => test(s);\n      return ClosestOrAncestor(is, ancestor$3, scope, predicate, isRoot);\n    };\n    const sibling$1 = (scope, predicate) => {\n      const element = scope.dom;\n      if (!element.parentNode) {\n        return Optional.none();\n      }\n      return child(SugarElement.fromDom(element.parentNode), x => !eq(scope, x) && predicate(x));\n    };\n    const child = (scope, predicate) => {\n      const pred = node => predicate(SugarElement.fromDom(node));\n      const result = find$2(scope.dom.childNodes, pred);\n      return result.map(SugarElement.fromDom);\n    };\n    const descendant$1 = (scope, predicate) => {\n      const descend = node => {\n        for (let i = 0; i < node.childNodes.length; i++) {\n          const child = SugarElement.fromDom(node.childNodes[i]);\n          if (predicate(child)) {\n            return Optional.some(child);\n          }\n          const res = descend(node.childNodes[i]);\n          if (res.isSome()) {\n            return res;\n          }\n        }\n        return Optional.none();\n      };\n      return descend(scope.dom);\n    };\n\n    const ancestor$2 = (scope, selector, isRoot) => ancestor$3(scope, e => is$1(e, selector), isRoot);\n    const descendant = (scope, selector) => one(selector, scope);\n    const closest$3 = (scope, selector, isRoot) => {\n      const is = (element, selector) => is$1(element, selector);\n      return ClosestOrAncestor(is, ancestor$2, scope, selector, isRoot);\n    };\n\n    const ancestor$1 = (scope, selector, isRoot) => ancestor$2(scope, selector, isRoot).isSome();\n\n    class DomTreeWalker {\n      constructor(startNode, rootNode) {\n        this.node = startNode;\n        this.rootNode = rootNode;\n        this.current = this.current.bind(this);\n        this.next = this.next.bind(this);\n        this.prev = this.prev.bind(this);\n        this.prev2 = this.prev2.bind(this);\n      }\n      current() {\n        return this.node;\n      }\n      next(shallow) {\n        this.node = this.findSibling(this.node, 'firstChild', 'nextSibling', shallow);\n        return this.node;\n      }\n      prev(shallow) {\n        this.node = this.findSibling(this.node, 'lastChild', 'previousSibling', shallow);\n        return this.node;\n      }\n      prev2(shallow) {\n        this.node = this.findPreviousNode(this.node, shallow);\n        return this.node;\n      }\n      findSibling(node, startName, siblingName, shallow) {\n        if (node) {\n          if (!shallow && node[startName]) {\n            return node[startName];\n          }\n          if (node !== this.rootNode) {\n            let sibling = node[siblingName];\n            if (sibling) {\n              return sibling;\n            }\n            for (let parent = node.parentNode; parent && parent !== this.rootNode; parent = parent.parentNode) {\n              sibling = parent[siblingName];\n              if (sibling) {\n                return sibling;\n              }\n            }\n          }\n        }\n        return undefined;\n      }\n      findPreviousNode(node, shallow) {\n        if (node) {\n          const sibling = node.previousSibling;\n          if (this.rootNode && sibling === this.rootNode) {\n            return;\n          }\n          if (sibling) {\n            if (!shallow) {\n              for (let child = sibling.lastChild; child; child = child.lastChild) {\n                if (!child.lastChild) {\n                  return child;\n                }\n              }\n            }\n            return sibling;\n          }\n          const parent = node.parentNode;\n          if (parent && parent !== this.rootNode) {\n            return parent;\n          }\n        }\n        return undefined;\n      }\n    }\n\n    const isNodeType = type => {\n      return node => {\n        return !!node && node.nodeType === type;\n      };\n    };\n    const isRestrictedNode = node => !!node && !Object.getPrototypeOf(node);\n    const isElement$6 = isNodeType(1);\n    const matchNodeName = name => {\n      const lowerCasedName = name.toLowerCase();\n      return node => isNonNullable(node) && node.nodeName.toLowerCase() === lowerCasedName;\n    };\n    const matchNodeNames = names => {\n      const lowerCasedNames = names.map(s => s.toLowerCase());\n      return node => {\n        if (node && node.nodeName) {\n          const nodeName = node.nodeName.toLowerCase();\n          return contains$2(lowerCasedNames, nodeName);\n        }\n        return false;\n      };\n    };\n    const matchStyleValues = (name, values) => {\n      const items = values.toLowerCase().split(' ');\n      return node => {\n        if (isElement$6(node)) {\n          const win = node.ownerDocument.defaultView;\n          if (win) {\n            for (let i = 0; i < items.length; i++) {\n              const computed = win.getComputedStyle(node, null);\n              const cssValue = computed ? computed.getPropertyValue(name) : null;\n              if (cssValue === items[i]) {\n                return true;\n              }\n            }\n          }\n        }\n        return false;\n      };\n    };\n    const hasAttribute = attrName => {\n      return node => {\n        return isElement$6(node) && node.hasAttribute(attrName);\n      };\n    };\n    const hasAttributeValue = (attrName, attrValue) => {\n      return node => {\n        return isElement$6(node) && node.getAttribute(attrName) === attrValue;\n      };\n    };\n    const isBogus$2 = node => isElement$6(node) && node.hasAttribute('data-mce-bogus');\n    const isBogusAll$1 = node => isElement$6(node) && node.getAttribute('data-mce-bogus') === 'all';\n    const isTable$2 = node => isElement$6(node) && node.tagName === 'TABLE';\n    const hasContentEditableState = value => {\n      return node => {\n        if (isElement$6(node)) {\n          if (node.contentEditable === value) {\n            return true;\n          }\n          if (node.getAttribute('data-mce-contenteditable') === value) {\n            return true;\n          }\n        }\n        return false;\n      };\n    };\n    const isTextareaOrInput = matchNodeNames([\n      'textarea',\n      'input'\n    ]);\n    const isText$a = isNodeType(3);\n    const isCData = isNodeType(4);\n    const isPi = isNodeType(7);\n    const isComment = isNodeType(8);\n    const isDocument$1 = isNodeType(9);\n    const isDocumentFragment = isNodeType(11);\n    const isBr$6 = matchNodeName('br');\n    const isImg = matchNodeName('img');\n    const isContentEditableTrue$3 = hasContentEditableState('true');\n    const isContentEditableFalse$a = hasContentEditableState('false');\n    const isTableCell$3 = matchNodeNames([\n      'td',\n      'th'\n    ]);\n    const isTableCellOrCaption = matchNodeNames([\n      'td',\n      'th',\n      'caption'\n    ]);\n    const isMedia$2 = matchNodeNames([\n      'video',\n      'audio',\n      'object',\n      'embed'\n    ]);\n    const isListItem$2 = matchNodeName('li');\n\n    const zeroWidth = '\\uFEFF';\n    const nbsp = '\\xA0';\n    const isZwsp$1 = char => char === zeroWidth;\n    const removeZwsp = s => s.replace(/\\uFEFF/g, '');\n\n    const descendants = (scope, selector) => all(selector, scope);\n\n    const NodeValue = (is, name) => {\n      const get = element => {\n        if (!is(element)) {\n          throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n        }\n        return getOption(element).getOr('');\n      };\n      const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n      const set = (element, value) => {\n        if (!is(element)) {\n          throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n        }\n        element.dom.nodeValue = value;\n      };\n      return {\n        get,\n        getOption,\n        set\n      };\n    };\n\n    const api$1 = NodeValue(isText$b, 'text');\n    const get$3 = element => api$1.get(element);\n    const getOption = element => api$1.getOption(element);\n\n    const blocks = [\n      'article',\n      'aside',\n      'details',\n      'div',\n      'dt',\n      'figcaption',\n      'footer',\n      'form',\n      'fieldset',\n      'header',\n      'hgroup',\n      'html',\n      'main',\n      'nav',\n      'section',\n      'summary',\n      'body',\n      'p',\n      'dl',\n      'multicol',\n      'dd',\n      'figure',\n      'address',\n      'center',\n      'blockquote',\n      'h1',\n      'h2',\n      'h3',\n      'h4',\n      'h5',\n      'h6',\n      'listing',\n      'xmp',\n      'pre',\n      'plaintext',\n      'menu',\n      'dir',\n      'ul',\n      'ol',\n      'li',\n      'hr',\n      'table',\n      'tbody',\n      'thead',\n      'tfoot',\n      'th',\n      'tr',\n      'td',\n      'caption'\n    ];\n    const tableCells = [\n      'td',\n      'th'\n    ];\n    const tableSections = [\n      'thead',\n      'tbody',\n      'tfoot'\n    ];\n    const textBlocks = [\n      'h1',\n      'h2',\n      'h3',\n      'h4',\n      'h5',\n      'h6',\n      'p',\n      'div',\n      'address',\n      'pre',\n      'form',\n      'blockquote',\n      'center',\n      'dir',\n      'fieldset',\n      'header',\n      'footer',\n      'article',\n      'section',\n      'hgroup',\n      'aside',\n      'nav',\n      'figure'\n    ];\n    const headings = [\n      'h1',\n      'h2',\n      'h3',\n      'h4',\n      'h5',\n      'h6'\n    ];\n    const listItems$1 = [\n      'li',\n      'dd',\n      'dt'\n    ];\n    const lists = [\n      'ul',\n      'ol',\n      'dl'\n    ];\n    const wsElements = [\n      'pre',\n      'script',\n      'textarea',\n      'style'\n    ];\n    const wrapBlockElements = ['pre'].concat(headings);\n    const lazyLookup = items => {\n      let lookup;\n      return node => {\n        lookup = lookup ? lookup : mapToObject(items, always);\n        return has$2(lookup, name(node));\n      };\n    };\n    const isBlock$2 = lazyLookup(blocks);\n    const isTable$1 = node => name(node) === 'table';\n    const isInline$1 = node => isElement$7(node) && !isBlock$2(node);\n    const isBr$5 = node => isElement$7(node) && name(node) === 'br';\n    const isTextBlock$2 = lazyLookup(textBlocks);\n    const isList = lazyLookup(lists);\n    const isListItem$1 = lazyLookup(listItems$1);\n    const isTableSection = lazyLookup(tableSections);\n    const isTableCell$2 = lazyLookup(tableCells);\n    const isWsPreserveElement = lazyLookup(wsElements);\n    const isWrapBlockElement = lazyLookup(wrapBlockElements);\n    const isWrapElement = node => isWrapBlockElement(node) || isInline$1(node);\n\n    const getLastChildren$1 = elm => {\n      const children = [];\n      let rawNode = elm.dom;\n      while (rawNode) {\n        children.push(SugarElement.fromDom(rawNode));\n        rawNode = rawNode.lastChild;\n      }\n      return children;\n    };\n    const removeTrailingBr = elm => {\n      const allBrs = descendants(elm, 'br');\n      const brs = filter$5(getLastChildren$1(elm).slice(-1), isBr$5);\n      if (allBrs.length === brs.length) {\n        each$e(brs, remove$6);\n      }\n    };\n    const createPaddingBr = () => {\n      const br = SugarElement.fromTag('br');\n      set$2(br, 'data-mce-bogus', '1');\n      return br;\n    };\n    const fillWithPaddingBr = elm => {\n      empty(elm);\n      append$1(elm, createPaddingBr());\n    };\n    const trimBlockTrailingBr = elm => {\n      lastChild(elm).each(lastChild => {\n        prevSibling(lastChild).each(lastChildPrevSibling => {\n          if (isBlock$2(elm) && isBr$5(lastChild) && isBlock$2(lastChildPrevSibling)) {\n            remove$6(lastChild);\n          }\n        });\n      });\n    };\n\n    const ZWSP$1 = zeroWidth;\n    const isZwsp = isZwsp$1;\n    const trim$1 = removeZwsp;\n\n    const isElement$5 = isElement$6;\n    const isText$9 = isText$a;\n    const isCaretContainerBlock$1 = node => {\n      if (isText$9(node)) {\n        node = node.parentNode;\n      }\n      return isElement$5(node) && node.hasAttribute('data-mce-caret');\n    };\n    const isCaretContainerInline = node => isText$9(node) && isZwsp(node.data);\n    const isCaretContainer$2 = node => isCaretContainerBlock$1(node) || isCaretContainerInline(node);\n    const hasContent = node => node.firstChild !== node.lastChild || !isBr$6(node.firstChild);\n    const insertInline$1 = (node, before) => {\n      var _a;\n      const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n      const textNode = doc.createTextNode(ZWSP$1);\n      const parentNode = node.parentNode;\n      if (!before) {\n        const sibling = node.nextSibling;\n        if (isText$9(sibling)) {\n          if (isCaretContainer$2(sibling)) {\n            return sibling;\n          }\n          if (startsWithCaretContainer$1(sibling)) {\n            sibling.splitText(1);\n            return sibling;\n          }\n        }\n        if (node.nextSibling) {\n          parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(textNode, node.nextSibling);\n        } else {\n          parentNode === null || parentNode === void 0 ? void 0 : parentNode.appendChild(textNode);\n        }\n      } else {\n        const sibling = node.previousSibling;\n        if (isText$9(sibling)) {\n          if (isCaretContainer$2(sibling)) {\n            return sibling;\n          }\n          if (endsWithCaretContainer$1(sibling)) {\n            return sibling.splitText(sibling.data.length - 1);\n          }\n        }\n        parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(textNode, node);\n      }\n      return textNode;\n    };\n    const isBeforeInline = pos => {\n      const container = pos.container();\n      if (!isText$a(container)) {\n        return false;\n      }\n      return container.data.charAt(pos.offset()) === ZWSP$1 || pos.isAtStart() && isCaretContainerInline(container.previousSibling);\n    };\n    const isAfterInline = pos => {\n      const container = pos.container();\n      if (!isText$a(container)) {\n        return false;\n      }\n      return container.data.charAt(pos.offset() - 1) === ZWSP$1 || pos.isAtEnd() && isCaretContainerInline(container.nextSibling);\n    };\n    const insertBlock = (blockName, node, before) => {\n      var _a;\n      const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n      const blockNode = doc.createElement(blockName);\n      blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after');\n      blockNode.setAttribute('data-mce-bogus', 'all');\n      blockNode.appendChild(createPaddingBr().dom);\n      const parentNode = node.parentNode;\n      if (!before) {\n        if (node.nextSibling) {\n          parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(blockNode, node.nextSibling);\n        } else {\n          parentNode === null || parentNode === void 0 ? void 0 : parentNode.appendChild(blockNode);\n        }\n      } else {\n        parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(blockNode, node);\n      }\n      return blockNode;\n    };\n    const startsWithCaretContainer$1 = node => isText$9(node) && node.data[0] === ZWSP$1;\n    const endsWithCaretContainer$1 = node => isText$9(node) && node.data[node.data.length - 1] === ZWSP$1;\n    const trimBogusBr = elm => {\n      var _a;\n      const brs = elm.getElementsByTagName('br');\n      const lastBr = brs[brs.length - 1];\n      if (isBogus$2(lastBr)) {\n        (_a = lastBr.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(lastBr);\n      }\n    };\n    const showCaretContainerBlock = caretContainer => {\n      if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) {\n        trimBogusBr(caretContainer);\n        caretContainer.removeAttribute('data-mce-caret');\n        caretContainer.removeAttribute('data-mce-bogus');\n        caretContainer.removeAttribute('style');\n        caretContainer.removeAttribute('data-mce-style');\n        caretContainer.removeAttribute('_moz_abspos');\n        return caretContainer;\n      }\n      return null;\n    };\n    const isRangeInCaretContainerBlock = range => isCaretContainerBlock$1(range.startContainer);\n\n    const isContentEditableTrue$2 = isContentEditableTrue$3;\n    const isContentEditableFalse$9 = isContentEditableFalse$a;\n    const isBr$4 = isBr$6;\n    const isText$8 = isText$a;\n    const isInvalidTextElement = matchNodeNames([\n      'script',\n      'style',\n      'textarea'\n    ]);\n    const isAtomicInline = matchNodeNames([\n      'img',\n      'input',\n      'textarea',\n      'hr',\n      'iframe',\n      'video',\n      'audio',\n      'object',\n      'embed'\n    ]);\n    const isTable = matchNodeNames(['table']);\n    const isCaretContainer$1 = isCaretContainer$2;\n    const isCaretCandidate$3 = node => {\n      if (isCaretContainer$1(node)) {\n        return false;\n      }\n      if (isText$8(node)) {\n        return !isInvalidTextElement(node.parentNode);\n      }\n      return isAtomicInline(node) || isBr$4(node) || isTable(node) || isNonUiContentEditableFalse(node);\n    };\n    const isUnselectable = node => isElement$6(node) && node.getAttribute('unselectable') === 'true';\n    const isNonUiContentEditableFalse = node => !isUnselectable(node) && isContentEditableFalse$9(node);\n    const isInEditable = (node, root) => {\n      for (let tempNode = node.parentNode; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n        if (isNonUiContentEditableFalse(tempNode)) {\n          return false;\n        }\n        if (isContentEditableTrue$2(tempNode)) {\n          return true;\n        }\n      }\n      return true;\n    };\n    const isAtomicContentEditableFalse = node => {\n      if (!isNonUiContentEditableFalse(node)) {\n        return false;\n      }\n      return !foldl(from(node.getElementsByTagName('*')), (result, elm) => {\n        return result || isContentEditableTrue$2(elm);\n      }, false);\n    };\n    const isAtomic$1 = node => isAtomicInline(node) || isAtomicContentEditableFalse(node);\n    const isEditableCaretCandidate$1 = (node, root) => isCaretCandidate$3(node) && isInEditable(node, root);\n\n    const whiteSpaceRegExp = /^[ \\t\\r\\n]*$/;\n    const isWhitespaceText = text => whiteSpaceRegExp.test(text);\n    const isCollapsibleWhitespace$1 = c => ' \\f\\t\\x0B'.indexOf(c) !== -1;\n    const isNewLineChar = c => c === '\\n' || c === '\\r';\n    const isNewline = (text, idx) => idx < text.length && idx >= 0 ? isNewLineChar(text[idx]) : false;\n    const normalize$4 = (text, tabSpaces = 4, isStartOfContent = true, isEndOfContent = true) => {\n      const tabSpace = repeat(' ', tabSpaces);\n      const normalizedText = text.replace(/\\t/g, tabSpace);\n      const result = foldl(normalizedText, (acc, c) => {\n        if (isCollapsibleWhitespace$1(c) || c === nbsp) {\n          if (acc.pcIsSpace || acc.str === '' && isStartOfContent || acc.str.length === normalizedText.length - 1 && isEndOfContent || isNewline(normalizedText, acc.str.length + 1)) {\n            return {\n              pcIsSpace: false,\n              str: acc.str + nbsp\n            };\n          } else {\n            return {\n              pcIsSpace: true,\n              str: acc.str + ' '\n            };\n          }\n        } else {\n          return {\n            pcIsSpace: isNewLineChar(c),\n            str: acc.str + c\n          };\n        }\n      }, {\n        pcIsSpace: false,\n        str: ''\n      });\n      return result.str;\n    };\n\n    const hasWhitespacePreserveParent = (node, rootNode) => {\n      const rootElement = SugarElement.fromDom(rootNode);\n      const startNode = SugarElement.fromDom(node);\n      return ancestor$1(startNode, 'pre,code', curry(eq, rootElement));\n    };\n    const isWhitespace$1 = (node, rootNode) => {\n      return isText$a(node) && isWhitespaceText(node.data) && !hasWhitespacePreserveParent(node, rootNode);\n    };\n    const isNamedAnchor = node => {\n      return isElement$6(node) && node.nodeName === 'A' && !node.hasAttribute('href') && (node.hasAttribute('name') || node.hasAttribute('id'));\n    };\n    const isContent$1 = (node, rootNode) => {\n      return isCaretCandidate$3(node) && !isWhitespace$1(node, rootNode) || isNamedAnchor(node) || isBookmark(node);\n    };\n    const isBookmark = hasAttribute('data-mce-bookmark');\n    const isBogus$1 = hasAttribute('data-mce-bogus');\n    const isBogusAll = hasAttributeValue('data-mce-bogus', 'all');\n    const isEmptyNode = (targetNode, skipBogus) => {\n      let brCount = 0;\n      if (isContent$1(targetNode, targetNode)) {\n        return false;\n      } else {\n        let node = targetNode.firstChild;\n        if (!node) {\n          return true;\n        }\n        const walker = new DomTreeWalker(node, targetNode);\n        do {\n          if (skipBogus) {\n            if (isBogusAll(node)) {\n              node = walker.next(true);\n              continue;\n            }\n            if (isBogus$1(node)) {\n              node = walker.next();\n              continue;\n            }\n          }\n          if (isBr$6(node)) {\n            brCount++;\n            node = walker.next();\n            continue;\n          }\n          if (isContent$1(node, targetNode)) {\n            return false;\n          }\n          node = walker.next();\n        } while (node);\n        return brCount <= 1;\n      }\n    };\n    const isEmpty$2 = (elm, skipBogus = true) => isEmptyNode(elm.dom, skipBogus);\n\n    const transparentBlockAttr = 'data-mce-block';\n    const elementNames = map => filter$5(keys(map), key => !/[A-Z]/.test(key));\n    const makeSelectorFromSchemaMap = map => elementNames(map).join(',');\n    const updateTransparent = (blocksSelector, transparent) => {\n      if (isNonNullable(transparent.querySelector(blocksSelector))) {\n        transparent.setAttribute(transparentBlockAttr, 'true');\n        if (transparent.getAttribute('data-mce-selected') === 'inline-boundary') {\n          transparent.removeAttribute('data-mce-selected');\n        }\n        return true;\n      } else {\n        transparent.removeAttribute(transparentBlockAttr);\n        return false;\n      }\n    };\n    const updateBlockStateOnChildren = (schema, scope) => {\n      const transparentSelector = makeSelectorFromSchemaMap(schema.getTransparentElements());\n      const blocksSelector = makeSelectorFromSchemaMap(schema.getBlockElements());\n      return filter$5(scope.querySelectorAll(transparentSelector), transparent => updateTransparent(blocksSelector, transparent));\n    };\n    const trimEdge = (el, leftSide) => {\n      var _a;\n      const childPropertyName = leftSide ? 'lastChild' : 'firstChild';\n      for (let child = el[childPropertyName]; child; child = child[childPropertyName]) {\n        if (isEmpty$2(SugarElement.fromDom(child))) {\n          (_a = child.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(child);\n          return;\n        }\n      }\n    };\n    const split$2 = (parentElm, splitElm) => {\n      const range = document.createRange();\n      const parentNode = parentElm.parentNode;\n      if (parentNode) {\n        range.setStartBefore(parentElm);\n        range.setEndBefore(splitElm);\n        const beforeFragment = range.extractContents();\n        trimEdge(beforeFragment, true);\n        range.setStartAfter(splitElm);\n        range.setEndAfter(parentElm);\n        const afterFragment = range.extractContents();\n        trimEdge(afterFragment, false);\n        if (!isEmpty$2(SugarElement.fromDom(beforeFragment))) {\n          parentNode.insertBefore(beforeFragment, parentElm);\n        }\n        if (!isEmpty$2(SugarElement.fromDom(splitElm))) {\n          parentNode.insertBefore(splitElm, parentElm);\n        }\n        if (!isEmpty$2(SugarElement.fromDom(afterFragment))) {\n          parentNode.insertBefore(afterFragment, parentElm);\n        }\n        parentNode.removeChild(parentElm);\n      }\n    };\n    const splitInvalidChildren = (schema, scope, transparentBlocks) => {\n      const blocksElements = schema.getBlockElements();\n      const rootNode = SugarElement.fromDom(scope);\n      const isBlock = el => name(el) in blocksElements;\n      const isRoot = el => eq(el, rootNode);\n      each$e(fromDom$1(transparentBlocks), transparentBlock => {\n        ancestor$3(transparentBlock, isBlock, isRoot).each(parentBlock => {\n          const invalidChildren = children(transparentBlock, el => isBlock(el) && !schema.isValidChild(name(parentBlock), name(el)));\n          if (invalidChildren.length > 0) {\n            const stateScope = parentElement(parentBlock);\n            each$e(invalidChildren, child => {\n              ancestor$3(child, isBlock, isRoot).each(parentBlock => {\n                split$2(parentBlock.dom, child.dom);\n              });\n            });\n            stateScope.each(scope => updateBlockStateOnChildren(schema, scope.dom));\n          }\n        });\n      });\n    };\n    const updateChildren = (schema, scope) => {\n      const transparentBlocks = updateBlockStateOnChildren(schema, scope);\n      splitInvalidChildren(schema, scope, transparentBlocks);\n    };\n    const updateElement = (schema, target) => {\n      if (isTransparentElement(schema, target)) {\n        const blocksSelector = makeSelectorFromSchemaMap(schema.getBlockElements());\n        updateTransparent(blocksSelector, target);\n      }\n    };\n    const updateCaret = (schema, root, caretParent) => {\n      const isRoot = el => eq(el, SugarElement.fromDom(root));\n      const parents = parents$1(SugarElement.fromDom(caretParent), isRoot);\n      get$b(parents, parents.length - 2).filter(isElement$7).fold(() => updateChildren(schema, root), scope => updateChildren(schema, scope.dom));\n    };\n    const hasBlockAttr = el => el.hasAttribute(transparentBlockAttr);\n    const isTransparentElementName = (schema, name) => has$2(schema.getTransparentElements(), name);\n    const isTransparentElement = (schema, node) => isElement$6(node) && isTransparentElementName(schema, node.nodeName);\n    const isTransparentBlock = (schema, node) => isTransparentElement(schema, node) && hasBlockAttr(node);\n    const isTransparentAstBlock = (schema, node) => node.type === 1 && isTransparentElementName(schema, node.name) && isString(node.attr(transparentBlockAttr));\n    const isTransparentAstInline = (schema, node) => node.type === 1 && isTransparentElementName(schema, node.name) && isUndefined(node.attr(transparentBlockAttr));\n\n    const browser = detect$2().browser;\n    const firstElement = nodes => find$2(nodes, isElement$7);\n    const getTableCaptionDeltaY = elm => {\n      if (browser.isFirefox() && name(elm) === 'table') {\n        return firstElement(children$1(elm)).filter(elm => {\n          return name(elm) === 'caption';\n        }).bind(caption => {\n          return firstElement(nextSiblings(caption)).map(body => {\n            const bodyTop = body.dom.offsetTop;\n            const captionTop = caption.dom.offsetTop;\n            const captionHeight = caption.dom.offsetHeight;\n            return bodyTop <= captionTop ? -captionHeight : 0;\n          });\n        }).getOr(0);\n      } else {\n        return 0;\n      }\n    };\n    const hasChild = (elm, child) => elm.children && contains$2(elm.children, child);\n    const getPos = (body, elm, rootElm) => {\n      let x = 0, y = 0;\n      const doc = body.ownerDocument;\n      rootElm = rootElm ? rootElm : body;\n      if (elm) {\n        if (rootElm === body && elm.getBoundingClientRect && get$7(SugarElement.fromDom(body), 'position') === 'static') {\n          const pos = elm.getBoundingClientRect();\n          x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;\n          y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;\n          return {\n            x,\n            y\n          };\n        }\n        let offsetParent = elm;\n        while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n          const castOffsetParent = offsetParent;\n          x += castOffsetParent.offsetLeft || 0;\n          y += castOffsetParent.offsetTop || 0;\n          offsetParent = castOffsetParent.offsetParent;\n        }\n        offsetParent = elm.parentNode;\n        while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n          x -= offsetParent.scrollLeft || 0;\n          y -= offsetParent.scrollTop || 0;\n          offsetParent = offsetParent.parentNode;\n        }\n        y += getTableCaptionDeltaY(SugarElement.fromDom(elm));\n      }\n      return {\n        x,\n        y\n      };\n    };\n\n    const StyleSheetLoader = (documentOrShadowRoot, settings = {}) => {\n      let idCount = 0;\n      const loadedStates = {};\n      const edos = SugarElement.fromDom(documentOrShadowRoot);\n      const doc = documentOrOwner(edos);\n      const maxLoadTime = settings.maxLoadTime || 5000;\n      const _setReferrerPolicy = referrerPolicy => {\n        settings.referrerPolicy = referrerPolicy;\n      };\n      const _setContentCssCors = contentCssCors => {\n        settings.contentCssCors = contentCssCors;\n      };\n      const addStyle = element => {\n        append$1(getStyleContainer(edos), element);\n      };\n      const removeStyle = id => {\n        const styleContainer = getStyleContainer(edos);\n        descendant(styleContainer, '#' + id).each(remove$6);\n      };\n      const getOrCreateState = url => get$a(loadedStates, url).getOrThunk(() => ({\n        id: 'mce-u' + idCount++,\n        passed: [],\n        failed: [],\n        count: 0\n      }));\n      const load = url => new Promise((success, failure) => {\n        let link;\n        const urlWithSuffix = Tools._addCacheSuffix(url);\n        const state = getOrCreateState(urlWithSuffix);\n        loadedStates[urlWithSuffix] = state;\n        state.count++;\n        const resolve = (callbacks, status) => {\n          each$e(callbacks, call);\n          state.status = status;\n          state.passed = [];\n          state.failed = [];\n          if (link) {\n            link.onload = null;\n            link.onerror = null;\n            link = null;\n          }\n        };\n        const passed = () => resolve(state.passed, 2);\n        const failed = () => resolve(state.failed, 3);\n        const wait = (testCallback, waitCallback) => {\n          if (!testCallback()) {\n            if (Date.now() - startTime < maxLoadTime) {\n              setTimeout(waitCallback);\n            } else {\n              failed();\n            }\n          }\n        };\n        const waitForWebKitLinkLoaded = () => {\n          wait(() => {\n            const styleSheets = documentOrShadowRoot.styleSheets;\n            let i = styleSheets.length;\n            while (i--) {\n              const styleSheet = styleSheets[i];\n              const owner = styleSheet.ownerNode;\n              if (owner && link && owner.id === link.id) {\n                passed();\n                return true;\n              }\n            }\n            return false;\n          }, waitForWebKitLinkLoaded);\n        };\n        if (success) {\n          state.passed.push(success);\n        }\n        if (failure) {\n          state.failed.push(failure);\n        }\n        if (state.status === 1) {\n          return;\n        }\n        if (state.status === 2) {\n          passed();\n          return;\n        }\n        if (state.status === 3) {\n          failed();\n          return;\n        }\n        state.status = 1;\n        const linkElem = SugarElement.fromTag('link', doc.dom);\n        setAll$1(linkElem, {\n          rel: 'stylesheet',\n          type: 'text/css',\n          id: state.id\n        });\n        const startTime = Date.now();\n        if (settings.contentCssCors) {\n          set$2(linkElem, 'crossOrigin', 'anonymous');\n        }\n        if (settings.referrerPolicy) {\n          set$2(linkElem, 'referrerpolicy', settings.referrerPolicy);\n        }\n        link = linkElem.dom;\n        link.onload = waitForWebKitLinkLoaded;\n        link.onerror = failed;\n        addStyle(linkElem);\n        set$2(linkElem, 'href', urlWithSuffix);\n      });\n      const loadAll = urls => {\n        const loadedUrls = Promise.allSettled(map$3(urls, url => load(url).then(constant(url))));\n        return loadedUrls.then(results => {\n          const parts = partition$2(results, r => r.status === 'fulfilled');\n          if (parts.fail.length > 0) {\n            return Promise.reject(map$3(parts.fail, result => result.reason));\n          } else {\n            return map$3(parts.pass, result => result.value);\n          }\n        });\n      };\n      const unload = url => {\n        const urlWithSuffix = Tools._addCacheSuffix(url);\n        get$a(loadedStates, urlWithSuffix).each(state => {\n          const count = --state.count;\n          if (count === 0) {\n            delete loadedStates[urlWithSuffix];\n            removeStyle(state.id);\n          }\n        });\n      };\n      const unloadAll = urls => {\n        each$e(urls, url => {\n          unload(url);\n        });\n      };\n      return {\n        load,\n        loadAll,\n        unload,\n        unloadAll,\n        _setReferrerPolicy,\n        _setContentCssCors\n      };\n    };\n\n    const create$d = () => {\n      const map = new WeakMap();\n      const forElement = (referenceElement, settings) => {\n        const root = getRootNode(referenceElement);\n        const rootDom = root.dom;\n        return Optional.from(map.get(rootDom)).getOrThunk(() => {\n          const sl = StyleSheetLoader(rootDom, settings);\n          map.set(rootDom, sl);\n          return sl;\n        });\n      };\n      return { forElement };\n    };\n    const instance = create$d();\n\n    const isSpan = node => node.nodeName.toLowerCase() === 'span';\n    const isInlineContent = (node, root) => isNonNullable(node) && (isContent$1(node, root) || isInline$1(SugarElement.fromDom(node)));\n    const surroundedByInlineContent = (node, root) => {\n      const prev = new DomTreeWalker(node, root).prev(false);\n      const next = new DomTreeWalker(node, root).next(false);\n      const prevIsInline = isUndefined(prev) || isInlineContent(prev, root);\n      const nextIsInline = isUndefined(next) || isInlineContent(next, root);\n      return prevIsInline && nextIsInline;\n    };\n    const isBookmarkNode$2 = node => isSpan(node) && node.getAttribute('data-mce-type') === 'bookmark';\n    const isKeepTextNode = (node, root) => isText$a(node) && node.data.length > 0 && surroundedByInlineContent(node, root);\n    const isKeepElement = node => isElement$6(node) ? node.childNodes.length > 0 : false;\n    const isDocument = node => isDocumentFragment(node) || isDocument$1(node);\n    const trimNode = (dom, node, root) => {\n      var _a;\n      const rootNode = root || node;\n      if (isElement$6(node) && isBookmarkNode$2(node)) {\n        return node;\n      }\n      const children = node.childNodes;\n      for (let i = children.length - 1; i >= 0; i--) {\n        trimNode(dom, children[i], rootNode);\n      }\n      if (isElement$6(node)) {\n        const currentChildren = node.childNodes;\n        if (currentChildren.length === 1 && isBookmarkNode$2(currentChildren[0])) {\n          (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(currentChildren[0], node);\n        }\n      }\n      if (!isDocument(node) && !isContent$1(node, rootNode) && !isKeepElement(node) && !isKeepTextNode(node, rootNode)) {\n        dom.remove(node);\n      }\n      return node;\n    };\n\n    const makeMap$3 = Tools.makeMap;\n    const attrsCharsRegExp = /[&<>\\\"\\u0060\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n    const textCharsRegExp = /[<>&\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n    const rawCharsRegExp = /[<>&\\\"\\']/g;\n    const entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;\n    const asciiMap = {\n      128: '\\u20AC',\n      130: '\\u201A',\n      131: '\\u0192',\n      132: '\\u201E',\n      133: '\\u2026',\n      134: '\\u2020',\n      135: '\\u2021',\n      136: '\\u02c6',\n      137: '\\u2030',\n      138: '\\u0160',\n      139: '\\u2039',\n      140: '\\u0152',\n      142: '\\u017d',\n      145: '\\u2018',\n      146: '\\u2019',\n      147: '\\u201C',\n      148: '\\u201D',\n      149: '\\u2022',\n      150: '\\u2013',\n      151: '\\u2014',\n      152: '\\u02DC',\n      153: '\\u2122',\n      154: '\\u0161',\n      155: '\\u203A',\n      156: '\\u0153',\n      158: '\\u017e',\n      159: '\\u0178'\n    };\n    const baseEntities = {\n      '\"': '&quot;',\n      '\\'': '&#39;',\n      '<': '&lt;',\n      '>': '&gt;',\n      '&': '&amp;',\n      '`': '&#96;'\n    };\n    const reverseEntities = {\n      '&lt;': '<',\n      '&gt;': '>',\n      '&amp;': '&',\n      '&quot;': '\"',\n      '&apos;': `'`\n    };\n    const nativeDecode = text => {\n      const elm = SugarElement.fromTag('div').dom;\n      elm.innerHTML = text;\n      return elm.textContent || elm.innerText || text;\n    };\n    const buildEntitiesLookup = (items, radix) => {\n      const lookup = {};\n      if (items) {\n        const itemList = items.split(',');\n        radix = radix || 10;\n        for (let i = 0; i < itemList.length; i += 2) {\n          const chr = String.fromCharCode(parseInt(itemList[i], radix));\n          if (!baseEntities[chr]) {\n            const entity = '&' + itemList[i + 1] + ';';\n            lookup[chr] = entity;\n            lookup[entity] = chr;\n          }\n        }\n        return lookup;\n      } else {\n        return undefined;\n      }\n    };\n    const namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32);\n    const encodeRaw = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n      return baseEntities[chr] || chr;\n    });\n    const encodeAllRaw = text => ('' + text).replace(rawCharsRegExp, chr => {\n      return baseEntities[chr] || chr;\n    });\n    const encodeNumeric = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n      if (chr.length > 1) {\n        return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n      }\n      return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';\n    });\n    const encodeNamed = (text, attr, entities) => {\n      const resolveEntities = entities || namedEntities;\n      return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n        return baseEntities[chr] || resolveEntities[chr] || chr;\n      });\n    };\n    const getEncodeFunc = (name, entities) => {\n      const entitiesMap = buildEntitiesLookup(entities) || namedEntities;\n      const encodeNamedAndNumeric = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n        if (baseEntities[chr] !== undefined) {\n          return baseEntities[chr];\n        }\n        if (entitiesMap[chr] !== undefined) {\n          return entitiesMap[chr];\n        }\n        if (chr.length > 1) {\n          return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n        }\n        return '&#' + chr.charCodeAt(0) + ';';\n      });\n      const encodeCustomNamed = (text, attr) => {\n        return encodeNamed(text, attr, entitiesMap);\n      };\n      const nameMap = makeMap$3(name.replace(/\\+/g, ','));\n      if (nameMap.named && nameMap.numeric) {\n        return encodeNamedAndNumeric;\n      }\n      if (nameMap.named) {\n        if (entities) {\n          return encodeCustomNamed;\n        }\n        return encodeNamed;\n      }\n      if (nameMap.numeric) {\n        return encodeNumeric;\n      }\n      return encodeRaw;\n    };\n    const decode = text => text.replace(entityRegExp, (all, numeric) => {\n      if (numeric) {\n        if (numeric.charAt(0).toLowerCase() === 'x') {\n          numeric = parseInt(numeric.substr(1), 16);\n        } else {\n          numeric = parseInt(numeric, 10);\n        }\n        if (numeric > 65535) {\n          numeric -= 65536;\n          return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023));\n        }\n        return asciiMap[numeric] || String.fromCharCode(numeric);\n      }\n      return reverseEntities[all] || namedEntities[all] || nativeDecode(all);\n    });\n    const Entities = {\n      encodeRaw,\n      encodeAllRaw,\n      encodeNumeric,\n      encodeNamed,\n      getEncodeFunc,\n      decode\n    };\n\n    const lookupCache = {};\n    const mapCache = {};\n    const dummyObj = {};\n    const makeMap$2 = Tools.makeMap, each$b = Tools.each, extend$2 = Tools.extend, explode$2 = Tools.explode, inArray = Tools.inArray;\n    const split$1 = (items, delim) => {\n      items = Tools.trim(items);\n      return items ? items.split(delim || ' ') : [];\n    };\n    const createMap = (defaultValue, extendWith = {}) => {\n      const value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' '));\n      return extend$2(value, extendWith);\n    };\n    const getTextRootBlockElements = schema => createMap('td th li dt dd figcaption caption details summary', schema.getTextBlockElements());\n    const compileSchema = type => {\n      const schema = {};\n      let globalAttributes, blockContent;\n      let phrasingContent, flowContent;\n      const add = (name, attributes = '', children = '') => {\n        const childNames = split$1(children);\n        const names = split$1(name);\n        let ni = names.length;\n        while (ni--) {\n          const attributesOrder = split$1([\n            globalAttributes,\n            attributes\n          ].join(' '));\n          schema[names[ni]] = {\n            attributes: mapToObject(attributesOrder, () => ({})),\n            attributesOrder,\n            children: mapToObject(childNames, constant(dummyObj))\n          };\n        }\n      };\n      const addAttrs = (name, attributes) => {\n        const names = split$1(name);\n        const attrs = split$1(attributes);\n        let ni = names.length;\n        while (ni--) {\n          const schemaItem = schema[names[ni]];\n          for (let i = 0, l = attrs.length; i < l; i++) {\n            schemaItem.attributes[attrs[i]] = {};\n            schemaItem.attributesOrder.push(attrs[i]);\n          }\n        }\n      };\n      if (lookupCache[type]) {\n        return lookupCache[type];\n      }\n      globalAttributes = 'id accesskey class dir lang style tabindex title role';\n      blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul';\n      phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment';\n      if (type !== 'html4') {\n        const transparentContent = 'a ins del canvas map';\n        globalAttributes += ' contenteditable contextmenu draggable dropzone ' + 'hidden spellcheck translate';\n        blockContent += ' article aside details dialog figure main header footer hgroup section nav ' + transparentContent;\n        phrasingContent += ' audio canvas command datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen';\n      }\n      if (type !== 'html5-strict') {\n        globalAttributes += ' xml:lang';\n        const html4PhrasingContent = 'acronym applet basefont big font strike tt';\n        phrasingContent = [\n          phrasingContent,\n          html4PhrasingContent\n        ].join(' ');\n        each$b(split$1(html4PhrasingContent), name => {\n          add(name, '', phrasingContent);\n        });\n        const html4BlockContent = 'center dir isindex noframes';\n        blockContent = [\n          blockContent,\n          html4BlockContent\n        ].join(' ');\n        flowContent = [\n          blockContent,\n          phrasingContent\n        ].join(' ');\n        each$b(split$1(html4BlockContent), name => {\n          add(name, '', flowContent);\n        });\n      }\n      flowContent = flowContent || [\n        blockContent,\n        phrasingContent\n      ].join(' ');\n      add('html', 'manifest', 'head body');\n      add('head', '', 'base command link meta noscript script style title');\n      add('title hr noscript br');\n      add('base', 'href target');\n      add('link', 'href rel media hreflang type sizes hreflang');\n      add('meta', 'name http-equiv content charset');\n      add('style', 'media type scoped');\n      add('script', 'src async defer type charset');\n      add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent);\n      add('address dt dd div caption', '', flowContent);\n      add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent);\n      add('blockquote', 'cite', flowContent);\n      add('ol', 'reversed start type', 'li');\n      add('ul', '', 'li');\n      add('li', 'value', flowContent);\n      add('dl', '', 'dt dd');\n      add('a', 'href target rel media hreflang type', flowContent);\n      add('q', 'cite', phrasingContent);\n      add('ins del', 'cite datetime', flowContent);\n      add('img', 'src sizes srcset alt usemap ismap width height');\n      add('iframe', 'src name width height', flowContent);\n      add('embed', 'src type width height');\n      add('object', 'data type typemustmatch name usemap form width height', [\n        flowContent,\n        'param'\n      ].join(' '));\n      add('param', 'name value');\n      add('map', 'name', [\n        flowContent,\n        'area'\n      ].join(' '));\n      add('area', 'alt coords shape href target rel media hreflang type');\n      add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : ''));\n      add('colgroup', 'span', 'col');\n      add('col', 'span');\n      add('tbody thead tfoot', '', 'tr');\n      add('tr', '', 'td th');\n      add('td', 'colspan rowspan headers', flowContent);\n      add('th', 'colspan rowspan headers scope abbr', flowContent);\n      add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent);\n      add('fieldset', 'disabled form name', [\n        flowContent,\n        'legend'\n      ].join(' '));\n      add('label', 'form for', phrasingContent);\n      add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width');\n      add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent);\n      add('select', 'disabled form multiple name required size', 'option optgroup');\n      add('optgroup', 'disabled label', 'option');\n      add('option', 'disabled label selected value');\n      add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap');\n      add('menu', 'type label', [\n        flowContent,\n        'li'\n      ].join(' '));\n      add('noscript', '', flowContent);\n      if (type !== 'html4') {\n        add('wbr');\n        add('ruby', '', [\n          phrasingContent,\n          'rt rp'\n        ].join(' '));\n        add('figcaption', '', flowContent);\n        add('mark rt rp summary bdi', '', phrasingContent);\n        add('canvas', 'width height', flowContent);\n        add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [\n          flowContent,\n          'track source'\n        ].join(' '));\n        add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [\n          flowContent,\n          'track source'\n        ].join(' '));\n        add('picture', '', 'img source');\n        add('source', 'src srcset type media sizes');\n        add('track', 'kind src srclang label default');\n        add('datalist', '', [\n          phrasingContent,\n          'option'\n        ].join(' '));\n        add('article section nav aside main header footer', '', flowContent);\n        add('hgroup', '', 'h1 h2 h3 h4 h5 h6');\n        add('figure', '', [\n          flowContent,\n          'figcaption'\n        ].join(' '));\n        add('time', 'datetime', phrasingContent);\n        add('dialog', 'open', flowContent);\n        add('command', 'type label icon disabled checked radiogroup command');\n        add('output', 'for form name', phrasingContent);\n        add('progress', 'value max', phrasingContent);\n        add('meter', 'value min max low high optimum', phrasingContent);\n        add('details', 'open', [\n          flowContent,\n          'summary'\n        ].join(' '));\n        add('keygen', 'autofocus challenge disabled form keytype name');\n      }\n      if (type !== 'html5-strict') {\n        addAttrs('script', 'language xml:space');\n        addAttrs('style', 'xml:space');\n        addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace');\n        addAttrs('embed', 'align name hspace vspace');\n        addAttrs('param', 'valuetype type');\n        addAttrs('a', 'charset name rev shape coords');\n        addAttrs('br', 'clear');\n        addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace');\n        addAttrs('img', 'name longdesc align border hspace vspace');\n        addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align');\n        addAttrs('font basefont', 'size color face');\n        addAttrs('input', 'usemap align');\n        addAttrs('select');\n        addAttrs('textarea');\n        addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align');\n        addAttrs('ul', 'type compact');\n        addAttrs('li', 'type');\n        addAttrs('ol dl menu dir', 'compact');\n        addAttrs('pre', 'width xml:space');\n        addAttrs('hr', 'align noshade size width');\n        addAttrs('isindex', 'prompt');\n        addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor');\n        addAttrs('col', 'width align char charoff valign');\n        addAttrs('colgroup', 'width align char charoff valign');\n        addAttrs('thead', 'align char charoff valign');\n        addAttrs('tr', 'align char charoff valign bgcolor');\n        addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height');\n        addAttrs('form', 'accept');\n        addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height');\n        addAttrs('tfoot', 'align char charoff valign');\n        addAttrs('tbody', 'align char charoff valign');\n        addAttrs('area', 'nohref');\n        addAttrs('body', 'background bgcolor text link vlink alink');\n      }\n      if (type !== 'html4') {\n        addAttrs('input button select textarea', 'autofocus');\n        addAttrs('input textarea', 'placeholder');\n        addAttrs('a', 'download');\n        addAttrs('link script img', 'crossorigin');\n        addAttrs('img', 'loading');\n        addAttrs('iframe', 'sandbox seamless allow allowfullscreen loading');\n      }\n      if (type !== 'html4') {\n        each$e([\n          schema.video,\n          schema.audio\n        ], item => {\n          delete item.children.audio;\n          delete item.children.video;\n        });\n      }\n      each$b(split$1('a form meter progress dfn'), name => {\n        if (schema[name]) {\n          delete schema[name].children[name];\n        }\n      });\n      delete schema.caption.children.table;\n      delete schema.script;\n      lookupCache[type] = schema;\n      return schema;\n    };\n    const compileElementMap = (value, mode) => {\n      if (value) {\n        const styles = {};\n        if (isString(value)) {\n          value = { '*': value };\n        }\n        each$b(value, (value, key) => {\n          styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$2(value, /[, ]/);\n        });\n        return styles;\n      } else {\n        return undefined;\n      }\n    };\n    const Schema = (settings = {}) => {\n      var _a;\n      const elements = {};\n      const children = {};\n      let patternElements = [];\n      const customElementsMap = {};\n      const specialElements = {};\n      const createLookupTable = (option, defaultValue, extendWith) => {\n        const value = settings[option];\n        if (!value) {\n          let newValue = mapCache[option];\n          if (!newValue) {\n            newValue = createMap(defaultValue, extendWith);\n            mapCache[option] = newValue;\n          }\n          return newValue;\n        } else {\n          return makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/));\n        }\n      };\n      const schemaType = (_a = settings.schema) !== null && _a !== void 0 ? _a : 'html5';\n      const schemaItems = compileSchema(schemaType);\n      if (settings.verify_html === false) {\n        settings.valid_elements = '*[*]';\n      }\n      const validStyles = compileElementMap(settings.valid_styles);\n      const invalidStyles = compileElementMap(settings.invalid_styles, 'map');\n      const validClasses = compileElementMap(settings.valid_classes, 'map');\n      const whitespaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code');\n      const selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');\n      const voidElementsMap = createLookupTable('void_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track');\n      const boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls allowfullscreen');\n      const nonEmptyOrMoveCaretBeforeOnEnter = 'td th iframe video audio object script code';\n      const nonEmptyElementsMap = createLookupTable('non_empty_elements', nonEmptyOrMoveCaretBeforeOnEnter + ' pre', voidElementsMap);\n      const moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', nonEmptyOrMoveCaretBeforeOnEnter + ' table', voidElementsMap);\n      const textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure');\n      const blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap);\n      const textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font s strike u var cite ' + 'dfn code mark q sup sub samp');\n      const transparentElementsMap = createLookupTable('transparent_elements', 'a ins del canvas map');\n      each$b('script noscript iframe noframes noembed title style textarea xmp plaintext'.split(' '), name => {\n        specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi');\n      });\n      const patternToRegExp = str => new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');\n      const addValidElements = validElements => {\n        const elementRuleRegExp = /^([#+\\-])?([^\\[!\\/]+)(?:\\/([^\\[!]+))?(?:(!?)\\[([^\\]]+)])?$/;\n        const attrRuleRegExp = /^([!\\-])?(\\w+[\\\\:]:\\w+|[^=~<]+)?(?:([=~<])(.*))?$/;\n        const hasPatternsRegExp = /[*?+]/;\n        if (validElements) {\n          const validElementsArr = split$1(validElements, ',');\n          let globalAttributes;\n          let globalAttributesOrder;\n          if (elements['@']) {\n            globalAttributes = elements['@'].attributes;\n            globalAttributesOrder = elements['@'].attributesOrder;\n          }\n          for (let ei = 0, el = validElementsArr.length; ei < el; ei++) {\n            let matches = elementRuleRegExp.exec(validElementsArr[ei]);\n            if (matches) {\n              const prefix = matches[1];\n              const elementName = matches[2];\n              const outputName = matches[3];\n              const attrData = matches[5];\n              const attributes = {};\n              const attributesOrder = [];\n              const element = {\n                attributes,\n                attributesOrder\n              };\n              if (prefix === '#') {\n                element.paddEmpty = true;\n              }\n              if (prefix === '-') {\n                element.removeEmpty = true;\n              }\n              if (matches[4] === '!') {\n                element.removeEmptyAttrs = true;\n              }\n              if (globalAttributes) {\n                each$d(globalAttributes, (value, key) => {\n                  attributes[key] = value;\n                });\n                if (globalAttributesOrder) {\n                  attributesOrder.push(...globalAttributesOrder);\n                }\n              }\n              if (attrData) {\n                const attrDatas = split$1(attrData, '|');\n                for (let ai = 0, al = attrDatas.length; ai < al; ai++) {\n                  matches = attrRuleRegExp.exec(attrDatas[ai]);\n                  if (matches) {\n                    const attr = {};\n                    const attrType = matches[1];\n                    const attrName = matches[2].replace(/[\\\\:]:/g, ':');\n                    const attrPrefix = matches[3];\n                    const value = matches[4];\n                    if (attrType === '!') {\n                      element.attributesRequired = element.attributesRequired || [];\n                      element.attributesRequired.push(attrName);\n                      attr.required = true;\n                    }\n                    if (attrType === '-') {\n                      delete attributes[attrName];\n                      attributesOrder.splice(inArray(attributesOrder, attrName), 1);\n                      continue;\n                    }\n                    if (attrPrefix) {\n                      if (attrPrefix === '=') {\n                        element.attributesDefault = element.attributesDefault || [];\n                        element.attributesDefault.push({\n                          name: attrName,\n                          value\n                        });\n                        attr.defaultValue = value;\n                      }\n                      if (attrPrefix === '~') {\n                        element.attributesForced = element.attributesForced || [];\n                        element.attributesForced.push({\n                          name: attrName,\n                          value\n                        });\n                        attr.forcedValue = value;\n                      }\n                      if (attrPrefix === '<') {\n                        attr.validValues = makeMap$2(value, '?');\n                      }\n                    }\n                    if (hasPatternsRegExp.test(attrName)) {\n                      const attrPattern = attr;\n                      element.attributePatterns = element.attributePatterns || [];\n                      attrPattern.pattern = patternToRegExp(attrName);\n                      element.attributePatterns.push(attrPattern);\n                    } else {\n                      if (!attributes[attrName]) {\n                        attributesOrder.push(attrName);\n                      }\n                      attributes[attrName] = attr;\n                    }\n                  }\n                }\n              }\n              if (!globalAttributes && elementName === '@') {\n                globalAttributes = attributes;\n                globalAttributesOrder = attributesOrder;\n              }\n              if (outputName) {\n                element.outputName = elementName;\n                elements[outputName] = element;\n              }\n              if (hasPatternsRegExp.test(elementName)) {\n                const patternElement = element;\n                patternElement.pattern = patternToRegExp(elementName);\n                patternElements.push(patternElement);\n              } else {\n                elements[elementName] = element;\n              }\n            }\n          }\n        }\n      };\n      const setValidElements = validElements => {\n        patternElements = [];\n        each$e(keys(elements), name => {\n          delete elements[name];\n        });\n        addValidElements(validElements);\n        each$b(schemaItems, (element, name) => {\n          children[name] = element.children;\n        });\n      };\n      const addCustomElements = customElements => {\n        const customElementRegExp = /^(~)?(.+)$/;\n        if (customElements) {\n          delete mapCache.text_block_elements;\n          delete mapCache.block_elements;\n          each$b(split$1(customElements, ','), rule => {\n            const matches = customElementRegExp.exec(rule);\n            if (matches) {\n              const inline = matches[1] === '~';\n              const cloneName = inline ? 'span' : 'div';\n              const name = matches[2];\n              children[name] = children[cloneName];\n              customElementsMap[name] = cloneName;\n              nonEmptyElementsMap[name.toUpperCase()] = {};\n              nonEmptyElementsMap[name] = {};\n              if (!inline) {\n                blockElementsMap[name.toUpperCase()] = {};\n                blockElementsMap[name] = {};\n              }\n              if (!elements[name]) {\n                let customRule = elements[cloneName];\n                customRule = extend$2({}, customRule);\n                delete customRule.removeEmptyAttrs;\n                delete customRule.removeEmpty;\n                elements[name] = customRule;\n              }\n              each$b(children, (element, elmName) => {\n                if (element[cloneName]) {\n                  children[elmName] = element = extend$2({}, children[elmName]);\n                  element[name] = element[cloneName];\n                }\n              });\n            }\n          });\n        }\n      };\n      const addValidChildren = validChildren => {\n        const childRuleRegExp = /^([+\\-]?)([A-Za-z0-9_\\-.\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u203f-\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]+)\\[([^\\]]+)]$/;\n        delete lookupCache[schemaType];\n        if (validChildren) {\n          each$b(split$1(validChildren, ','), rule => {\n            const matches = childRuleRegExp.exec(rule);\n            if (matches) {\n              const prefix = matches[1];\n              let parent;\n              if (prefix) {\n                parent = children[matches[2]];\n              } else {\n                parent = children[matches[2]] = { '#comment': {} };\n              }\n              parent = children[matches[2]];\n              each$b(split$1(matches[3], '|'), child => {\n                if (prefix === '-') {\n                  delete parent[child];\n                } else {\n                  parent[child] = {};\n                }\n              });\n            }\n          });\n        }\n      };\n      const getElementRule = name => {\n        const element = elements[name];\n        if (element) {\n          return element;\n        }\n        let i = patternElements.length;\n        while (i--) {\n          const patternElement = patternElements[i];\n          if (patternElement.pattern.test(name)) {\n            return patternElement;\n          }\n        }\n        return undefined;\n      };\n      if (!settings.valid_elements) {\n        each$b(schemaItems, (element, name) => {\n          elements[name] = {\n            attributes: element.attributes,\n            attributesOrder: element.attributesOrder\n          };\n          children[name] = element.children;\n        });\n        each$b(split$1('strong/b em/i'), item => {\n          const items = split$1(item, '/');\n          elements[items[1]].outputName = items[0];\n        });\n        each$b(textInlineElementsMap, (_val, name) => {\n          if (elements[name]) {\n            if (settings.padd_empty_block_inline_children) {\n              elements[name].paddInEmptyBlock = true;\n            }\n            elements[name].removeEmpty = true;\n          }\n        });\n        each$b(split$1('ol ul blockquote a table tbody'), name => {\n          if (elements[name]) {\n            elements[name].removeEmpty = true;\n          }\n        });\n        each$b(split$1('p h1 h2 h3 h4 h5 h6 th td pre div address caption li'), name => {\n          elements[name].paddEmpty = true;\n        });\n        each$b(split$1('span'), name => {\n          elements[name].removeEmptyAttrs = true;\n        });\n      } else {\n        setValidElements(settings.valid_elements);\n      }\n      addCustomElements(settings.custom_elements);\n      addValidChildren(settings.valid_children);\n      addValidElements(settings.extended_valid_elements);\n      addValidChildren('+ol[ul|ol],+ul[ul|ol]');\n      each$b({\n        dd: 'dl',\n        dt: 'dl',\n        li: 'ul ol',\n        td: 'tr',\n        th: 'tr',\n        tr: 'tbody thead tfoot',\n        tbody: 'table',\n        thead: 'table',\n        tfoot: 'table',\n        legend: 'fieldset',\n        area: 'map',\n        param: 'video audio object'\n      }, (parents, item) => {\n        if (elements[item]) {\n          elements[item].parentsRequired = split$1(parents);\n        }\n      });\n      if (settings.invalid_elements) {\n        each$b(explode$2(settings.invalid_elements), item => {\n          if (elements[item]) {\n            delete elements[item];\n          }\n        });\n      }\n      if (!getElementRule('span')) {\n        addValidElements('span[!data-mce-type|*]');\n      }\n      const getValidStyles = constant(validStyles);\n      const getInvalidStyles = constant(invalidStyles);\n      const getValidClasses = constant(validClasses);\n      const getBoolAttrs = constant(boolAttrMap);\n      const getBlockElements = constant(blockElementsMap);\n      const getTextBlockElements = constant(textBlockElementsMap);\n      const getTextInlineElements = constant(textInlineElementsMap);\n      const getVoidElements = constant(Object.seal(voidElementsMap));\n      const getSelfClosingElements = constant(selfClosingElementsMap);\n      const getNonEmptyElements = constant(nonEmptyElementsMap);\n      const getMoveCaretBeforeOnEnterElements = constant(moveCaretBeforeOnEnterElementsMap);\n      const getWhitespaceElements = constant(whitespaceElementsMap);\n      const getTransparentElements = constant(transparentElementsMap);\n      const getSpecialElements = constant(Object.seal(specialElements));\n      const isValidChild = (name, child) => {\n        const parent = children[name.toLowerCase()];\n        return !!(parent && parent[child.toLowerCase()]);\n      };\n      const isValid = (name, attr) => {\n        const rule = getElementRule(name);\n        if (rule) {\n          if (attr) {\n            if (rule.attributes[attr]) {\n              return true;\n            }\n            const attrPatterns = rule.attributePatterns;\n            if (attrPatterns) {\n              let i = attrPatterns.length;\n              while (i--) {\n                if (attrPatterns[i].pattern.test(attr)) {\n                  return true;\n                }\n              }\n            }\n          } else {\n            return true;\n          }\n        }\n        return false;\n      };\n      const getCustomElements = constant(customElementsMap);\n      return {\n        type: schemaType,\n        children,\n        elements,\n        getValidStyles,\n        getValidClasses,\n        getBlockElements,\n        getInvalidStyles,\n        getVoidElements,\n        getTextBlockElements,\n        getTextInlineElements,\n        getBoolAttrs,\n        getElementRule,\n        getSelfClosingElements,\n        getNonEmptyElements,\n        getMoveCaretBeforeOnEnterElements,\n        getWhitespaceElements,\n        getTransparentElements,\n        getSpecialElements,\n        isValidChild,\n        isValid,\n        getCustomElements,\n        addValidElements,\n        setValidElements,\n        addCustomElements,\n        addValidChildren\n      };\n    };\n\n    const Styles = (settings = {}, schema) => {\n      const urlOrStrRegExp = /(?:url(?:(?:\\(\\s*\\\"([^\\\"]+)\\\"\\s*\\))|(?:\\(\\s*\\'([^\\']+)\\'\\s*\\))|(?:\\(\\s*([^)\\s]+)\\s*\\))))|(?:\\'([^\\']+)\\')|(?:\\\"([^\\\"]+)\\\")/gi;\n      const styleRegExp = /\\s*([^:]+):\\s*([^;]+);?/g;\n      const trimRightRegExp = /\\s+$/;\n      const encodingLookup = {};\n      let validStyles;\n      let invalidStyles;\n      const invisibleChar = zeroWidth;\n      if (schema) {\n        validStyles = schema.getValidStyles();\n        invalidStyles = schema.getInvalidStyles();\n      }\n      const encodingItems = (`\\\\\" \\\\' \\\\; \\\\: ; : ` + invisibleChar).split(' ');\n      for (let i = 0; i < encodingItems.length; i++) {\n        encodingLookup[encodingItems[i]] = invisibleChar + i;\n        encodingLookup[invisibleChar + i] = encodingItems[i];\n      }\n      const self = {\n        parse: css => {\n          const styles = {};\n          let isEncoded = false;\n          const urlConverter = settings.url_converter;\n          const urlConverterScope = settings.url_converter_scope || self;\n          const compress = (prefix, suffix, noJoin) => {\n            const top = styles[prefix + '-top' + suffix];\n            if (!top) {\n              return;\n            }\n            const right = styles[prefix + '-right' + suffix];\n            if (!right) {\n              return;\n            }\n            const bottom = styles[prefix + '-bottom' + suffix];\n            if (!bottom) {\n              return;\n            }\n            const left = styles[prefix + '-left' + suffix];\n            if (!left) {\n              return;\n            }\n            const box = [\n              top,\n              right,\n              bottom,\n              left\n            ];\n            let i = box.length - 1;\n            while (i--) {\n              if (box[i] !== box[i + 1]) {\n                break;\n              }\n            }\n            if (i > -1 && noJoin) {\n              return;\n            }\n            styles[prefix + suffix] = i === -1 ? box[0] : box.join(' ');\n            delete styles[prefix + '-top' + suffix];\n            delete styles[prefix + '-right' + suffix];\n            delete styles[prefix + '-bottom' + suffix];\n            delete styles[prefix + '-left' + suffix];\n          };\n          const canCompress = key => {\n            const value = styles[key];\n            if (!value) {\n              return;\n            }\n            const values = value.split(' ');\n            let i = values.length;\n            while (i--) {\n              if (values[i] !== values[0]) {\n                return false;\n              }\n            }\n            styles[key] = values[0];\n            return true;\n          };\n          const compress2 = (target, a, b, c) => {\n            if (!canCompress(a)) {\n              return;\n            }\n            if (!canCompress(b)) {\n              return;\n            }\n            if (!canCompress(c)) {\n              return;\n            }\n            styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];\n            delete styles[a];\n            delete styles[b];\n            delete styles[c];\n          };\n          const encode = str => {\n            isEncoded = true;\n            return encodingLookup[str];\n          };\n          const decode = (str, keepSlashes) => {\n            if (isEncoded) {\n              str = str.replace(/\\uFEFF[0-9]/g, str => {\n                return encodingLookup[str];\n              });\n            }\n            if (!keepSlashes) {\n              str = str.replace(/\\\\([\\'\\\";:])/g, '$1');\n            }\n            return str;\n          };\n          const decodeSingleHexSequence = escSeq => {\n            return String.fromCharCode(parseInt(escSeq.slice(1), 16));\n          };\n          const decodeHexSequences = value => {\n            return value.replace(/\\\\[0-9a-f]+/gi, decodeSingleHexSequence);\n          };\n          const processUrl = (match, url, url2, url3, str, str2) => {\n            str = str || str2;\n            if (str) {\n              str = decode(str);\n              return `'` + str.replace(/\\'/g, `\\\\'`) + `'`;\n            }\n            url = decode(url || url2 || url3 || '');\n            if (!settings.allow_script_urls) {\n              const scriptUrl = url.replace(/[\\s\\r\\n]+/g, '');\n              if (/(java|vb)script:/i.test(scriptUrl)) {\n                return '';\n              }\n              if (!settings.allow_svg_data_urls && /^data:image\\/svg/i.test(scriptUrl)) {\n                return '';\n              }\n            }\n            if (urlConverter) {\n              url = urlConverter.call(urlConverterScope, url, 'style');\n            }\n            return `url('` + url.replace(/\\'/g, `\\\\'`) + `')`;\n          };\n          if (css) {\n            css = css.replace(/[\\u0000-\\u001F]/g, '');\n            css = css.replace(/\\\\[\\\"\\';:\\uFEFF]/g, encode).replace(/\\\"[^\\\"]+\\\"|\\'[^\\']+\\'/g, str => {\n              return str.replace(/[;:]/g, encode);\n            });\n            let matches;\n            while (matches = styleRegExp.exec(css)) {\n              styleRegExp.lastIndex = matches.index + matches[0].length;\n              let name = matches[1].replace(trimRightRegExp, '').toLowerCase();\n              let value = matches[2].replace(trimRightRegExp, '');\n              if (name && value) {\n                name = decodeHexSequences(name);\n                value = decodeHexSequences(value);\n                if (name.indexOf(invisibleChar) !== -1 || name.indexOf('\"') !== -1) {\n                  continue;\n                }\n                if (!settings.allow_script_urls && (name === 'behavior' || /expression\\s*\\(|\\/\\*|\\*\\//.test(value))) {\n                  continue;\n                }\n                if (name === 'font-weight' && value === '700') {\n                  value = 'bold';\n                } else if (name === 'color' || name === 'background-color') {\n                  value = value.toLowerCase();\n                }\n                value = value.replace(urlOrStrRegExp, processUrl);\n                styles[name] = isEncoded ? decode(value, true) : value;\n              }\n            }\n            compress('border', '', true);\n            compress('border', '-width');\n            compress('border', '-color');\n            compress('border', '-style');\n            compress('padding', '');\n            compress('margin', '');\n            compress2('border', 'border-width', 'border-style', 'border-color');\n            if (styles.border === 'medium none') {\n              delete styles.border;\n            }\n            if (styles['border-image'] === 'none') {\n              delete styles['border-image'];\n            }\n          }\n          return styles;\n        },\n        serialize: (styles, elementName) => {\n          let css = '';\n          const serializeStyles = (elemName, validStyleList) => {\n            const styleList = validStyleList[elemName];\n            if (styleList) {\n              for (let i = 0, l = styleList.length; i < l; i++) {\n                const name = styleList[i];\n                const value = styles[name];\n                if (value) {\n                  css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n                }\n              }\n            }\n          };\n          const isValid = (name, elemName) => {\n            if (!invalidStyles || !elemName) {\n              return true;\n            }\n            let styleMap = invalidStyles['*'];\n            if (styleMap && styleMap[name]) {\n              return false;\n            }\n            styleMap = invalidStyles[elemName];\n            return !(styleMap && styleMap[name]);\n          };\n          if (elementName && validStyles) {\n            serializeStyles('*', validStyles);\n            serializeStyles(elementName, validStyles);\n          } else {\n            each$d(styles, (value, name) => {\n              if (value && isValid(name, elementName)) {\n                css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n              }\n            });\n          }\n          return css;\n        }\n      };\n      return self;\n    };\n\n    const deprecated = {\n      keyLocation: true,\n      layerX: true,\n      layerY: true,\n      returnValue: true,\n      webkitMovementX: true,\n      webkitMovementY: true,\n      keyIdentifier: true,\n      mozPressure: true\n    };\n    const isNativeEvent = event => event instanceof Event || isFunction(event.initEvent);\n    const hasIsDefaultPrevented = event => event.isDefaultPrevented === always || event.isDefaultPrevented === never;\n    const needsNormalizing = event => isNullable(event.preventDefault) || isNativeEvent(event);\n    const clone$3 = (originalEvent, data) => {\n      const event = data !== null && data !== void 0 ? data : {};\n      for (const name in originalEvent) {\n        if (!has$2(deprecated, name)) {\n          event[name] = originalEvent[name];\n        }\n      }\n      if (isNonNullable(originalEvent.composedPath)) {\n        event.composedPath = () => originalEvent.composedPath();\n      }\n      return event;\n    };\n    const normalize$3 = (type, originalEvent, fallbackTarget, data) => {\n      var _a;\n      const event = clone$3(originalEvent, data);\n      event.type = type;\n      if (isNullable(event.target)) {\n        event.target = (_a = event.srcElement) !== null && _a !== void 0 ? _a : fallbackTarget;\n      }\n      if (needsNormalizing(originalEvent)) {\n        event.preventDefault = () => {\n          event.defaultPrevented = true;\n          event.isDefaultPrevented = always;\n          if (isFunction(originalEvent.preventDefault)) {\n            originalEvent.preventDefault();\n          }\n        };\n        event.stopPropagation = () => {\n          event.cancelBubble = true;\n          event.isPropagationStopped = always;\n          if (isFunction(originalEvent.stopPropagation)) {\n            originalEvent.stopPropagation();\n          }\n        };\n        event.stopImmediatePropagation = () => {\n          event.isImmediatePropagationStopped = always;\n          event.stopPropagation();\n        };\n        if (!hasIsDefaultPrevented(event)) {\n          event.isDefaultPrevented = event.defaultPrevented === true ? always : never;\n          event.isPropagationStopped = event.cancelBubble === true ? always : never;\n          event.isImmediatePropagationStopped = never;\n        }\n      }\n      return event;\n    };\n\n    const eventExpandoPrefix = 'mce-data-';\n    const mouseEventRe = /^(?:mouse|contextmenu)|click/;\n    const addEvent = (target, name, callback, capture) => {\n      target.addEventListener(name, callback, capture || false);\n    };\n    const removeEvent = (target, name, callback, capture) => {\n      target.removeEventListener(name, callback, capture || false);\n    };\n    const isMouseEvent = event => isNonNullable(event) && mouseEventRe.test(event.type);\n    const fix = (originalEvent, data) => {\n      const event = normalize$3(originalEvent.type, originalEvent, document, data);\n      if (isMouseEvent(originalEvent) && isUndefined(originalEvent.pageX) && !isUndefined(originalEvent.clientX)) {\n        const eventDoc = event.target.ownerDocument || document;\n        const doc = eventDoc.documentElement;\n        const body = eventDoc.body;\n        const mouseEvent = event;\n        mouseEvent.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n        mouseEvent.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n      }\n      return event;\n    };\n    const bindOnReady = (win, callback, eventUtils) => {\n      const doc = win.document, event = { type: 'ready' };\n      if (eventUtils.domLoaded) {\n        callback(event);\n        return;\n      }\n      const isDocReady = () => {\n        return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body;\n      };\n      const readyHandler = () => {\n        removeEvent(win, 'DOMContentLoaded', readyHandler);\n        removeEvent(win, 'load', readyHandler);\n        if (!eventUtils.domLoaded) {\n          eventUtils.domLoaded = true;\n          callback(event);\n        }\n        win = null;\n      };\n      if (isDocReady()) {\n        readyHandler();\n      } else {\n        addEvent(win, 'DOMContentLoaded', readyHandler);\n      }\n      if (!eventUtils.domLoaded) {\n        addEvent(win, 'load', readyHandler);\n      }\n    };\n    class EventUtils {\n      constructor() {\n        this.domLoaded = false;\n        this.events = {};\n        this.count = 1;\n        this.expando = eventExpandoPrefix + (+new Date()).toString(32);\n        this.hasFocusIn = 'onfocusin' in document.documentElement;\n        this.count = 1;\n      }\n      bind(target, names, callback, scope) {\n        const self = this;\n        let callbackList;\n        const win = window;\n        const defaultNativeHandler = evt => {\n          self.executeHandlers(fix(evt || win.event), id);\n        };\n        if (!target || isText$a(target) || isComment(target)) {\n          return callback;\n        }\n        let id;\n        if (!target[self.expando]) {\n          id = self.count++;\n          target[self.expando] = id;\n          self.events[id] = {};\n        } else {\n          id = target[self.expando];\n        }\n        scope = scope || target;\n        const namesList = names.split(' ');\n        let i = namesList.length;\n        while (i--) {\n          let name = namesList[i];\n          let nativeHandler = defaultNativeHandler;\n          let capture = false;\n          let fakeName = false;\n          if (name === 'DOMContentLoaded') {\n            name = 'ready';\n          }\n          if (self.domLoaded && name === 'ready' && target.readyState === 'complete') {\n            callback.call(scope, fix({ type: name }));\n            continue;\n          }\n          if (!self.hasFocusIn && (name === 'focusin' || name === 'focusout')) {\n            capture = true;\n            fakeName = name === 'focusin' ? 'focus' : 'blur';\n            nativeHandler = evt => {\n              const event = fix(evt || win.event);\n              event.type = event.type === 'focus' ? 'focusin' : 'focusout';\n              self.executeHandlers(event, id);\n            };\n          }\n          callbackList = self.events[id][name];\n          if (!callbackList) {\n            self.events[id][name] = callbackList = [{\n                func: callback,\n                scope\n              }];\n            callbackList.fakeName = fakeName;\n            callbackList.capture = capture;\n            callbackList.nativeHandler = nativeHandler;\n            if (name === 'ready') {\n              bindOnReady(target, nativeHandler, self);\n            } else {\n              addEvent(target, fakeName || name, nativeHandler, capture);\n            }\n          } else {\n            if (name === 'ready' && self.domLoaded) {\n              callback(fix({ type: name }));\n            } else {\n              callbackList.push({\n                func: callback,\n                scope\n              });\n            }\n          }\n        }\n        target = callbackList = null;\n        return callback;\n      }\n      unbind(target, names, callback) {\n        if (!target || isText$a(target) || isComment(target)) {\n          return this;\n        }\n        const id = target[this.expando];\n        if (id) {\n          let eventMap = this.events[id];\n          if (names) {\n            const namesList = names.split(' ');\n            let i = namesList.length;\n            while (i--) {\n              const name = namesList[i];\n              const callbackList = eventMap[name];\n              if (callbackList) {\n                if (callback) {\n                  let ci = callbackList.length;\n                  while (ci--) {\n                    if (callbackList[ci].func === callback) {\n                      const nativeHandler = callbackList.nativeHandler;\n                      const fakeName = callbackList.fakeName, capture = callbackList.capture;\n                      const newCallbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1));\n                      newCallbackList.nativeHandler = nativeHandler;\n                      newCallbackList.fakeName = fakeName;\n                      newCallbackList.capture = capture;\n                      eventMap[name] = newCallbackList;\n                    }\n                  }\n                }\n                if (!callback || callbackList.length === 0) {\n                  delete eventMap[name];\n                  removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n                }\n              }\n            }\n          } else {\n            each$d(eventMap, (callbackList, name) => {\n              removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n            });\n            eventMap = {};\n          }\n          for (const name in eventMap) {\n            if (has$2(eventMap, name)) {\n              return this;\n            }\n          }\n          delete this.events[id];\n          try {\n            delete target[this.expando];\n          } catch (ex) {\n            target[this.expando] = null;\n          }\n        }\n        return this;\n      }\n      fire(target, name, args) {\n        return this.dispatch(target, name, args);\n      }\n      dispatch(target, name, args) {\n        if (!target || isText$a(target) || isComment(target)) {\n          return this;\n        }\n        const event = fix({\n          type: name,\n          target\n        }, args);\n        do {\n          const id = target[this.expando];\n          if (id) {\n            this.executeHandlers(event, id);\n          }\n          target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;\n        } while (target && !event.isPropagationStopped());\n        return this;\n      }\n      clean(target) {\n        if (!target || isText$a(target) || isComment(target)) {\n          return this;\n        }\n        if (target[this.expando]) {\n          this.unbind(target);\n        }\n        if (!target.getElementsByTagName) {\n          target = target.document;\n        }\n        if (target && target.getElementsByTagName) {\n          this.unbind(target);\n          const children = target.getElementsByTagName('*');\n          let i = children.length;\n          while (i--) {\n            target = children[i];\n            if (target[this.expando]) {\n              this.unbind(target);\n            }\n          }\n        }\n        return this;\n      }\n      destroy() {\n        this.events = {};\n      }\n      cancel(e) {\n        if (e) {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n        }\n        return false;\n      }\n      executeHandlers(evt, id) {\n        const container = this.events[id];\n        const callbackList = container && container[evt.type];\n        if (callbackList) {\n          for (let i = 0, l = callbackList.length; i < l; i++) {\n            const callback = callbackList[i];\n            if (callback && callback.func.call(callback.scope, evt) === false) {\n              evt.preventDefault();\n            }\n            if (evt.isImmediatePropagationStopped()) {\n              return;\n            }\n          }\n        }\n      }\n    }\n    EventUtils.Event = new EventUtils();\n\n    const each$a = Tools.each;\n    const grep = Tools.grep;\n    const internalStyleName = 'data-mce-style';\n    const numericalCssMap = Tools.makeMap('fill-opacity font-weight line-height opacity orphans widows z-index zoom', ' ');\n    const legacySetAttribute = (elm, name, value) => {\n      if (isNullable(value) || value === '') {\n        remove$b(elm, name);\n      } else {\n        set$2(elm, name, value);\n      }\n    };\n    const camelCaseToHyphens = name => name.replace(/[A-Z]/g, v => '-' + v.toLowerCase());\n    const findNodeIndex = (node, normalized) => {\n      let idx = 0;\n      if (node) {\n        for (let lastNodeType = node.nodeType, tempNode = node.previousSibling; tempNode; tempNode = tempNode.previousSibling) {\n          const nodeType = tempNode.nodeType;\n          if (normalized && isText$a(tempNode)) {\n            if (nodeType === lastNodeType || !tempNode.data.length) {\n              continue;\n            }\n          }\n          idx++;\n          lastNodeType = nodeType;\n        }\n      }\n      return idx;\n    };\n    const updateInternalStyleAttr = (styles, elm) => {\n      const rawValue = get$9(elm, 'style');\n      const value = styles.serialize(styles.parse(rawValue), name(elm));\n      legacySetAttribute(elm, internalStyleName, value);\n    };\n    const convertStyleToString = (cssValue, cssName) => {\n      if (isNumber(cssValue)) {\n        return has$2(numericalCssMap, cssName) ? cssValue + '' : cssValue + 'px';\n      } else {\n        return cssValue;\n      }\n    };\n    const applyStyle$1 = ($elm, cssName, cssValue) => {\n      const normalizedName = camelCaseToHyphens(cssName);\n      if (isNullable(cssValue) || cssValue === '') {\n        remove$7($elm, normalizedName);\n      } else {\n        set$1($elm, normalizedName, convertStyleToString(cssValue, normalizedName));\n      }\n    };\n    const setupAttrHooks = (styles, settings, getContext) => {\n      const keepValues = settings.keep_values;\n      const keepUrlHook = {\n        set: (elm, value, name) => {\n          const sugarElm = SugarElement.fromDom(elm);\n          if (isFunction(settings.url_converter) && isNonNullable(value)) {\n            value = settings.url_converter.call(settings.url_converter_scope || getContext(), String(value), name, elm);\n          }\n          const internalName = 'data-mce-' + name;\n          legacySetAttribute(sugarElm, internalName, value);\n          legacySetAttribute(sugarElm, name, value);\n        },\n        get: (elm, name) => {\n          const sugarElm = SugarElement.fromDom(elm);\n          return get$9(sugarElm, 'data-mce-' + name) || get$9(sugarElm, name);\n        }\n      };\n      const attrHooks = {\n        style: {\n          set: (elm, value) => {\n            const sugarElm = SugarElement.fromDom(elm);\n            if (keepValues) {\n              legacySetAttribute(sugarElm, internalStyleName, value);\n            }\n            remove$b(sugarElm, 'style');\n            if (isString(value)) {\n              setAll(sugarElm, styles.parse(value));\n            }\n          },\n          get: elm => {\n            const sugarElm = SugarElement.fromDom(elm);\n            const value = get$9(sugarElm, internalStyleName) || get$9(sugarElm, 'style');\n            return styles.serialize(styles.parse(value), name(sugarElm));\n          }\n        }\n      };\n      if (keepValues) {\n        attrHooks.href = attrHooks.src = keepUrlHook;\n      }\n      return attrHooks;\n    };\n    const DOMUtils = (doc, settings = {}) => {\n      const addedStyles = {};\n      const win = window;\n      const files = {};\n      let counter = 0;\n      const stdMode = true;\n      const boxModel = true;\n      const styleSheetLoader = instance.forElement(SugarElement.fromDom(doc), {\n        contentCssCors: settings.contentCssCors,\n        referrerPolicy: settings.referrerPolicy\n      });\n      const boundEvents = [];\n      const schema = settings.schema ? settings.schema : Schema({});\n      const styles = Styles({\n        url_converter: settings.url_converter,\n        url_converter_scope: settings.url_converter_scope\n      }, settings.schema);\n      const events = settings.ownEvents ? new EventUtils() : EventUtils.Event;\n      const blockElementsMap = schema.getBlockElements();\n      const isBlock = node => {\n        if (isString(node)) {\n          return has$2(blockElementsMap, node);\n        } else {\n          return isElement$6(node) && (has$2(blockElementsMap, node.nodeName) || isTransparentBlock(schema, node));\n        }\n      };\n      const get = elm => elm && doc && isString(elm) ? doc.getElementById(elm) : elm;\n      const _get = elm => {\n        const value = get(elm);\n        return isNonNullable(value) ? SugarElement.fromDom(value) : null;\n      };\n      const getAttrib = (elm, name, defaultVal = '') => {\n        let value;\n        const $elm = _get(elm);\n        if (isNonNullable($elm) && isElement$7($elm)) {\n          const hook = attrHooks[name];\n          if (hook && hook.get) {\n            value = hook.get($elm.dom, name);\n          } else {\n            value = get$9($elm, name);\n          }\n        }\n        return isNonNullable(value) ? value : defaultVal;\n      };\n      const getAttribs = elm => {\n        const node = get(elm);\n        return isNullable(node) ? [] : node.attributes;\n      };\n      const setAttrib = (elm, name, value) => {\n        run(elm, e => {\n          if (isElement$6(e)) {\n            const $elm = SugarElement.fromDom(e);\n            const val = value === '' ? null : value;\n            const originalValue = get$9($elm, name);\n            const hook = attrHooks[name];\n            if (hook && hook.set) {\n              hook.set($elm.dom, val, name);\n            } else {\n              legacySetAttribute($elm, name, val);\n            }\n            if (originalValue !== val && settings.onSetAttrib) {\n              settings.onSetAttrib({\n                attrElm: $elm.dom,\n                attrName: name,\n                attrValue: val\n              });\n            }\n          }\n        });\n      };\n      const clone = (node, deep) => {\n        return node.cloneNode(deep);\n      };\n      const getRoot = () => settings.root_element || doc.body;\n      const getViewPort = argWin => {\n        const vp = getBounds(argWin);\n        return {\n          x: vp.x,\n          y: vp.y,\n          w: vp.width,\n          h: vp.height\n        };\n      };\n      const getPos$1 = (elm, rootElm) => getPos(doc.body, get(elm), rootElm);\n      const setStyle = (elm, name, value) => {\n        run(elm, e => {\n          const $elm = SugarElement.fromDom(e);\n          applyStyle$1($elm, name, value);\n          if (settings.update_styles) {\n            updateInternalStyleAttr(styles, $elm);\n          }\n        });\n      };\n      const setStyles = (elm, stylesArg) => {\n        run(elm, e => {\n          const $elm = SugarElement.fromDom(e);\n          each$d(stylesArg, (v, n) => {\n            applyStyle$1($elm, n, v);\n          });\n          if (settings.update_styles) {\n            updateInternalStyleAttr(styles, $elm);\n          }\n        });\n      };\n      const getStyle = (elm, name, computed) => {\n        const $elm = get(elm);\n        if (isNullable($elm) || !isElement$6($elm)) {\n          return undefined;\n        }\n        if (computed) {\n          return get$7(SugarElement.fromDom($elm), camelCaseToHyphens(name));\n        } else {\n          name = name.replace(/-(\\D)/g, (a, b) => b.toUpperCase());\n          if (name === 'float') {\n            name = 'cssFloat';\n          }\n          return $elm.style ? $elm.style[name] : undefined;\n        }\n      };\n      const getSize = elm => {\n        const $elm = get(elm);\n        if (!$elm) {\n          return {\n            w: 0,\n            h: 0\n          };\n        }\n        let w = getStyle($elm, 'width');\n        let h = getStyle($elm, 'height');\n        if (!w || w.indexOf('px') === -1) {\n          w = '0';\n        }\n        if (!h || h.indexOf('px') === -1) {\n          h = '0';\n        }\n        return {\n          w: parseInt(w, 10) || $elm.offsetWidth || $elm.clientWidth,\n          h: parseInt(h, 10) || $elm.offsetHeight || $elm.clientHeight\n        };\n      };\n      const getRect = elm => {\n        const $elm = get(elm);\n        const pos = getPos$1($elm);\n        const size = getSize($elm);\n        return {\n          x: pos.x,\n          y: pos.y,\n          w: size.w,\n          h: size.h\n        };\n      };\n      const is = (elm, selector) => {\n        if (!elm) {\n          return false;\n        }\n        const elms = isArray$1(elm) ? elm : [elm];\n        return exists(elms, e => {\n          return is$1(SugarElement.fromDom(e), selector);\n        });\n      };\n      const getParents = (elm, selector, root, collect) => {\n        const result = [];\n        let node = get(elm);\n        collect = collect === undefined;\n        const resolvedRoot = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);\n        if (isString(selector)) {\n          if (selector === '*') {\n            selector = isElement$6;\n          } else {\n            const selectorVal = selector;\n            selector = node => is(node, selectorVal);\n          }\n        }\n        while (node) {\n          if (node === resolvedRoot || isNullable(node.nodeType) || isDocument$1(node) || isDocumentFragment(node)) {\n            break;\n          }\n          if (!selector || selector(node)) {\n            if (collect) {\n              result.push(node);\n            } else {\n              return [node];\n            }\n          }\n          node = node.parentNode;\n        }\n        return collect ? result : null;\n      };\n      const getParent = (node, selector, root) => {\n        const parents = getParents(node, selector, root, false);\n        return parents && parents.length > 0 ? parents[0] : null;\n      };\n      const _findSib = (node, selector, name) => {\n        let func = selector;\n        if (node) {\n          if (isString(selector)) {\n            func = node => {\n              return is(node, selector);\n            };\n          }\n          for (let tempNode = node[name]; tempNode; tempNode = tempNode[name]) {\n            if (isFunction(func) && func(tempNode)) {\n              return tempNode;\n            }\n          }\n        }\n        return null;\n      };\n      const getNext = (node, selector) => _findSib(node, selector, 'nextSibling');\n      const getPrev = (node, selector) => _findSib(node, selector, 'previousSibling');\n      const isParentNode = node => isFunction(node.querySelectorAll);\n      const select = (selector, scope) => {\n        var _a, _b;\n        const elm = (_b = (_a = get(scope)) !== null && _a !== void 0 ? _a : settings.root_element) !== null && _b !== void 0 ? _b : doc;\n        return isParentNode(elm) ? from(elm.querySelectorAll(selector)) : [];\n      };\n      const run = function (elm, func, scope) {\n        const context = scope !== null && scope !== void 0 ? scope : this;\n        if (isArray$1(elm)) {\n          const result = [];\n          each$a(elm, (e, i) => {\n            const node = get(e);\n            if (node) {\n              result.push(func.call(context, node, i));\n            }\n          });\n          return result;\n        } else {\n          const node = get(elm);\n          return !node ? false : func.call(context, node);\n        }\n      };\n      const setAttribs = (elm, attrs) => {\n        run(elm, $elm => {\n          each$d(attrs, (value, name) => {\n            setAttrib($elm, name, value);\n          });\n        });\n      };\n      const setHTML = (elm, html) => {\n        run(elm, e => {\n          const $elm = SugarElement.fromDom(e);\n          set($elm, html);\n        });\n      };\n      const add = (parentElm, name, attrs, html, create) => run(parentElm, parentElm => {\n        const newElm = isString(name) ? doc.createElement(name) : name;\n        if (isNonNullable(attrs)) {\n          setAttribs(newElm, attrs);\n        }\n        if (html) {\n          if (!isString(html) && html.nodeType) {\n            newElm.appendChild(html);\n          } else if (isString(html)) {\n            setHTML(newElm, html);\n          }\n        }\n        return !create ? parentElm.appendChild(newElm) : newElm;\n      });\n      const create = (name, attrs, html) => add(doc.createElement(name), name, attrs, html, true);\n      const decode = Entities.decode;\n      const encode = Entities.encodeAllRaw;\n      const createHTML = (name, attrs, html = '') => {\n        let outHtml = '<' + name;\n        for (const key in attrs) {\n          if (hasNonNullableKey(attrs, key)) {\n            outHtml += ' ' + key + '=\"' + encode(attrs[key]) + '\"';\n          }\n        }\n        if (isEmpty$3(html) && has$2(schema.getVoidElements(), name)) {\n          return outHtml + ' />';\n        } else {\n          return outHtml + '>' + html + '</' + name + '>';\n        }\n      };\n      const createFragment = html => {\n        const container = doc.createElement('div');\n        const frag = doc.createDocumentFragment();\n        frag.appendChild(container);\n        if (html) {\n          container.innerHTML = html;\n        }\n        let node;\n        while (node = container.firstChild) {\n          frag.appendChild(node);\n        }\n        frag.removeChild(container);\n        return frag;\n      };\n      const remove = (node, keepChildren) => {\n        return run(node, n => {\n          const $node = SugarElement.fromDom(n);\n          if (keepChildren) {\n            each$e(children$1($node), child => {\n              if (isText$b(child) && child.dom.length === 0) {\n                remove$6(child);\n              } else {\n                before$3($node, child);\n              }\n            });\n          }\n          remove$6($node);\n          return $node.dom;\n        });\n      };\n      const removeAllAttribs = e => run(e, e => {\n        const attrs = e.attributes;\n        for (let i = attrs.length - 1; i >= 0; i--) {\n          e.removeAttributeNode(attrs.item(i));\n        }\n      });\n      const parseStyle = cssText => styles.parse(cssText);\n      const serializeStyle = (stylesArg, name) => styles.serialize(stylesArg, name);\n      const addStyle = cssText => {\n        if (self !== DOMUtils.DOM && doc === document) {\n          if (addedStyles[cssText]) {\n            return;\n          }\n          addedStyles[cssText] = true;\n        }\n        let styleElm = doc.getElementById('mceDefaultStyles');\n        if (!styleElm) {\n          styleElm = doc.createElement('style');\n          styleElm.id = 'mceDefaultStyles';\n          styleElm.type = 'text/css';\n          const head = doc.head;\n          if (head.firstChild) {\n            head.insertBefore(styleElm, head.firstChild);\n          } else {\n            head.appendChild(styleElm);\n          }\n        }\n        if (styleElm.styleSheet) {\n          styleElm.styleSheet.cssText += cssText;\n        } else {\n          styleElm.appendChild(doc.createTextNode(cssText));\n        }\n      };\n      const loadCSS = urls => {\n        if (!urls) {\n          urls = '';\n        }\n        each$e(urls.split(','), url => {\n          files[url] = true;\n          styleSheetLoader.load(url).catch(noop);\n        });\n      };\n      const toggleClass = (elm, cls, state) => {\n        run(elm, e => {\n          if (isElement$6(e)) {\n            const $elm = SugarElement.fromDom(e);\n            const classes = cls.split(' ');\n            each$e(classes, c => {\n              if (isNonNullable(state)) {\n                const fn = state ? add$2 : remove$8;\n                fn($elm, c);\n              } else {\n                toggle$1($elm, c);\n              }\n            });\n          }\n        });\n      };\n      const addClass = (elm, cls) => {\n        toggleClass(elm, cls, true);\n      };\n      const removeClass = (elm, cls) => {\n        toggleClass(elm, cls, false);\n      };\n      const hasClass = (elm, cls) => {\n        const $elm = _get(elm);\n        const classes = cls.split(' ');\n        return isNonNullable($elm) && forall(classes, c => has($elm, c));\n      };\n      const show = elm => {\n        run(elm, e => remove$7(SugarElement.fromDom(e), 'display'));\n      };\n      const hide = elm => {\n        run(elm, e => set$1(SugarElement.fromDom(e), 'display', 'none'));\n      };\n      const isHidden = elm => {\n        const $elm = _get(elm);\n        return isNonNullable($elm) && is$2(getRaw$1($elm, 'display'), 'none');\n      };\n      const uniqueId = prefix => (!prefix ? 'mce_' : prefix) + counter++;\n      const getOuterHTML = elm => {\n        const $elm = _get(elm);\n        if (isNonNullable($elm)) {\n          return isElement$6($elm.dom) ? $elm.dom.outerHTML : getOuter($elm);\n        } else {\n          return '';\n        }\n      };\n      const setOuterHTML = (elm, html) => {\n        run(elm, $elm => {\n          if (isElement$6($elm)) {\n            $elm.outerHTML = html;\n          }\n        });\n      };\n      const insertAfter = (node, reference) => {\n        const referenceNode = get(reference);\n        return run(node, node => {\n          const parent = referenceNode === null || referenceNode === void 0 ? void 0 : referenceNode.parentNode;\n          const nextSibling = referenceNode === null || referenceNode === void 0 ? void 0 : referenceNode.nextSibling;\n          if (parent) {\n            if (nextSibling) {\n              parent.insertBefore(node, nextSibling);\n            } else {\n              parent.appendChild(node);\n            }\n          }\n          return node;\n        });\n      };\n      const replace = (newElm, oldElm, keepChildren) => run(oldElm, elm => {\n        var _a;\n        const replacee = isArray$1(oldElm) ? newElm.cloneNode(true) : newElm;\n        if (keepChildren) {\n          each$a(grep(elm.childNodes), node => {\n            replacee.appendChild(node);\n          });\n        }\n        (_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(replacee, elm);\n        return elm;\n      });\n      const rename = (elm, name) => {\n        if (elm.nodeName !== name.toUpperCase()) {\n          const newElm = create(name);\n          each$a(getAttribs(elm), attrNode => {\n            setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));\n          });\n          replace(newElm, elm, true);\n          return newElm;\n        } else {\n          return elm;\n        }\n      };\n      const findCommonAncestor = (a, b) => {\n        let ps = a;\n        while (ps) {\n          let pe = b;\n          while (pe && ps !== pe) {\n            pe = pe.parentNode;\n          }\n          if (ps === pe) {\n            break;\n          }\n          ps = ps.parentNode;\n        }\n        if (!ps && a.ownerDocument) {\n          return a.ownerDocument.documentElement;\n        } else {\n          return ps;\n        }\n      };\n      const isNonEmptyElement = node => {\n        if (isElement$6(node)) {\n          const isNamedAnchor = node.nodeName.toLowerCase() === 'a' && !getAttrib(node, 'href') && getAttrib(node, 'id');\n          if (getAttrib(node, 'name') || getAttrib(node, 'data-mce-bookmark') || isNamedAnchor) {\n            return true;\n          }\n        }\n        return false;\n      };\n      const isEmpty = (node, elements) => {\n        let brCount = 0;\n        if (isNonEmptyElement(node)) {\n          return false;\n        }\n        const firstChild = node.firstChild;\n        if (firstChild) {\n          const walker = new DomTreeWalker(firstChild, node);\n          const whitespaceElements = schema ? schema.getWhitespaceElements() : {};\n          const nonEmptyElements = elements || (schema ? schema.getNonEmptyElements() : null);\n          let tempNode = firstChild;\n          do {\n            if (isElement$6(tempNode)) {\n              const bogusVal = tempNode.getAttribute('data-mce-bogus');\n              if (bogusVal) {\n                tempNode = walker.next(bogusVal === 'all');\n                continue;\n              }\n              const name = tempNode.nodeName.toLowerCase();\n              if (nonEmptyElements && nonEmptyElements[name]) {\n                if (name === 'br') {\n                  brCount++;\n                  tempNode = walker.next();\n                  continue;\n                }\n                return false;\n              }\n              if (isNonEmptyElement(tempNode)) {\n                return false;\n              }\n            }\n            if (isComment(tempNode)) {\n              return false;\n            }\n            if (isText$a(tempNode) && !isWhitespaceText(tempNode.data)) {\n              return false;\n            }\n            if (isText$a(tempNode) && tempNode.parentNode && whitespaceElements[tempNode.parentNode.nodeName] && isWhitespaceText(tempNode.data)) {\n              return false;\n            }\n            tempNode = walker.next();\n          } while (tempNode);\n        }\n        return brCount <= 1;\n      };\n      const createRng = () => doc.createRange();\n      const split = (parentElm, splitElm, replacementElm) => {\n        let range = createRng();\n        let beforeFragment;\n        let afterFragment;\n        if (parentElm && splitElm && parentElm.parentNode && splitElm.parentNode) {\n          const parentNode = parentElm.parentNode;\n          range.setStart(parentNode, findNodeIndex(parentElm));\n          range.setEnd(splitElm.parentNode, findNodeIndex(splitElm));\n          beforeFragment = range.extractContents();\n          range = createRng();\n          range.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1);\n          range.setEnd(parentNode, findNodeIndex(parentElm) + 1);\n          afterFragment = range.extractContents();\n          parentNode.insertBefore(trimNode(self, beforeFragment), parentElm);\n          if (replacementElm) {\n            parentNode.insertBefore(replacementElm, parentElm);\n          } else {\n            parentNode.insertBefore(splitElm, parentElm);\n          }\n          parentNode.insertBefore(trimNode(self, afterFragment), parentElm);\n          remove(parentElm);\n          return replacementElm || splitElm;\n        } else {\n          return undefined;\n        }\n      };\n      const bind = (target, name, func, scope) => {\n        if (isArray$1(target)) {\n          let i = target.length;\n          const rv = [];\n          while (i--) {\n            rv[i] = bind(target[i], name, func, scope);\n          }\n          return rv;\n        } else {\n          if (settings.collect && (target === doc || target === win)) {\n            boundEvents.push([\n              target,\n              name,\n              func,\n              scope\n            ]);\n          }\n          return events.bind(target, name, func, scope || self);\n        }\n      };\n      const unbind = (target, name, func) => {\n        if (isArray$1(target)) {\n          let i = target.length;\n          const rv = [];\n          while (i--) {\n            rv[i] = unbind(target[i], name, func);\n          }\n          return rv;\n        } else {\n          if (boundEvents.length > 0 && (target === doc || target === win)) {\n            let i = boundEvents.length;\n            while (i--) {\n              const [boundTarget, boundName, boundFunc] = boundEvents[i];\n              if (target === boundTarget && (!name || name === boundName) && (!func || func === boundFunc)) {\n                events.unbind(boundTarget, boundName, boundFunc);\n              }\n            }\n          }\n          return events.unbind(target, name, func);\n        }\n      };\n      const dispatch = (target, name, evt) => events.dispatch(target, name, evt);\n      const fire = (target, name, evt) => events.dispatch(target, name, evt);\n      const getContentEditable = node => {\n        if (node && isElement$6(node)) {\n          const contentEditable = node.getAttribute('data-mce-contenteditable');\n          if (contentEditable && contentEditable !== 'inherit') {\n            return contentEditable;\n          }\n          return node.contentEditable !== 'inherit' ? node.contentEditable : null;\n        } else {\n          return null;\n        }\n      };\n      const getContentEditableParent = node => {\n        const root = getRoot();\n        let state = null;\n        for (let tempNode = node; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n          state = getContentEditable(tempNode);\n          if (state !== null) {\n            break;\n          }\n        }\n        return state;\n      };\n      const destroy = () => {\n        if (boundEvents.length > 0) {\n          let i = boundEvents.length;\n          while (i--) {\n            const [boundTarget, boundName, boundFunc] = boundEvents[i];\n            events.unbind(boundTarget, boundName, boundFunc);\n          }\n        }\n        each$d(files, (_, url) => {\n          styleSheetLoader.unload(url);\n          delete files[url];\n        });\n      };\n      const isChildOf = (node, parent) => {\n        return node === parent || parent.contains(node);\n      };\n      const dumpRng = r => 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;\n      const self = {\n        doc,\n        settings,\n        win,\n        files,\n        stdMode,\n        boxModel,\n        styleSheetLoader,\n        boundEvents,\n        styles,\n        schema,\n        events,\n        isBlock: isBlock,\n        root: null,\n        clone,\n        getRoot,\n        getViewPort,\n        getRect,\n        getSize,\n        getParent,\n        getParents: getParents,\n        get,\n        getNext,\n        getPrev,\n        select,\n        is,\n        add,\n        create,\n        createHTML,\n        createFragment,\n        remove,\n        setStyle,\n        getStyle: getStyle,\n        setStyles,\n        removeAllAttribs,\n        setAttrib,\n        setAttribs,\n        getAttrib,\n        getPos: getPos$1,\n        parseStyle,\n        serializeStyle,\n        addStyle,\n        loadCSS,\n        addClass,\n        removeClass,\n        hasClass,\n        toggleClass,\n        show,\n        hide,\n        isHidden,\n        uniqueId,\n        setHTML,\n        getOuterHTML,\n        setOuterHTML,\n        decode,\n        encode,\n        insertAfter,\n        replace,\n        rename,\n        findCommonAncestor,\n        run,\n        getAttribs,\n        isEmpty,\n        createRng,\n        nodeIndex: findNodeIndex,\n        split,\n        bind: bind,\n        unbind: unbind,\n        fire,\n        dispatch,\n        getContentEditable,\n        getContentEditableParent,\n        destroy,\n        isChildOf,\n        dumpRng\n      };\n      const attrHooks = setupAttrHooks(styles, settings, constant(self));\n      return self;\n    };\n    DOMUtils.DOM = DOMUtils(document);\n    DOMUtils.nodeIndex = findNodeIndex;\n\n    const DOM$b = DOMUtils.DOM;\n    const QUEUED = 0;\n    const LOADING = 1;\n    const LOADED = 2;\n    const FAILED = 3;\n    class ScriptLoader {\n      constructor(settings = {}) {\n        this.states = {};\n        this.queue = [];\n        this.scriptLoadedCallbacks = {};\n        this.queueLoadedCallbacks = [];\n        this.loading = false;\n        this.settings = settings;\n      }\n      _setReferrerPolicy(referrerPolicy) {\n        this.settings.referrerPolicy = referrerPolicy;\n      }\n      loadScript(url) {\n        return new Promise((resolve, reject) => {\n          const dom = DOM$b;\n          let elm;\n          const cleanup = () => {\n            dom.remove(id);\n            if (elm) {\n              elm.onerror = elm.onload = elm = null;\n            }\n          };\n          const done = () => {\n            cleanup();\n            resolve();\n          };\n          const error = () => {\n            cleanup();\n            reject('Failed to load script: ' + url);\n          };\n          const id = dom.uniqueId();\n          elm = document.createElement('script');\n          elm.id = id;\n          elm.type = 'text/javascript';\n          elm.src = Tools._addCacheSuffix(url);\n          if (this.settings.referrerPolicy) {\n            dom.setAttrib(elm, 'referrerpolicy', this.settings.referrerPolicy);\n          }\n          elm.onload = done;\n          elm.onerror = error;\n          (document.getElementsByTagName('head')[0] || document.body).appendChild(elm);\n        });\n      }\n      isDone(url) {\n        return this.states[url] === LOADED;\n      }\n      markDone(url) {\n        this.states[url] = LOADED;\n      }\n      add(url) {\n        const self = this;\n        self.queue.push(url);\n        const state = self.states[url];\n        if (state === undefined) {\n          self.states[url] = QUEUED;\n        }\n        return new Promise((resolve, reject) => {\n          if (!self.scriptLoadedCallbacks[url]) {\n            self.scriptLoadedCallbacks[url] = [];\n          }\n          self.scriptLoadedCallbacks[url].push({\n            resolve,\n            reject\n          });\n        });\n      }\n      load(url) {\n        return this.add(url);\n      }\n      remove(url) {\n        delete this.states[url];\n        delete this.scriptLoadedCallbacks[url];\n      }\n      loadQueue() {\n        const queue = this.queue;\n        this.queue = [];\n        return this.loadScripts(queue);\n      }\n      loadScripts(scripts) {\n        const self = this;\n        const execCallbacks = (name, url) => {\n          get$a(self.scriptLoadedCallbacks, url).each(callbacks => {\n            each$e(callbacks, callback => callback[name](url));\n          });\n          delete self.scriptLoadedCallbacks[url];\n        };\n        const processResults = results => {\n          const failures = filter$5(results, result => result.status === 'rejected');\n          if (failures.length > 0) {\n            return Promise.reject(bind$3(failures, ({reason}) => isArray$1(reason) ? reason : [reason]));\n          } else {\n            return Promise.resolve();\n          }\n        };\n        const load = urls => Promise.allSettled(map$3(urls, url => {\n          if (self.states[url] === LOADED) {\n            execCallbacks('resolve', url);\n            return Promise.resolve();\n          } else if (self.states[url] === FAILED) {\n            execCallbacks('reject', url);\n            return Promise.reject(url);\n          } else {\n            self.states[url] = LOADING;\n            return self.loadScript(url).then(() => {\n              self.states[url] = LOADED;\n              execCallbacks('resolve', url);\n              const queue = self.queue;\n              if (queue.length > 0) {\n                self.queue = [];\n                return load(queue).then(processResults);\n              } else {\n                return Promise.resolve();\n              }\n            }, () => {\n              self.states[url] = FAILED;\n              execCallbacks('reject', url);\n              return Promise.reject(url);\n            });\n          }\n        }));\n        const processQueue = urls => {\n          self.loading = true;\n          return load(urls).then(results => {\n            self.loading = false;\n            const nextQueuedItem = self.queueLoadedCallbacks.shift();\n            Optional.from(nextQueuedItem).each(call);\n            return processResults(results);\n          });\n        };\n        const uniqueScripts = stringArray(scripts);\n        if (self.loading) {\n          return new Promise((resolve, reject) => {\n            self.queueLoadedCallbacks.push(() => processQueue(uniqueScripts).then(resolve, reject));\n          });\n        } else {\n          return processQueue(uniqueScripts);\n        }\n      }\n    }\n    ScriptLoader.ScriptLoader = new ScriptLoader();\n\n    const Cell = initial => {\n      let value = initial;\n      const get = () => {\n        return value;\n      };\n      const set = v => {\n        value = v;\n      };\n      return {\n        get,\n        set\n      };\n    };\n\n    const isRaw = str => isObject(str) && has$2(str, 'raw');\n    const isTokenised = str => isArray$1(str) && str.length > 1;\n    const data = {};\n    const currentCode = Cell('en');\n    const getLanguageData = () => get$a(data, currentCode.get());\n    const getData$1 = () => map$2(data, value => ({ ...value }));\n    const setCode = newCode => {\n      if (newCode) {\n        currentCode.set(newCode);\n      }\n    };\n    const getCode = () => currentCode.get();\n    const add$1 = (code, items) => {\n      let langData = data[code];\n      if (!langData) {\n        data[code] = langData = {};\n      }\n      each$d(items, (translation, name) => {\n        langData[name.toLowerCase()] = translation;\n      });\n    };\n    const translate = text => {\n      const langData = getLanguageData().getOr({});\n      const toString = obj => {\n        if (isFunction(obj)) {\n          return Object.prototype.toString.call(obj);\n        }\n        return !isEmpty(obj) ? '' + obj : '';\n      };\n      const isEmpty = text => text === '' || text === null || text === undefined;\n      const getLangData = text => {\n        const textstr = toString(text);\n        return get$a(langData, textstr.toLowerCase()).map(toString).getOr(textstr);\n      };\n      const removeContext = str => str.replace(/{context:\\w+}$/, '');\n      if (isEmpty(text)) {\n        return '';\n      }\n      if (isRaw(text)) {\n        return toString(text.raw);\n      }\n      if (isTokenised(text)) {\n        const values = text.slice(1);\n        const substitued = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, ($1, $2) => has$2(values, $2) ? toString(values[$2]) : $1);\n        return removeContext(substitued);\n      }\n      return removeContext(getLangData(text));\n    };\n    const isRtl$1 = () => getLanguageData().bind(items => get$a(items, '_dir')).exists(dir => dir === 'rtl');\n    const hasCode = code => has$2(data, code);\n    const I18n = {\n      getData: getData$1,\n      setCode,\n      getCode,\n      add: add$1,\n      translate,\n      isRtl: isRtl$1,\n      hasCode\n    };\n\n    const AddOnManager = () => {\n      const items = [];\n      const urls = {};\n      const lookup = {};\n      const _listeners = [];\n      const runListeners = (name, state) => {\n        const matchedListeners = filter$5(_listeners, listener => listener.name === name && listener.state === state);\n        each$e(matchedListeners, listener => listener.resolve());\n      };\n      const isLoaded = name => has$2(urls, name);\n      const isAdded = name => has$2(lookup, name);\n      const get = name => {\n        if (lookup[name]) {\n          return lookup[name].instance;\n        }\n        return undefined;\n      };\n      const loadLanguagePack = (name, languages) => {\n        const language = I18n.getCode();\n        const wrappedLanguages = ',' + (languages || '') + ',';\n        if (!language || languages && wrappedLanguages.indexOf(',' + language + ',') === -1) {\n          return;\n        }\n        ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js');\n      };\n      const requireLangPack = (name, languages) => {\n        if (AddOnManager.languageLoad !== false) {\n          if (isLoaded(name)) {\n            loadLanguagePack(name, languages);\n          } else {\n            waitFor(name, 'loaded').then(() => loadLanguagePack(name, languages));\n          }\n        }\n      };\n      const add = (id, addOn) => {\n        items.push(addOn);\n        lookup[id] = { instance: addOn };\n        runListeners(id, 'added');\n        return addOn;\n      };\n      const remove = name => {\n        delete urls[name];\n        delete lookup[name];\n      };\n      const createUrl = (baseUrl, dep) => {\n        if (isString(dep)) {\n          return isString(baseUrl) ? {\n            prefix: '',\n            resource: dep,\n            suffix: ''\n          } : {\n            prefix: baseUrl.prefix,\n            resource: dep,\n            suffix: baseUrl.suffix\n          };\n        } else {\n          return dep;\n        }\n      };\n      const load = (name, addOnUrl) => {\n        if (urls[name]) {\n          return Promise.resolve();\n        }\n        let urlString = isString(addOnUrl) ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix;\n        if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) {\n          urlString = AddOnManager.baseURL + '/' + urlString;\n        }\n        urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));\n        const done = () => {\n          runListeners(name, 'loaded');\n          return Promise.resolve();\n        };\n        if (lookup[name]) {\n          return done();\n        } else {\n          return ScriptLoader.ScriptLoader.add(urlString).then(done);\n        }\n      };\n      const waitFor = (name, state = 'added') => {\n        if (state === 'added' && isAdded(name)) {\n          return Promise.resolve();\n        } else if (state === 'loaded' && isLoaded(name)) {\n          return Promise.resolve();\n        } else {\n          return new Promise(resolve => {\n            _listeners.push({\n              name,\n              state,\n              resolve\n            });\n          });\n        }\n      };\n      return {\n        items,\n        urls,\n        lookup,\n        get,\n        requireLangPack,\n        add,\n        remove,\n        createUrl,\n        load,\n        waitFor\n      };\n    };\n    AddOnManager.languageLoad = true;\n    AddOnManager.baseURL = '';\n    AddOnManager.PluginManager = AddOnManager();\n    AddOnManager.ThemeManager = AddOnManager();\n    AddOnManager.ModelManager = AddOnManager();\n\n    const singleton = doRevoke => {\n      const subject = Cell(Optional.none());\n      const revoke = () => subject.get().each(doRevoke);\n      const clear = () => {\n        revoke();\n        subject.set(Optional.none());\n      };\n      const isSet = () => subject.get().isSome();\n      const get = () => subject.get();\n      const set = s => {\n        revoke();\n        subject.set(Optional.some(s));\n      };\n      return {\n        clear,\n        isSet,\n        get,\n        set\n      };\n    };\n    const repeatable = delay => {\n      const intervalId = Cell(Optional.none());\n      const revoke = () => intervalId.get().each(id => clearInterval(id));\n      const clear = () => {\n        revoke();\n        intervalId.set(Optional.none());\n      };\n      const isSet = () => intervalId.get().isSome();\n      const get = () => intervalId.get();\n      const set = functionToRepeat => {\n        revoke();\n        intervalId.set(Optional.some(setInterval(functionToRepeat, delay)));\n      };\n      return {\n        clear,\n        isSet,\n        get,\n        set\n      };\n    };\n    const value$2 = () => {\n      const subject = singleton(noop);\n      const on = f => subject.get().each(f);\n      return {\n        ...subject,\n        on\n      };\n    };\n\n    const first$1 = (fn, rate) => {\n      let timer = null;\n      const cancel = () => {\n        if (!isNull(timer)) {\n          clearTimeout(timer);\n          timer = null;\n        }\n      };\n      const throttle = (...args) => {\n        if (isNull(timer)) {\n          timer = setTimeout(() => {\n            timer = null;\n            fn.apply(null, args);\n          }, rate);\n        }\n      };\n      return {\n        cancel,\n        throttle\n      };\n    };\n    const last$1 = (fn, rate) => {\n      let timer = null;\n      const cancel = () => {\n        if (!isNull(timer)) {\n          clearTimeout(timer);\n          timer = null;\n        }\n      };\n      const throttle = (...args) => {\n        cancel();\n        timer = setTimeout(() => {\n          timer = null;\n          fn.apply(null, args);\n        }, rate);\n      };\n      return {\n        cancel,\n        throttle\n      };\n    };\n\n    const annotation = constant('mce-annotation');\n    const dataAnnotation = constant('data-mce-annotation');\n    const dataAnnotationId = constant('data-mce-annotation-uid');\n    const dataAnnotationActive = constant('data-mce-annotation-active');\n    const dataAnnotationClasses = constant('data-mce-annotation-classes');\n    const dataAnnotationAttributes = constant('data-mce-annotation-attrs');\n\n    const isRoot$1 = root => node => eq(node, root);\n    const identify = (editor, annotationName) => {\n      const rng = editor.selection.getRng();\n      const start = SugarElement.fromDom(rng.startContainer);\n      const root = SugarElement.fromDom(editor.getBody());\n      const selector = annotationName.fold(() => '.' + annotation(), an => `[${ dataAnnotation() }=\"${ an }\"]`);\n      const newStart = child$1(start, rng.startOffset).getOr(start);\n      const closest = closest$3(newStart, selector, isRoot$1(root));\n      return closest.bind(c => getOpt(c, `${ dataAnnotationId() }`).bind(uid => getOpt(c, `${ dataAnnotation() }`).map(name => {\n        const elements = findMarkers(editor, uid);\n        return {\n          uid,\n          name,\n          elements\n        };\n      })));\n    };\n    const isAnnotation = elem => isElement$7(elem) && has(elem, annotation());\n    const isBogusElement = (elem, root) => has$1(elem, 'data-mce-bogus') || ancestor$1(elem, '[data-mce-bogus=\"all\"]', isRoot$1(root));\n    const findMarkers = (editor, uid) => {\n      const body = SugarElement.fromDom(editor.getBody());\n      const descendants$1 = descendants(body, `[${ dataAnnotationId() }=\"${ uid }\"]`);\n      return filter$5(descendants$1, descendant => !isBogusElement(descendant, body));\n    };\n    const findAll = (editor, name) => {\n      const body = SugarElement.fromDom(editor.getBody());\n      const markers = descendants(body, `[${ dataAnnotation() }=\"${ name }\"]`);\n      const directory = {};\n      each$e(markers, m => {\n        if (!isBogusElement(m, body)) {\n          const uid = get$9(m, dataAnnotationId());\n          const nodesAlready = get$a(directory, uid).getOr([]);\n          directory[uid] = nodesAlready.concat([m]);\n        }\n      });\n      return directory;\n    };\n\n    const setup$x = (editor, registry) => {\n      const changeCallbacks = Cell({});\n      const initData = () => ({\n        listeners: [],\n        previous: value$2()\n      });\n      const withCallbacks = (name, f) => {\n        updateCallbacks(name, data => {\n          f(data);\n          return data;\n        });\n      };\n      const updateCallbacks = (name, f) => {\n        const callbackMap = changeCallbacks.get();\n        const data = get$a(callbackMap, name).getOrThunk(initData);\n        const outputData = f(data);\n        callbackMap[name] = outputData;\n        changeCallbacks.set(callbackMap);\n      };\n      const fireCallbacks = (name, uid, elements) => {\n        withCallbacks(name, data => {\n          each$e(data.listeners, f => f(true, name, {\n            uid,\n            nodes: map$3(elements, elem => elem.dom)\n          }));\n        });\n      };\n      const fireNoAnnotation = name => {\n        withCallbacks(name, data => {\n          each$e(data.listeners, f => f(false, name));\n        });\n      };\n      const toggleActiveAttr = (uid, state) => {\n        each$e(findMarkers(editor, uid), elem => {\n          if (state) {\n            set$2(elem, dataAnnotationActive(), 'true');\n          } else {\n            remove$b(elem, dataAnnotationActive());\n          }\n        });\n      };\n      const onNodeChange = last$1(() => {\n        const annotations = sort(registry.getNames());\n        each$e(annotations, name => {\n          updateCallbacks(name, data => {\n            const prev = data.previous.get();\n            identify(editor, Optional.some(name)).fold(() => {\n              prev.each(uid => {\n                fireNoAnnotation(name);\n                data.previous.clear();\n                toggleActiveAttr(uid, false);\n              });\n            }, ({uid, name, elements}) => {\n              if (!is$2(prev, uid)) {\n                prev.each(uid => toggleActiveAttr(uid, false));\n                fireCallbacks(name, uid, elements);\n                data.previous.set(uid);\n                toggleActiveAttr(uid, true);\n              }\n            });\n            return {\n              previous: data.previous,\n              listeners: data.listeners\n            };\n          });\n        });\n      }, 30);\n      editor.on('remove', () => {\n        onNodeChange.cancel();\n      });\n      editor.on('NodeChange', () => {\n        onNodeChange.throttle();\n      });\n      const addListener = (name, f) => {\n        updateCallbacks(name, data => ({\n          previous: data.previous,\n          listeners: data.listeners.concat([f])\n        }));\n      };\n      return { addListener };\n    };\n\n    const setup$w = (editor, registry) => {\n      const dataAnnotation$1 = dataAnnotation();\n      const identifyParserNode = node => Optional.from(node.attr(dataAnnotation$1)).bind(registry.lookup);\n      const removeDirectAnnotation = node => {\n        var _a, _b;\n        node.attr(dataAnnotationId(), null);\n        node.attr(dataAnnotation(), null);\n        node.attr(dataAnnotationActive(), null);\n        const customAttrNames = Optional.from(node.attr(dataAnnotationAttributes())).map(names => names.split(',')).getOr([]);\n        const customClasses = Optional.from(node.attr(dataAnnotationClasses())).map(names => names.split(',')).getOr([]);\n        each$e(customAttrNames, name => node.attr(name, null));\n        const classList = (_b = (_a = node.attr('class')) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];\n        const newClassList = difference(classList, [annotation()].concat(customClasses));\n        node.attr('class', newClassList.length > 0 ? newClassList.join(' ') : null);\n        node.attr(dataAnnotationClasses(), null);\n        node.attr(dataAnnotationAttributes(), null);\n      };\n      editor.serializer.addTempAttr(dataAnnotationActive());\n      editor.serializer.addAttributeFilter(dataAnnotation$1, nodes => {\n        for (const node of nodes) {\n          identifyParserNode(node).each(settings => {\n            if (settings.persistent === false) {\n              if (node.name === 'span') {\n                node.unwrap();\n              } else {\n                removeDirectAnnotation(node);\n              }\n            }\n          });\n        }\n      });\n    };\n\n    const create$c = () => {\n      const annotations = {};\n      const register = (name, settings) => {\n        annotations[name] = {\n          name,\n          settings\n        };\n      };\n      const lookup = name => get$a(annotations, name).map(a => a.settings);\n      const getNames = () => keys(annotations);\n      return {\n        register,\n        lookup,\n        getNames\n      };\n    };\n\n    let unique = 0;\n    const generate$1 = prefix => {\n      const date = new Date();\n      const time = date.getTime();\n      const random = Math.floor(Math.random() * 1000000000);\n      unique++;\n      return prefix + '_' + random + unique + String(time);\n    };\n\n    const add = (element, classes) => {\n      each$e(classes, x => {\n        add$2(element, x);\n      });\n    };\n    const remove$5 = (element, classes) => {\n      each$e(classes, x => {\n        remove$8(element, x);\n      });\n    };\n\n    const clone$2 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n    const shallow$1 = original => clone$2(original, false);\n    const deep$1 = original => clone$2(original, true);\n    const shallowAs = (original, tag) => {\n      const nu = SugarElement.fromTag(tag);\n      const attributes = clone$4(original);\n      setAll$1(nu, attributes);\n      return nu;\n    };\n    const mutate = (original, tag) => {\n      const nu = shallowAs(original, tag);\n      after$4(original, nu);\n      const children = children$1(original);\n      append(nu, children);\n      remove$6(original);\n      return nu;\n    };\n\n    const TextWalker = (startNode, rootNode, isBoundary = never) => {\n      const walker = new DomTreeWalker(startNode, rootNode);\n      const walk = direction => {\n        let next;\n        do {\n          next = walker[direction]();\n        } while (next && !isText$a(next) && !isBoundary(next));\n        return Optional.from(next).filter(isText$a);\n      };\n      return {\n        current: () => Optional.from(walker.current()).filter(isText$a),\n        next: () => walk('next'),\n        prev: () => walk('prev'),\n        prev2: () => walk('prev2')\n      };\n    };\n\n    const TextSeeker = (dom, isBoundary) => {\n      const isBlockBoundary = isBoundary ? isBoundary : node => dom.isBlock(node) || isBr$6(node) || isContentEditableFalse$a(node);\n      const walk = (node, offset, walker, process) => {\n        if (isText$a(node)) {\n          const newOffset = process(node, offset, node.data);\n          if (newOffset !== -1) {\n            return Optional.some({\n              container: node,\n              offset: newOffset\n            });\n          }\n        }\n        return walker().bind(next => walk(next.container, next.offset, walker, process));\n      };\n      const backwards = (node, offset, process, root) => {\n        const walker = TextWalker(node, root !== null && root !== void 0 ? root : dom.getRoot(), isBlockBoundary);\n        return walk(node, offset, () => walker.prev().map(prev => ({\n          container: prev,\n          offset: prev.length\n        })), process).getOrNull();\n      };\n      const forwards = (node, offset, process, root) => {\n        const walker = TextWalker(node, root !== null && root !== void 0 ? root : dom.getRoot(), isBlockBoundary);\n        return walk(node, offset, () => walker.next().map(next => ({\n          container: next,\n          offset: 0\n        })), process).getOrNull();\n      };\n      return {\n        backwards,\n        forwards\n      };\n    };\n\n    const round$2 = Math.round;\n    const clone$1 = rect => {\n      if (!rect) {\n        return {\n          left: 0,\n          top: 0,\n          bottom: 0,\n          right: 0,\n          width: 0,\n          height: 0\n        };\n      }\n      return {\n        left: round$2(rect.left),\n        top: round$2(rect.top),\n        bottom: round$2(rect.bottom),\n        right: round$2(rect.right),\n        width: round$2(rect.width),\n        height: round$2(rect.height)\n      };\n    };\n    const collapse = (rect, toStart) => {\n      rect = clone$1(rect);\n      if (toStart) {\n        rect.right = rect.left;\n      } else {\n        rect.left = rect.left + rect.width;\n        rect.right = rect.left;\n      }\n      rect.width = 0;\n      return rect;\n    };\n    const isEqual = (rect1, rect2) => rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right;\n    const isValidOverflow = (overflowY, rect1, rect2) => overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;\n    const isAbove$1 = (rect1, rect2) => {\n      const halfHeight = Math.min(rect2.height / 2, rect1.height / 2);\n      if (rect1.bottom - halfHeight < rect2.top) {\n        return true;\n      }\n      if (rect1.top > rect2.bottom) {\n        return false;\n      }\n      return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2);\n    };\n    const isBelow$1 = (rect1, rect2) => {\n      if (rect1.top > rect2.bottom) {\n        return true;\n      }\n      if (rect1.bottom < rect2.top) {\n        return false;\n      }\n      return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2);\n    };\n    const containsXY = (rect, clientX, clientY) => clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n    const boundingClientRectFromRects = rects => {\n      return foldl(rects, (acc, rect) => {\n        return acc.fold(() => Optional.some(rect), prevRect => {\n          const left = Math.min(rect.left, prevRect.left);\n          const top = Math.min(rect.top, prevRect.top);\n          const right = Math.max(rect.right, prevRect.right);\n          const bottom = Math.max(rect.bottom, prevRect.bottom);\n          return Optional.some({\n            top,\n            right,\n            bottom,\n            left,\n            width: right - left,\n            height: bottom - top\n          });\n        });\n      }, Optional.none());\n    };\n    const distanceToRectEdgeFromXY = (rect, x, y) => {\n      const cx = Math.max(Math.min(x, rect.left + rect.width), rect.left);\n      const cy = Math.max(Math.min(y, rect.top + rect.height), rect.top);\n      return Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy));\n    };\n    const overlapY = (r1, r2) => Math.max(0, Math.min(r1.bottom, r2.bottom) - Math.max(r1.top, r2.top));\n\n    const clamp$2 = (value, min, max) => Math.min(Math.max(value, min), max);\n\n    const getSelectedNode = range => {\n      const startContainer = range.startContainer, startOffset = range.startOffset;\n      if (startContainer === range.endContainer && startContainer.hasChildNodes() && range.endOffset === startOffset + 1) {\n        return startContainer.childNodes[startOffset];\n      }\n      return null;\n    };\n    const getNode$1 = (container, offset) => {\n      if (isElement$6(container) && container.hasChildNodes()) {\n        const childNodes = container.childNodes;\n        const safeOffset = clamp$2(offset, 0, childNodes.length - 1);\n        return childNodes[safeOffset];\n      } else {\n        return container;\n      }\n    };\n    const getNodeUnsafe = (container, offset) => {\n      if (offset < 0 && isElement$6(container) && container.hasChildNodes()) {\n        return undefined;\n      } else {\n        return getNode$1(container, offset);\n      }\n    };\n\n    const extendingChars = new RegExp('[\\u0300-\\u036f\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u061a' + '\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0' + '\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e3-\\u0902\\u093a\\u093c' + '\\u0941-\\u0948\\u094d\\u0951-\\u0957\\u0962-\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2-\\u09e3' + '\\u0a01-\\u0a02\\u0a3c\\u0a41-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70-\\u0a71\\u0a75\\u0a81-\\u0a82\\u0abc' + '\\u0ac1-\\u0ac5\\u0ac7-\\u0ac8\\u0acd\\u0ae2-\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57' + '\\u0b62-\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c00\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56' + '\\u0c62-\\u0c63\\u0c81\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc-\\u0ccd\\u0cd5-\\u0cd6\\u0ce2-\\u0ce3\\u0d01\\u0d3e\\u0d41-\\u0d44' + '\\u0d4d\\u0d57\\u0d62-\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9' + '\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97' + '\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039-\\u103a\\u103d-\\u103e\\u1058-\\u1059\\u105e-\\u1060\\u1071-\\u1074' + '\\u1082\\u1085-\\u1086\\u108d\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b4-\\u17b5' + '\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193b\\u1a17-\\u1a18' + '\\u1a1b\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1ab0-\\u1abd\\u1ABE\\u1b00-\\u1b03\\u1b34' + '\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80-\\u1b81\\u1ba2-\\u1ba5\\u1ba8-\\u1ba9\\u1bab-\\u1bad\\u1be6\\u1be8-\\u1be9' + '\\u1bed\\u1bef-\\u1bf1\\u1c2c-\\u1c33\\u1c36-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1cf4\\u1cf8-\\u1cf9' + '\\u1dc0-\\u1df5\\u1dfc-\\u1dff\\u200c-\\u200d\\u20d0-\\u20dc\\u20DD-\\u20E0\\u20e1\\u20E2-\\u20E4\\u20e5-\\u20f0\\u2cef-\\u2cf1' + '\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302d\\u302e-\\u302f\\u3099-\\u309a\\ua66f\\uA670-\\uA672\\ua674-\\ua67d\\ua69e-\\ua69f\\ua6f0-\\ua6f1' + '\\ua802\\ua806\\ua80b\\ua825-\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc' + '\\ua9e5\\uaa29-\\uaa2e\\uaa31-\\uaa32\\uaa35-\\uaa36\\uaa43\\uaa4c\\uaa7c\\uaab0\\uaab2-\\uaab4\\uaab7-\\uaab8\\uaabe-\\uaabf\\uaac1' + '\\uaaec-\\uaaed\\uaaf6\\uabe5\\uabe8\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\uff9e-\\uff9f]');\n    const isExtendingChar = ch => isString(ch) && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);\n\n    const or = (...args) => {\n      return x => {\n        for (let i = 0; i < args.length; i++) {\n          if (args[i](x)) {\n            return true;\n          }\n        }\n        return false;\n      };\n    };\n    const and = (...args) => {\n      return x => {\n        for (let i = 0; i < args.length; i++) {\n          if (!args[i](x)) {\n            return false;\n          }\n        }\n        return true;\n      };\n    };\n\n    const isElement$4 = isElement$6;\n    const isCaretCandidate$2 = isCaretCandidate$3;\n    const isBlock$1 = matchStyleValues('display', 'block table');\n    const isFloated = matchStyleValues('float', 'left right');\n    const isValidElementCaretCandidate = and(isElement$4, isCaretCandidate$2, not(isFloated));\n    const isNotPre = not(matchStyleValues('white-space', 'pre pre-line pre-wrap'));\n    const isText$7 = isText$a;\n    const isBr$3 = isBr$6;\n    const nodeIndex$1 = DOMUtils.nodeIndex;\n    const resolveIndex$1 = getNodeUnsafe;\n    const createRange$1 = doc => doc ? doc.createRange() : DOMUtils.DOM.createRng();\n    const isWhiteSpace$1 = chr => isString(chr) && /[\\r\\n\\t ]/.test(chr);\n    const isRange = rng => !!rng.setStart && !!rng.setEnd;\n    const isHiddenWhiteSpaceRange = range => {\n      const container = range.startContainer;\n      const offset = range.startOffset;\n      if (isWhiteSpace$1(range.toString()) && isNotPre(container.parentNode) && isText$a(container)) {\n        const text = container.data;\n        if (isWhiteSpace$1(text[offset - 1]) || isWhiteSpace$1(text[offset + 1])) {\n          return true;\n        }\n      }\n      return false;\n    };\n    const getBrClientRect = brNode => {\n      const doc = brNode.ownerDocument;\n      const rng = createRange$1(doc);\n      const nbsp$1 = doc.createTextNode(nbsp);\n      const parentNode = brNode.parentNode;\n      parentNode.insertBefore(nbsp$1, brNode);\n      rng.setStart(nbsp$1, 0);\n      rng.setEnd(nbsp$1, 1);\n      const clientRect = clone$1(rng.getBoundingClientRect());\n      parentNode.removeChild(nbsp$1);\n      return clientRect;\n    };\n    const getBoundingClientRectWebKitText = rng => {\n      const sc = rng.startContainer;\n      const ec = rng.endContainer;\n      const so = rng.startOffset;\n      const eo = rng.endOffset;\n      if (sc === ec && isText$a(ec) && so === 0 && eo === 1) {\n        const newRng = rng.cloneRange();\n        newRng.setEndAfter(ec);\n        return getBoundingClientRect$1(newRng);\n      } else {\n        return null;\n      }\n    };\n    const isZeroRect = r => r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0;\n    const getBoundingClientRect$1 = item => {\n      var _a;\n      let clientRect;\n      const clientRects = item.getClientRects();\n      if (clientRects.length > 0) {\n        clientRect = clone$1(clientRects[0]);\n      } else {\n        clientRect = clone$1(item.getBoundingClientRect());\n      }\n      if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {\n        return getBrClientRect(item);\n      }\n      if (isZeroRect(clientRect) && isRange(item)) {\n        return (_a = getBoundingClientRectWebKitText(item)) !== null && _a !== void 0 ? _a : clientRect;\n      }\n      return clientRect;\n    };\n    const collapseAndInflateWidth = (clientRect, toStart) => {\n      const newClientRect = collapse(clientRect, toStart);\n      newClientRect.width = 1;\n      newClientRect.right = newClientRect.left + 1;\n      return newClientRect;\n    };\n    const getCaretPositionClientRects = caretPosition => {\n      const clientRects = [];\n      const addUniqueAndValidRect = clientRect => {\n        if (clientRect.height === 0) {\n          return;\n        }\n        if (clientRects.length > 0) {\n          if (isEqual(clientRect, clientRects[clientRects.length - 1])) {\n            return;\n          }\n        }\n        clientRects.push(clientRect);\n      };\n      const addCharacterOffset = (container, offset) => {\n        const range = createRange$1(container.ownerDocument);\n        if (offset < container.data.length) {\n          if (isExtendingChar(container.data[offset])) {\n            return;\n          }\n          if (isExtendingChar(container.data[offset - 1])) {\n            range.setStart(container, offset);\n            range.setEnd(container, offset + 1);\n            if (!isHiddenWhiteSpaceRange(range)) {\n              addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), false));\n              return;\n            }\n          }\n        }\n        if (offset > 0) {\n          range.setStart(container, offset - 1);\n          range.setEnd(container, offset);\n          if (!isHiddenWhiteSpaceRange(range)) {\n            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), false));\n          }\n        }\n        if (offset < container.data.length) {\n          range.setStart(container, offset);\n          range.setEnd(container, offset + 1);\n          if (!isHiddenWhiteSpaceRange(range)) {\n            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), true));\n          }\n        }\n      };\n      const container = caretPosition.container();\n      const offset = caretPosition.offset();\n      if (isText$7(container)) {\n        addCharacterOffset(container, offset);\n        return clientRects;\n      }\n      if (isElement$4(container)) {\n        if (caretPosition.isAtEnd()) {\n          const node = resolveIndex$1(container, offset);\n          if (isText$7(node)) {\n            addCharacterOffset(node, node.data.length);\n          }\n          if (isValidElementCaretCandidate(node) && !isBr$3(node)) {\n            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), false));\n          }\n        } else {\n          const node = resolveIndex$1(container, offset);\n          if (isText$7(node)) {\n            addCharacterOffset(node, 0);\n          }\n          if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) {\n            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), false));\n            return clientRects;\n          }\n          const beforeNode = resolveIndex$1(caretPosition.container(), caretPosition.offset() - 1);\n          if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) {\n            if (isBlock$1(beforeNode) || isBlock$1(node) || !isValidElementCaretCandidate(node)) {\n              addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(beforeNode), false));\n            }\n          }\n          if (isValidElementCaretCandidate(node)) {\n            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), true));\n          }\n        }\n      }\n      return clientRects;\n    };\n    const CaretPosition = (container, offset, clientRects) => {\n      const isAtStart = () => {\n        if (isText$7(container)) {\n          return offset === 0;\n        }\n        return offset === 0;\n      };\n      const isAtEnd = () => {\n        if (isText$7(container)) {\n          return offset >= container.data.length;\n        }\n        return offset >= container.childNodes.length;\n      };\n      const toRange = () => {\n        const range = createRange$1(container.ownerDocument);\n        range.setStart(container, offset);\n        range.setEnd(container, offset);\n        return range;\n      };\n      const getClientRects = () => {\n        if (!clientRects) {\n          clientRects = getCaretPositionClientRects(CaretPosition(container, offset));\n        }\n        return clientRects;\n      };\n      const isVisible = () => getClientRects().length > 0;\n      const isEqual = caretPosition => caretPosition && container === caretPosition.container() && offset === caretPosition.offset();\n      const getNode = before => resolveIndex$1(container, before ? offset - 1 : offset);\n      return {\n        container: constant(container),\n        offset: constant(offset),\n        toRange,\n        getClientRects,\n        isVisible,\n        isAtStart,\n        isAtEnd,\n        isEqual,\n        getNode\n      };\n    };\n    CaretPosition.fromRangeStart = range => CaretPosition(range.startContainer, range.startOffset);\n    CaretPosition.fromRangeEnd = range => CaretPosition(range.endContainer, range.endOffset);\n    CaretPosition.after = node => CaretPosition(node.parentNode, nodeIndex$1(node) + 1);\n    CaretPosition.before = node => CaretPosition(node.parentNode, nodeIndex$1(node));\n    CaretPosition.isAbove = (pos1, pos2) => lift2(head(pos2.getClientRects()), last$3(pos1.getClientRects()), isAbove$1).getOr(false);\n    CaretPosition.isBelow = (pos1, pos2) => lift2(last$3(pos2.getClientRects()), head(pos1.getClientRects()), isBelow$1).getOr(false);\n    CaretPosition.isAtStart = pos => pos ? pos.isAtStart() : false;\n    CaretPosition.isAtEnd = pos => pos ? pos.isAtEnd() : false;\n    CaretPosition.isTextPosition = pos => pos ? isText$a(pos.container()) : false;\n    CaretPosition.isElementPosition = pos => !CaretPosition.isTextPosition(pos);\n\n    const trimEmptyTextNode$1 = (dom, node) => {\n      if (isText$a(node) && node.data.length === 0) {\n        dom.remove(node);\n      }\n    };\n    const insertNode = (dom, rng, node) => {\n      rng.insertNode(node);\n      trimEmptyTextNode$1(dom, node.previousSibling);\n      trimEmptyTextNode$1(dom, node.nextSibling);\n    };\n    const insertFragment = (dom, rng, frag) => {\n      const firstChild = Optional.from(frag.firstChild);\n      const lastChild = Optional.from(frag.lastChild);\n      rng.insertNode(frag);\n      firstChild.each(child => trimEmptyTextNode$1(dom, child.previousSibling));\n      lastChild.each(child => trimEmptyTextNode$1(dom, child.nextSibling));\n    };\n    const rangeInsertNode = (dom, rng, node) => {\n      if (isDocumentFragment(node)) {\n        insertFragment(dom, rng, node);\n      } else {\n        insertNode(dom, rng, node);\n      }\n    };\n\n    const isText$6 = isText$a;\n    const isBogus = isBogus$2;\n    const nodeIndex = DOMUtils.nodeIndex;\n    const normalizedParent = node => {\n      const parentNode = node.parentNode;\n      if (isBogus(parentNode)) {\n        return normalizedParent(parentNode);\n      }\n      return parentNode;\n    };\n    const getChildNodes = node => {\n      if (!node) {\n        return [];\n      }\n      return reduce(node.childNodes, (result, node) => {\n        if (isBogus(node) && node.nodeName !== 'BR') {\n          result = result.concat(getChildNodes(node));\n        } else {\n          result.push(node);\n        }\n        return result;\n      }, []);\n    };\n    const normalizedTextOffset = (node, offset) => {\n      let tempNode = node;\n      while (tempNode = tempNode.previousSibling) {\n        if (!isText$6(tempNode)) {\n          break;\n        }\n        offset += tempNode.data.length;\n      }\n      return offset;\n    };\n    const equal = a => b => a === b;\n    const normalizedNodeIndex = node => {\n      let nodes, index;\n      nodes = getChildNodes(normalizedParent(node));\n      index = findIndex$1(nodes, equal(node), node);\n      nodes = nodes.slice(0, index + 1);\n      const numTextFragments = reduce(nodes, (result, node, i) => {\n        if (isText$6(node) && isText$6(nodes[i - 1])) {\n          result++;\n        }\n        return result;\n      }, 0);\n      nodes = filter$3(nodes, matchNodeNames([node.nodeName]));\n      index = findIndex$1(nodes, equal(node), node);\n      return index - numTextFragments;\n    };\n    const createPathItem = node => {\n      const name = isText$6(node) ? 'text()' : node.nodeName.toLowerCase();\n      return name + '[' + normalizedNodeIndex(node) + ']';\n    };\n    const parentsUntil$1 = (root, node, predicate) => {\n      const parents = [];\n      for (let tempNode = node.parentNode; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n        if (predicate && predicate(tempNode)) {\n          break;\n        }\n        parents.push(tempNode);\n      }\n      return parents;\n    };\n    const create$b = (root, caretPosition) => {\n      let path = [];\n      let container = caretPosition.container();\n      let offset = caretPosition.offset();\n      let outputOffset;\n      if (isText$6(container)) {\n        outputOffset = normalizedTextOffset(container, offset);\n      } else {\n        const childNodes = container.childNodes;\n        if (offset >= childNodes.length) {\n          outputOffset = 'after';\n          offset = childNodes.length - 1;\n        } else {\n          outputOffset = 'before';\n        }\n        container = childNodes[offset];\n      }\n      path.push(createPathItem(container));\n      let parents = parentsUntil$1(root, container);\n      parents = filter$3(parents, not(isBogus$2));\n      path = path.concat(map$1(parents, node => {\n        return createPathItem(node);\n      }));\n      return path.reverse().join('/') + ',' + outputOffset;\n    };\n    const resolvePathItem = (node, name, index) => {\n      let nodes = getChildNodes(node);\n      nodes = filter$3(nodes, (node, index) => {\n        return !isText$6(node) || !isText$6(nodes[index - 1]);\n      });\n      nodes = filter$3(nodes, matchNodeNames([name]));\n      return nodes[index];\n    };\n    const findTextPosition = (container, offset) => {\n      let node = container;\n      let targetOffset = 0;\n      while (isText$6(node)) {\n        const dataLen = node.data.length;\n        if (offset >= targetOffset && offset <= targetOffset + dataLen) {\n          container = node;\n          offset = offset - targetOffset;\n          break;\n        }\n        if (!isText$6(node.nextSibling)) {\n          container = node;\n          offset = dataLen;\n          break;\n        }\n        targetOffset += dataLen;\n        node = node.nextSibling;\n      }\n      if (isText$6(container) && offset > container.data.length) {\n        offset = container.data.length;\n      }\n      return CaretPosition(container, offset);\n    };\n    const resolve$1 = (root, path) => {\n      if (!path) {\n        return null;\n      }\n      const parts = path.split(',');\n      const paths = parts[0].split('/');\n      const offset = parts.length > 1 ? parts[1] : 'before';\n      const container = reduce(paths, (result, value) => {\n        const match = /([\\w\\-\\(\\)]+)\\[([0-9]+)\\]/.exec(value);\n        if (!match) {\n          return null;\n        }\n        if (match[1] === 'text()') {\n          match[1] = '#text';\n        }\n        return resolvePathItem(result, match[1], parseInt(match[2], 10));\n      }, root);\n      if (!container) {\n        return null;\n      }\n      if (!isText$6(container) && container.parentNode) {\n        let nodeOffset;\n        if (offset === 'after') {\n          nodeOffset = nodeIndex(container) + 1;\n        } else {\n          nodeOffset = nodeIndex(container);\n        }\n        return CaretPosition(container.parentNode, nodeOffset);\n      }\n      return findTextPosition(container, parseInt(offset, 10));\n    };\n\n    const isContentEditableFalse$8 = isContentEditableFalse$a;\n    const getNormalizedTextOffset$1 = (trim, container, offset) => {\n      let trimmedOffset = trim(container.data.slice(0, offset)).length;\n      for (let node = container.previousSibling; node && isText$a(node); node = node.previousSibling) {\n        trimmedOffset += trim(node.data).length;\n      }\n      return trimmedOffset;\n    };\n    const getPoint = (dom, trim, normalized, rng, start) => {\n      const container = start ? rng.startContainer : rng.endContainer;\n      let offset = start ? rng.startOffset : rng.endOffset;\n      const point = [];\n      const root = dom.getRoot();\n      if (isText$a(container)) {\n        point.push(normalized ? getNormalizedTextOffset$1(trim, container, offset) : offset);\n      } else {\n        let after = 0;\n        const childNodes = container.childNodes;\n        if (offset >= childNodes.length && childNodes.length) {\n          after = 1;\n          offset = Math.max(0, childNodes.length - 1);\n        }\n        point.push(dom.nodeIndex(childNodes[offset], normalized) + after);\n      }\n      for (let node = container; node && node !== root; node = node.parentNode) {\n        point.push(dom.nodeIndex(node, normalized));\n      }\n      return point;\n    };\n    const getLocation = (trim, selection, normalized, rng) => {\n      const dom = selection.dom;\n      const start = getPoint(dom, trim, normalized, rng, true);\n      const forward = selection.isForward();\n      const fakeCaret = isRangeInCaretContainerBlock(rng) ? { isFakeCaret: true } : {};\n      if (!selection.isCollapsed()) {\n        const end = getPoint(dom, trim, normalized, rng, false);\n        return {\n          start,\n          end,\n          forward,\n          ...fakeCaret\n        };\n      } else {\n        return {\n          start,\n          forward,\n          ...fakeCaret\n        };\n      }\n    };\n    const findIndex = (dom, name, element) => {\n      let count = 0;\n      Tools.each(dom.select(name), node => {\n        if (node.getAttribute('data-mce-bogus') === 'all') {\n          return;\n        } else if (node === element) {\n          return false;\n        } else {\n          count++;\n          return;\n        }\n      });\n      return count;\n    };\n    const moveEndPoint$1 = (rng, start) => {\n      let container = start ? rng.startContainer : rng.endContainer;\n      let offset = start ? rng.startOffset : rng.endOffset;\n      if (isElement$6(container) && container.nodeName === 'TR') {\n        const childNodes = container.childNodes;\n        container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];\n        if (container) {\n          offset = start ? 0 : container.childNodes.length;\n          if (start) {\n            rng.setStart(container, offset);\n          } else {\n            rng.setEnd(container, offset);\n          }\n        }\n      }\n    };\n    const normalizeTableCellSelection = rng => {\n      moveEndPoint$1(rng, true);\n      moveEndPoint$1(rng, false);\n      return rng;\n    };\n    const findSibling = (node, offset) => {\n      if (isElement$6(node)) {\n        node = getNode$1(node, offset);\n        if (isContentEditableFalse$8(node)) {\n          return node;\n        }\n      }\n      if (isCaretContainer$2(node)) {\n        if (isText$a(node) && isCaretContainerBlock$1(node)) {\n          node = node.parentNode;\n        }\n        let sibling = node.previousSibling;\n        if (isContentEditableFalse$8(sibling)) {\n          return sibling;\n        }\n        sibling = node.nextSibling;\n        if (isContentEditableFalse$8(sibling)) {\n          return sibling;\n        }\n      }\n      return undefined;\n    };\n    const findAdjacentContentEditableFalseElm = rng => {\n      return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);\n    };\n    const getOffsetBookmark = (trim, normalized, selection) => {\n      const element = selection.getNode();\n      const rng = selection.getRng();\n      if (element.nodeName === 'IMG' || isContentEditableFalse$8(element)) {\n        const name = element.nodeName;\n        return {\n          name,\n          index: findIndex(selection.dom, name, element)\n        };\n      }\n      const sibling = findAdjacentContentEditableFalseElm(rng);\n      if (sibling) {\n        const name = sibling.tagName;\n        return {\n          name,\n          index: findIndex(selection.dom, name, sibling)\n        };\n      }\n      return getLocation(trim, selection, normalized, rng);\n    };\n    const getCaretBookmark = selection => {\n      const rng = selection.getRng();\n      return {\n        start: create$b(selection.dom.getRoot(), CaretPosition.fromRangeStart(rng)),\n        end: create$b(selection.dom.getRoot(), CaretPosition.fromRangeEnd(rng)),\n        forward: selection.isForward()\n      };\n    };\n    const getRangeBookmark = selection => {\n      return {\n        rng: selection.getRng(),\n        forward: selection.isForward()\n      };\n    };\n    const createBookmarkSpan = (dom, id, filled) => {\n      const args = {\n        'data-mce-type': 'bookmark',\n        id,\n        'style': 'overflow:hidden;line-height:0px'\n      };\n      return filled ? dom.create('span', args, '&#xFEFF;') : dom.create('span', args);\n    };\n    const getPersistentBookmark = (selection, filled) => {\n      const dom = selection.dom;\n      let rng = selection.getRng();\n      const id = dom.uniqueId();\n      const collapsed = selection.isCollapsed();\n      const element = selection.getNode();\n      const name = element.nodeName;\n      const forward = selection.isForward();\n      if (name === 'IMG') {\n        return {\n          name,\n          index: findIndex(dom, name, element)\n        };\n      }\n      const rng2 = normalizeTableCellSelection(rng.cloneRange());\n      if (!collapsed) {\n        rng2.collapse(false);\n        const endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);\n        rangeInsertNode(dom, rng2, endBookmarkNode);\n      }\n      rng = normalizeTableCellSelection(rng);\n      rng.collapse(true);\n      const startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);\n      rangeInsertNode(dom, rng, startBookmarkNode);\n      selection.moveToBookmark({\n        id,\n        keep: true,\n        forward\n      });\n      return {\n        id,\n        forward\n      };\n    };\n    const getBookmark$2 = (selection, type, normalized = false) => {\n      if (type === 2) {\n        return getOffsetBookmark(trim$1, normalized, selection);\n      } else if (type === 3) {\n        return getCaretBookmark(selection);\n      } else if (type) {\n        return getRangeBookmark(selection);\n      } else {\n        return getPersistentBookmark(selection, false);\n      }\n    };\n    const getUndoBookmark = curry(getOffsetBookmark, identity, true);\n\n    const value$1 = value => {\n      const applyHelper = fn => fn(value);\n      const constHelper = constant(value);\n      const outputHelper = () => output;\n      const output = {\n        tag: true,\n        inner: value,\n        fold: (_onError, onValue) => onValue(value),\n        isValue: always,\n        isError: never,\n        map: mapper => Result.value(mapper(value)),\n        mapError: outputHelper,\n        bind: applyHelper,\n        exists: applyHelper,\n        forall: applyHelper,\n        getOr: constHelper,\n        or: outputHelper,\n        getOrThunk: constHelper,\n        orThunk: outputHelper,\n        getOrDie: constHelper,\n        each: fn => {\n          fn(value);\n        },\n        toOptional: () => Optional.some(value)\n      };\n      return output;\n    };\n    const error = error => {\n      const outputHelper = () => output;\n      const output = {\n        tag: false,\n        inner: error,\n        fold: (onError, _onValue) => onError(error),\n        isValue: never,\n        isError: always,\n        map: outputHelper,\n        mapError: mapper => Result.error(mapper(error)),\n        bind: outputHelper,\n        exists: never,\n        forall: always,\n        getOr: identity,\n        or: identity,\n        getOrThunk: apply$1,\n        orThunk: apply$1,\n        getOrDie: die(String(error)),\n        each: noop,\n        toOptional: Optional.none\n      };\n      return output;\n    };\n    const fromOption = (optional, err) => optional.fold(() => error(err), value$1);\n    const Result = {\n      value: value$1,\n      error,\n      fromOption\n    };\n\n    const generate = cases => {\n      if (!isArray$1(cases)) {\n        throw new Error('cases must be an array');\n      }\n      if (cases.length === 0) {\n        throw new Error('there must be at least one case');\n      }\n      const constructors = [];\n      const adt = {};\n      each$e(cases, (acase, count) => {\n        const keys$1 = keys(acase);\n        if (keys$1.length !== 1) {\n          throw new Error('one and only one name per case');\n        }\n        const key = keys$1[0];\n        const value = acase[key];\n        if (adt[key] !== undefined) {\n          throw new Error('duplicate key detected:' + key);\n        } else if (key === 'cata') {\n          throw new Error('cannot have a case named cata (sorry)');\n        } else if (!isArray$1(value)) {\n          throw new Error('case arguments must be an array');\n        }\n        constructors.push(key);\n        adt[key] = (...args) => {\n          const argLength = args.length;\n          if (argLength !== value.length) {\n            throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n          }\n          const match = branches => {\n            const branchKeys = keys(branches);\n            if (constructors.length !== branchKeys.length) {\n              throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n            }\n            const allReqd = forall(constructors, reqKey => {\n              return contains$2(branchKeys, reqKey);\n            });\n            if (!allReqd) {\n              throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n            }\n            return branches[key].apply(null, args);\n          };\n          return {\n            fold: (...foldArgs) => {\n              if (foldArgs.length !== cases.length) {\n                throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n              }\n              const target = foldArgs[count];\n              return target.apply(null, args);\n            },\n            match,\n            log: label => {\n              console.log(label, {\n                constructors,\n                constructor: key,\n                params: args\n              });\n            }\n          };\n        };\n      });\n      return adt;\n    };\n    const Adt = { generate };\n\n    Adt.generate([\n      {\n        bothErrors: [\n          'error1',\n          'error2'\n        ]\n      },\n      {\n        firstError: [\n          'error1',\n          'value2'\n        ]\n      },\n      {\n        secondError: [\n          'value1',\n          'error2'\n        ]\n      },\n      {\n        bothValues: [\n          'value1',\n          'value2'\n        ]\n      }\n    ]);\n    const partition$1 = results => {\n      const errors = [];\n      const values = [];\n      each$e(results, result => {\n        result.fold(err => {\n          errors.push(err);\n        }, value => {\n          values.push(value);\n        });\n      });\n      return {\n        errors,\n        values\n      };\n    };\n\n    const isInlinePattern = pattern => pattern.type === 'inline-command' || pattern.type === 'inline-format';\n    const isBlockPattern = pattern => pattern.type === 'block-command' || pattern.type === 'block-format';\n    const normalizePattern = pattern => {\n      const err = message => Result.error({\n        message,\n        pattern\n      });\n      const formatOrCmd = (name, onFormat, onCommand) => {\n        if (pattern.format !== undefined) {\n          let formats;\n          if (isArray$1(pattern.format)) {\n            if (!forall(pattern.format, isString)) {\n              return err(name + ' pattern has non-string items in the `format` array');\n            }\n            formats = pattern.format;\n          } else if (isString(pattern.format)) {\n            formats = [pattern.format];\n          } else {\n            return err(name + ' pattern has non-string `format` parameter');\n          }\n          return Result.value(onFormat(formats));\n        } else if (pattern.cmd !== undefined) {\n          if (!isString(pattern.cmd)) {\n            return err(name + ' pattern has non-string `cmd` parameter');\n          }\n          return Result.value(onCommand(pattern.cmd, pattern.value));\n        } else {\n          return err(name + ' pattern is missing both `format` and `cmd` parameters');\n        }\n      };\n      if (!isObject(pattern)) {\n        return err('Raw pattern is not an object');\n      }\n      if (!isString(pattern.start)) {\n        return err('Raw pattern is missing `start` parameter');\n      }\n      if (pattern.end !== undefined) {\n        if (!isString(pattern.end)) {\n          return err('Inline pattern has non-string `end` parameter');\n        }\n        if (pattern.start.length === 0 && pattern.end.length === 0) {\n          return err('Inline pattern has empty `start` and `end` parameters');\n        }\n        let start = pattern.start;\n        let end = pattern.end;\n        if (end.length === 0) {\n          end = start;\n          start = '';\n        }\n        return formatOrCmd('Inline', format => ({\n          type: 'inline-format',\n          start,\n          end,\n          format\n        }), (cmd, value) => ({\n          type: 'inline-command',\n          start,\n          end,\n          cmd,\n          value\n        }));\n      } else if (pattern.replacement !== undefined) {\n        if (!isString(pattern.replacement)) {\n          return err('Replacement pattern has non-string `replacement` parameter');\n        }\n        if (pattern.start.length === 0) {\n          return err('Replacement pattern has empty `start` parameter');\n        }\n        return Result.value({\n          type: 'inline-command',\n          start: '',\n          end: pattern.start,\n          cmd: 'mceInsertContent',\n          value: pattern.replacement\n        });\n      } else {\n        if (pattern.start.length === 0) {\n          return err('Block pattern has empty `start` parameter');\n        }\n        return formatOrCmd('Block', formats => ({\n          type: 'block-format',\n          start: pattern.start,\n          format: formats[0]\n        }), (command, commandValue) => ({\n          type: 'block-command',\n          start: pattern.start,\n          cmd: command,\n          value: commandValue\n        }));\n      }\n    };\n    const getBlockPatterns = patterns => filter$5(patterns, isBlockPattern);\n    const getInlinePatterns = patterns => filter$5(patterns, isInlinePattern);\n    const createPatternSet = (patterns, dynamicPatternsLookup) => ({\n      inlinePatterns: getInlinePatterns(patterns),\n      blockPatterns: getBlockPatterns(patterns),\n      dynamicPatternsLookup\n    });\n    const fromRawPatterns = patterns => {\n      const normalized = partition$1(map$3(patterns, normalizePattern));\n      each$e(normalized.errors, err => console.error(err.message, err.pattern));\n      return normalized.values;\n    };\n    const fromRawPatternsLookup = lookupFn => {\n      return ctx => {\n        const rawPatterns = lookupFn(ctx);\n        return fromRawPatterns(rawPatterns);\n      };\n    };\n\n    const deviceDetection$1 = detect$2().deviceType;\n    const isTouch = deviceDetection$1.isTouch();\n    const DOM$a = DOMUtils.DOM;\n    const getHash = value => {\n      const items = value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(',');\n      return foldl(items, (output, item) => {\n        const arr = item.split('=');\n        const key = arr[0];\n        const val = arr.length > 1 ? arr[1] : key;\n        output[trim$3(key)] = trim$3(val);\n        return output;\n      }, {});\n    };\n    const isRegExp = x => is$4(x, RegExp);\n    const option = name => editor => editor.options.get(name);\n    const stringOrObjectProcessor = value => isString(value) || isObject(value);\n    const bodyOptionProcessor = (editor, defaultValue = '') => value => {\n      const valid = isString(value);\n      if (valid) {\n        if (value.indexOf('=') !== -1) {\n          const bodyObj = getHash(value);\n          return {\n            value: get$a(bodyObj, editor.id).getOr(defaultValue),\n            valid\n          };\n        } else {\n          return {\n            value,\n            valid\n          };\n        }\n      } else {\n        return {\n          valid: false,\n          message: 'Must be a string.'\n        };\n      }\n    };\n    const register$7 = editor => {\n      const registerOption = editor.options.register;\n      registerOption('id', {\n        processor: 'string',\n        default: editor.id\n      });\n      registerOption('selector', { processor: 'string' });\n      registerOption('target', { processor: 'object' });\n      registerOption('suffix', { processor: 'string' });\n      registerOption('cache_suffix', { processor: 'string' });\n      registerOption('base_url', { processor: 'string' });\n      registerOption('referrer_policy', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('language_load', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('inline', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('iframe_attrs', {\n        processor: 'object',\n        default: {}\n      });\n      registerOption('doctype', {\n        processor: 'string',\n        default: '<!DOCTYPE html>'\n      });\n      registerOption('document_base_url', {\n        processor: 'string',\n        default: editor.documentBaseUrl\n      });\n      registerOption('body_id', {\n        processor: bodyOptionProcessor(editor, 'tinymce'),\n        default: 'tinymce'\n      });\n      registerOption('body_class', {\n        processor: bodyOptionProcessor(editor),\n        default: ''\n      });\n      registerOption('content_security_policy', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('br_in_pre', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('forced_root_block', {\n        processor: value => {\n          const valid = isString(value) && isNotEmpty(value);\n          if (valid) {\n            return {\n              value,\n              valid\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be a non-empty string.'\n            };\n          }\n        },\n        default: 'p'\n      });\n      registerOption('forced_root_block_attrs', {\n        processor: 'object',\n        default: {}\n      });\n      registerOption('newline_behavior', {\n        processor: value => {\n          const valid = contains$2([\n            'block',\n            'linebreak',\n            'invert',\n            'default'\n          ], value);\n          return valid ? {\n            value,\n            valid\n          } : {\n            valid: false,\n            message: 'Must be one of: block, linebreak, invert or default.'\n          };\n        },\n        default: 'default'\n      });\n      registerOption('br_newline_selector', {\n        processor: 'string',\n        default: '.mce-toc h2,figcaption,caption'\n      });\n      registerOption('no_newline_selector', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('keep_styles', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('end_container_on_empty_block', {\n        processor: value => {\n          if (isBoolean(value)) {\n            return {\n              valid: true,\n              value\n            };\n          } else if (isString(value)) {\n            return {\n              valid: true,\n              value\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be boolean or a string'\n            };\n          }\n        },\n        default: 'blockquote'\n      });\n      registerOption('font_size_style_values', {\n        processor: 'string',\n        default: 'xx-small,x-small,small,medium,large,x-large,xx-large'\n      });\n      registerOption('font_size_legacy_values', {\n        processor: 'string',\n        default: 'xx-small,small,medium,large,x-large,xx-large,300%'\n      });\n      registerOption('font_size_classes', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('automatic_uploads', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('images_reuse_filename', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('images_replace_blob_uris', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('icons', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('icons_url', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('images_upload_url', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('images_upload_base_path', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('images_upload_credentials', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('images_upload_handler', { processor: 'function' });\n      registerOption('language', {\n        processor: 'string',\n        default: 'en'\n      });\n      registerOption('language_url', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('entity_encoding', {\n        processor: 'string',\n        default: 'named'\n      });\n      registerOption('indent', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('indent_before', {\n        processor: 'string',\n        default: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist'\n      });\n      registerOption('indent_after', {\n        processor: 'string',\n        default: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist'\n      });\n      registerOption('indent_use_margin', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('indentation', {\n        processor: 'string',\n        default: '40px'\n      });\n      registerOption('content_css', {\n        processor: value => {\n          const valid = value === false || isString(value) || isArrayOf(value, isString);\n          if (valid) {\n            if (isString(value)) {\n              return {\n                value: map$3(value.split(','), trim$3),\n                valid\n              };\n            } else if (isArray$1(value)) {\n              return {\n                value,\n                valid\n              };\n            } else if (value === false) {\n              return {\n                value: [],\n                valid\n              };\n            } else {\n              return {\n                value,\n                valid\n              };\n            }\n          } else {\n            return {\n              valid: false,\n              message: 'Must be false, a string or an array of strings.'\n            };\n          }\n        },\n        default: isInline(editor) ? [] : ['default']\n      });\n      registerOption('content_style', { processor: 'string' });\n      registerOption('content_css_cors', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('font_css', {\n        processor: value => {\n          const valid = isString(value) || isArrayOf(value, isString);\n          if (valid) {\n            const newValue = isArray$1(value) ? value : map$3(value.split(','), trim$3);\n            return {\n              value: newValue,\n              valid\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be a string or an array of strings.'\n            };\n          }\n        },\n        default: []\n      });\n      registerOption('inline_boundaries', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('inline_boundaries_selector', {\n        processor: 'string',\n        default: 'a[href],code,span.mce-annotation'\n      });\n      registerOption('object_resizing', {\n        processor: value => {\n          const valid = isBoolean(value) || isString(value);\n          if (valid) {\n            if (value === false || deviceDetection$1.isiPhone() || deviceDetection$1.isiPad()) {\n              return {\n                value: '',\n                valid\n              };\n            } else {\n              return {\n                value: value === true ? 'table,img,figure.image,div,video,iframe' : value,\n                valid\n              };\n            }\n          } else {\n            return {\n              valid: false,\n              message: 'Must be boolean or a string'\n            };\n          }\n        },\n        default: !isTouch\n      });\n      registerOption('resize_img_proportional', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('event_root', { processor: 'object' });\n      registerOption('service_message', { processor: 'string' });\n      registerOption('theme', {\n        processor: value => value === false || isString(value) || isFunction(value),\n        default: 'silver'\n      });\n      registerOption('theme_url', { processor: 'string' });\n      registerOption('formats', { processor: 'object' });\n      registerOption('format_empty_lines', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('format_noneditable_selector', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('preview_styles', {\n        processor: value => {\n          const valid = value === false || isString(value);\n          if (valid) {\n            return {\n              value: value === false ? '' : value,\n              valid\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be false or a string'\n            };\n          }\n        },\n        default: 'font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow'\n      });\n      registerOption('custom_ui_selector', {\n        processor: 'string',\n        default: ''\n      });\n      registerOption('hidden_input', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('submit_patch', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('encoding', { processor: 'string' });\n      registerOption('add_form_submit_trigger', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('add_unload_trigger', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('custom_undo_redo_levels', {\n        processor: 'number',\n        default: 0\n      });\n      registerOption('disable_nodechange', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('readonly', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('plugins', {\n        processor: 'string[]',\n        default: []\n      });\n      registerOption('external_plugins', { processor: 'object' });\n      registerOption('forced_plugins', { processor: 'string[]' });\n      registerOption('model', {\n        processor: 'string',\n        default: editor.hasPlugin('rtc') ? 'plugin' : 'dom'\n      });\n      registerOption('model_url', { processor: 'string' });\n      registerOption('block_unsupported_drop', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('visual', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('visual_table_class', {\n        processor: 'string',\n        default: 'mce-item-table'\n      });\n      registerOption('visual_anchor_class', {\n        processor: 'string',\n        default: 'mce-item-anchor'\n      });\n      registerOption('iframe_aria_text', {\n        processor: 'string',\n        default: 'Rich Text Area. Press ALT-0 for help.'\n      });\n      registerOption('setup', { processor: 'function' });\n      registerOption('init_instance_callback', { processor: 'function' });\n      registerOption('url_converter', {\n        processor: 'function',\n        default: editor.convertURL\n      });\n      registerOption('url_converter_scope', {\n        processor: 'object',\n        default: editor\n      });\n      registerOption('urlconverter_callback', { processor: 'function' });\n      registerOption('allow_conditional_comments', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('allow_html_data_urls', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('allow_svg_data_urls', { processor: 'boolean' });\n      registerOption('allow_html_in_named_anchor', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('allow_script_urls', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('allow_unsafe_link_target', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('convert_fonts_to_spans', {\n        processor: 'boolean',\n        default: true,\n        deprecated: true\n      });\n      registerOption('fix_list_elements', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('preserve_cdata', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('remove_trailing_brs', { processor: 'boolean' });\n      registerOption('inline_styles', {\n        processor: 'boolean',\n        default: true,\n        deprecated: true\n      });\n      registerOption('element_format', {\n        processor: 'string',\n        default: 'html'\n      });\n      registerOption('entities', { processor: 'string' });\n      registerOption('schema', {\n        processor: 'string',\n        default: 'html5'\n      });\n      registerOption('convert_urls', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('relative_urls', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('remove_script_host', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('custom_elements', { processor: 'string' });\n      registerOption('extended_valid_elements', { processor: 'string' });\n      registerOption('invalid_elements', { processor: 'string' });\n      registerOption('invalid_styles', { processor: stringOrObjectProcessor });\n      registerOption('valid_children', { processor: 'string' });\n      registerOption('valid_classes', { processor: stringOrObjectProcessor });\n      registerOption('valid_elements', { processor: 'string' });\n      registerOption('valid_styles', { processor: stringOrObjectProcessor });\n      registerOption('verify_html', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('auto_focus', { processor: value => isString(value) || value === true });\n      registerOption('browser_spellcheck', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('protect', { processor: 'array' });\n      registerOption('images_file_types', {\n        processor: 'string',\n        default: 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp'\n      });\n      registerOption('deprecation_warnings', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('a11y_advanced_options', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('api_key', { processor: 'string' });\n      registerOption('paste_block_drop', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('paste_data_images', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('paste_preprocess', { processor: 'function' });\n      registerOption('paste_postprocess', { processor: 'function' });\n      registerOption('paste_webkit_styles', {\n        processor: 'string',\n        default: 'none'\n      });\n      registerOption('paste_remove_styles_if_webkit', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('paste_merge_formats', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('smart_paste', {\n        processor: 'boolean',\n        default: true\n      });\n      registerOption('paste_as_text', {\n        processor: 'boolean',\n        default: false\n      });\n      registerOption('paste_tab_spaces', {\n        processor: 'number',\n        default: 4\n      });\n      registerOption('text_patterns', {\n        processor: value => {\n          if (isArrayOf(value, isObject) || value === false) {\n            const patterns = value === false ? [] : value;\n            return {\n              value: fromRawPatterns(patterns),\n              valid: true\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be an array of objects or false.'\n            };\n          }\n        },\n        default: [\n          {\n            start: '*',\n            end: '*',\n            format: 'italic'\n          },\n          {\n            start: '**',\n            end: '**',\n            format: 'bold'\n          },\n          {\n            start: '#',\n            format: 'h1'\n          },\n          {\n            start: '##',\n            format: 'h2'\n          },\n          {\n            start: '###',\n            format: 'h3'\n          },\n          {\n            start: '####',\n            format: 'h4'\n          },\n          {\n            start: '#####',\n            format: 'h5'\n          },\n          {\n            start: '######',\n            format: 'h6'\n          },\n          {\n            start: '1. ',\n            cmd: 'InsertOrderedList'\n          },\n          {\n            start: '* ',\n            cmd: 'InsertUnorderedList'\n          },\n          {\n            start: '- ',\n            cmd: 'InsertUnorderedList'\n          }\n        ]\n      });\n      registerOption('text_patterns_lookup', {\n        processor: value => {\n          if (isFunction(value)) {\n            return {\n              value: fromRawPatternsLookup(value),\n              valid: true\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be a single function'\n            };\n          }\n        },\n        default: _ctx => []\n      });\n      registerOption('noneditable_class', {\n        processor: 'string',\n        default: 'mceNonEditable'\n      });\n      registerOption('editable_class', {\n        processor: 'string',\n        default: 'mceEditable'\n      });\n      registerOption('noneditable_regexp', {\n        processor: value => {\n          if (isArrayOf(value, isRegExp)) {\n            return {\n              value,\n              valid: true\n            };\n          } else if (isRegExp(value)) {\n            return {\n              value: [value],\n              valid: true\n            };\n          } else {\n            return {\n              valid: false,\n              message: 'Must be a RegExp or an array of RegExp.'\n            };\n          }\n        },\n        default: []\n      });\n      registerOption('table_tab_navigation', {\n        processor: 'boolean',\n        default: true\n      });\n      editor.on('ScriptsLoaded', () => {\n        registerOption('directionality', {\n          processor: 'string',\n          default: I18n.isRtl() ? 'rtl' : undefined\n        });\n        registerOption('placeholder', {\n          processor: 'string',\n          default: DOM$a.getAttrib(editor.getElement(), 'placeholder')\n        });\n      });\n    };\n    const getIframeAttrs = option('iframe_attrs');\n    const getDocType = option('doctype');\n    const getDocumentBaseUrl = option('document_base_url');\n    const getBodyId = option('body_id');\n    const getBodyClass = option('body_class');\n    const getContentSecurityPolicy = option('content_security_policy');\n    const shouldPutBrInPre$1 = option('br_in_pre');\n    const getForcedRootBlock = option('forced_root_block');\n    const getForcedRootBlockAttrs = option('forced_root_block_attrs');\n    const getNewlineBehavior = option('newline_behavior');\n    const getBrNewLineSelector = option('br_newline_selector');\n    const getNoNewLineSelector = option('no_newline_selector');\n    const shouldKeepStyles = option('keep_styles');\n    const shouldEndContainerOnEmptyBlock = option('end_container_on_empty_block');\n    const isAutomaticUploadsEnabled = option('automatic_uploads');\n    const shouldReuseFileName = option('images_reuse_filename');\n    const shouldReplaceBlobUris = option('images_replace_blob_uris');\n    const getIconPackName = option('icons');\n    const getIconsUrl = option('icons_url');\n    const getImageUploadUrl = option('images_upload_url');\n    const getImageUploadBasePath = option('images_upload_base_path');\n    const getImagesUploadCredentials = option('images_upload_credentials');\n    const getImagesUploadHandler = option('images_upload_handler');\n    const shouldUseContentCssCors = option('content_css_cors');\n    const getReferrerPolicy = option('referrer_policy');\n    const getLanguageCode = option('language');\n    const getLanguageUrl = option('language_url');\n    const shouldIndentUseMargin = option('indent_use_margin');\n    const getIndentation = option('indentation');\n    const getContentCss = option('content_css');\n    const getContentStyle = option('content_style');\n    const getFontCss = option('font_css');\n    const getDirectionality = option('directionality');\n    const getInlineBoundarySelector = option('inline_boundaries_selector');\n    const getObjectResizing = option('object_resizing');\n    const getResizeImgProportional = option('resize_img_proportional');\n    const getPlaceholder = option('placeholder');\n    const getEventRoot = option('event_root');\n    const getServiceMessage = option('service_message');\n    const getTheme = option('theme');\n    const getThemeUrl = option('theme_url');\n    const getModel = option('model');\n    const getModelUrl = option('model_url');\n    const isInlineBoundariesEnabled = option('inline_boundaries');\n    const getFormats = option('formats');\n    const getPreviewStyles = option('preview_styles');\n    const canFormatEmptyLines = option('format_empty_lines');\n    const getFormatNoneditableSelector = option('format_noneditable_selector');\n    const getCustomUiSelector = option('custom_ui_selector');\n    const isInline = option('inline');\n    const hasHiddenInput = option('hidden_input');\n    const shouldPatchSubmit = option('submit_patch');\n    const shouldAddFormSubmitTrigger = option('add_form_submit_trigger');\n    const shouldAddUnloadTrigger = option('add_unload_trigger');\n    const getCustomUndoRedoLevels = option('custom_undo_redo_levels');\n    const shouldDisableNodeChange = option('disable_nodechange');\n    const isReadOnly$1 = option('readonly');\n    const hasContentCssCors = option('content_css_cors');\n    const getPlugins = option('plugins');\n    const getExternalPlugins$1 = option('external_plugins');\n    const shouldBlockUnsupportedDrop = option('block_unsupported_drop');\n    const isVisualAidsEnabled = option('visual');\n    const getVisualAidsTableClass = option('visual_table_class');\n    const getVisualAidsAnchorClass = option('visual_anchor_class');\n    const getIframeAriaText = option('iframe_aria_text');\n    const getSetupCallback = option('setup');\n    const getInitInstanceCallback = option('init_instance_callback');\n    const getUrlConverterCallback = option('urlconverter_callback');\n    const getAutoFocus = option('auto_focus');\n    const shouldBrowserSpellcheck = option('browser_spellcheck');\n    const getProtect = option('protect');\n    const shouldPasteBlockDrop = option('paste_block_drop');\n    const shouldPasteDataImages = option('paste_data_images');\n    const getPastePreProcess = option('paste_preprocess');\n    const getPastePostProcess = option('paste_postprocess');\n    const getPasteWebkitStyles = option('paste_webkit_styles');\n    const shouldPasteRemoveWebKitStyles = option('paste_remove_styles_if_webkit');\n    const shouldPasteMergeFormats = option('paste_merge_formats');\n    const isSmartPasteEnabled = option('smart_paste');\n    const isPasteAsTextEnabled = option('paste_as_text');\n    const getPasteTabSpaces = option('paste_tab_spaces');\n    const shouldAllowHtmlDataUrls = option('allow_html_data_urls');\n    const getTextPatterns = option('text_patterns');\n    const getTextPatternsLookup = option('text_patterns_lookup');\n    const getNonEditableClass = option('noneditable_class');\n    const getEditableClass = option('editable_class');\n    const getNonEditableRegExps = option('noneditable_regexp');\n    const shouldPreserveCData = option('preserve_cdata');\n    const hasTextPatternsLookup = editor => editor.options.isSet('text_patterns_lookup');\n    const getFontStyleValues = editor => Tools.explode(editor.options.get('font_size_style_values'));\n    const getFontSizeClasses = editor => Tools.explode(editor.options.get('font_size_classes'));\n    const isEncodingXml = editor => editor.options.get('encoding') === 'xml';\n    const getAllowedImageFileTypes = editor => Tools.explode(editor.options.get('images_file_types'));\n    const hasTableTabNavigation = option('table_tab_navigation');\n\n    const isElement$3 = isElement$6;\n    const isText$5 = isText$a;\n    const removeNode$1 = node => {\n      const parentNode = node.parentNode;\n      if (parentNode) {\n        parentNode.removeChild(node);\n      }\n    };\n    const trimCount = text => {\n      const trimmedText = trim$1(text);\n      return {\n        count: text.length - trimmedText.length,\n        text: trimmedText\n      };\n    };\n    const deleteZwspChars = caretContainer => {\n      let idx;\n      while ((idx = caretContainer.data.lastIndexOf(ZWSP$1)) !== -1) {\n        caretContainer.deleteData(idx, 1);\n      }\n    };\n    const removeUnchanged = (caretContainer, pos) => {\n      remove$4(caretContainer);\n      return pos;\n    };\n    const removeTextAndReposition = (caretContainer, pos) => {\n      const before = trimCount(caretContainer.data.substr(0, pos.offset()));\n      const after = trimCount(caretContainer.data.substr(pos.offset()));\n      const text = before.text + after.text;\n      if (text.length > 0) {\n        deleteZwspChars(caretContainer);\n        return CaretPosition(caretContainer, pos.offset() - before.count);\n      } else {\n        return pos;\n      }\n    };\n    const removeElementAndReposition = (caretContainer, pos) => {\n      const parentNode = pos.container();\n      const newPosition = indexOf$1(from(parentNode.childNodes), caretContainer).map(index => {\n        return index < pos.offset() ? CaretPosition(parentNode, pos.offset() - 1) : pos;\n      }).getOr(pos);\n      remove$4(caretContainer);\n      return newPosition;\n    };\n    const removeTextCaretContainer = (caretContainer, pos) => isText$5(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n    const removeElementCaretContainer = (caretContainer, pos) => pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n    const removeAndReposition = (container, pos) => CaretPosition.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);\n    const remove$4 = caretContainerNode => {\n      if (isElement$3(caretContainerNode) && isCaretContainer$2(caretContainerNode)) {\n        if (hasContent(caretContainerNode)) {\n          caretContainerNode.removeAttribute('data-mce-caret');\n        } else {\n          removeNode$1(caretContainerNode);\n        }\n      }\n      if (isText$5(caretContainerNode)) {\n        deleteZwspChars(caretContainerNode);\n        if (caretContainerNode.data.length === 0) {\n          removeNode$1(caretContainerNode);\n        }\n      }\n    };\n\n    const isContentEditableFalse$7 = isContentEditableFalse$a;\n    const isMedia$1 = isMedia$2;\n    const isTableCell$1 = isTableCell$3;\n    const inlineFakeCaretSelector = '*[contentEditable=false],video,audio,embed,object';\n    const getAbsoluteClientRect = (root, element, before) => {\n      const clientRect = collapse(element.getBoundingClientRect(), before);\n      let scrollX;\n      let scrollY;\n      if (root.tagName === 'BODY') {\n        const docElm = root.ownerDocument.documentElement;\n        scrollX = root.scrollLeft || docElm.scrollLeft;\n        scrollY = root.scrollTop || docElm.scrollTop;\n      } else {\n        const rootRect = root.getBoundingClientRect();\n        scrollX = root.scrollLeft - rootRect.left;\n        scrollY = root.scrollTop - rootRect.top;\n      }\n      clientRect.left += scrollX;\n      clientRect.right += scrollX;\n      clientRect.top += scrollY;\n      clientRect.bottom += scrollY;\n      clientRect.width = 1;\n      let margin = element.offsetWidth - element.clientWidth;\n      if (margin > 0) {\n        if (before) {\n          margin *= -1;\n        }\n        clientRect.left += margin;\n        clientRect.right += margin;\n      }\n      return clientRect;\n    };\n    const trimInlineCaretContainers = root => {\n      var _a, _b;\n      const fakeCaretTargetNodes = descendants(SugarElement.fromDom(root), inlineFakeCaretSelector);\n      for (let i = 0; i < fakeCaretTargetNodes.length; i++) {\n        const node = fakeCaretTargetNodes[i].dom;\n        let sibling = node.previousSibling;\n        if (endsWithCaretContainer$1(sibling)) {\n          const data = sibling.data;\n          if (data.length === 1) {\n            (_a = sibling.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(sibling);\n          } else {\n            sibling.deleteData(data.length - 1, 1);\n          }\n        }\n        sibling = node.nextSibling;\n        if (startsWithCaretContainer$1(sibling)) {\n          const data = sibling.data;\n          if (data.length === 1) {\n            (_b = sibling.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(sibling);\n          } else {\n            sibling.deleteData(0, 1);\n          }\n        }\n      }\n    };\n    const FakeCaret = (editor, root, isBlock, hasFocus) => {\n      const lastVisualCaret = value$2();\n      let cursorInterval;\n      let caretContainerNode;\n      const caretBlock = getForcedRootBlock(editor);\n      const dom = editor.dom;\n      const show = (before, element) => {\n        let rng;\n        hide();\n        if (isTableCell$1(element)) {\n          return null;\n        }\n        if (isBlock(element)) {\n          const caretContainer = insertBlock(caretBlock, element, before);\n          const clientRect = getAbsoluteClientRect(root, element, before);\n          dom.setStyle(caretContainer, 'top', clientRect.top);\n          caretContainerNode = caretContainer;\n          const caret = dom.create('div', {\n            'class': 'mce-visual-caret',\n            'data-mce-bogus': 'all'\n          });\n          dom.setStyles(caret, { ...clientRect });\n          dom.add(root, caret);\n          lastVisualCaret.set({\n            caret,\n            element,\n            before\n          });\n          if (before) {\n            dom.addClass(caret, 'mce-visual-caret-before');\n          }\n          startBlink();\n          rng = element.ownerDocument.createRange();\n          rng.setStart(caretContainer, 0);\n          rng.setEnd(caretContainer, 0);\n        } else {\n          caretContainerNode = insertInline$1(element, before);\n          rng = element.ownerDocument.createRange();\n          if (isInlineFakeCaretTarget(caretContainerNode.nextSibling)) {\n            rng.setStart(caretContainerNode, 0);\n            rng.setEnd(caretContainerNode, 0);\n          } else {\n            rng.setStart(caretContainerNode, 1);\n            rng.setEnd(caretContainerNode, 1);\n          }\n          return rng;\n        }\n        return rng;\n      };\n      const hide = () => {\n        trimInlineCaretContainers(root);\n        if (caretContainerNode) {\n          remove$4(caretContainerNode);\n          caretContainerNode = null;\n        }\n        lastVisualCaret.on(caretState => {\n          dom.remove(caretState.caret);\n          lastVisualCaret.clear();\n        });\n        if (cursorInterval) {\n          clearInterval(cursorInterval);\n          cursorInterval = undefined;\n        }\n      };\n      const startBlink = () => {\n        cursorInterval = setInterval(() => {\n          lastVisualCaret.on(caretState => {\n            if (hasFocus()) {\n              dom.toggleClass(caretState.caret, 'mce-visual-caret-hidden');\n            } else {\n              dom.addClass(caretState.caret, 'mce-visual-caret-hidden');\n            }\n          });\n        }, 500);\n      };\n      const reposition = () => {\n        lastVisualCaret.on(caretState => {\n          const clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before);\n          dom.setStyles(caretState.caret, { ...clientRect });\n        });\n      };\n      const destroy = () => clearInterval(cursorInterval);\n      const getCss = () => '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';\n      return {\n        show,\n        hide,\n        getCss,\n        reposition,\n        destroy\n      };\n    };\n    const isFakeCaretTableBrowser = () => Env.browser.isFirefox();\n    const isInlineFakeCaretTarget = node => isContentEditableFalse$7(node) || isMedia$1(node);\n    const isFakeCaretTarget = node => isInlineFakeCaretTarget(node) || isTable$2(node) && isFakeCaretTableBrowser();\n\n    const isContentEditableTrue$1 = isContentEditableTrue$3;\n    const isContentEditableFalse$6 = isContentEditableFalse$a;\n    const isMedia = isMedia$2;\n    const isBlockLike = matchStyleValues('display', 'block table table-cell table-caption list-item');\n    const isCaretContainer = isCaretContainer$2;\n    const isCaretContainerBlock = isCaretContainerBlock$1;\n    const isElement$2 = isElement$6;\n    const isText$4 = isText$a;\n    const isCaretCandidate$1 = isCaretCandidate$3;\n    const isForwards = direction => direction > 0;\n    const isBackwards = direction => direction < 0;\n    const skipCaretContainers = (walk, shallow) => {\n      let node;\n      while (node = walk(shallow)) {\n        if (!isCaretContainerBlock(node)) {\n          return node;\n        }\n      }\n      return null;\n    };\n    const findNode = (node, direction, predicateFn, rootNode, shallow) => {\n      const walker = new DomTreeWalker(node, rootNode);\n      const isCefOrCaretContainer = isContentEditableFalse$6(node) || isCaretContainerBlock(node);\n      let tempNode;\n      if (isBackwards(direction)) {\n        if (isCefOrCaretContainer) {\n          tempNode = skipCaretContainers(walker.prev.bind(walker), true);\n          if (predicateFn(tempNode)) {\n            return tempNode;\n          }\n        }\n        while (tempNode = skipCaretContainers(walker.prev.bind(walker), shallow)) {\n          if (predicateFn(tempNode)) {\n            return tempNode;\n          }\n        }\n      }\n      if (isForwards(direction)) {\n        if (isCefOrCaretContainer) {\n          tempNode = skipCaretContainers(walker.next.bind(walker), true);\n          if (predicateFn(tempNode)) {\n            return tempNode;\n          }\n        }\n        while (tempNode = skipCaretContainers(walker.next.bind(walker), shallow)) {\n          if (predicateFn(tempNode)) {\n            return tempNode;\n          }\n        }\n      }\n      return null;\n    };\n    const getEditingHost = (node, rootNode) => {\n      const isCETrue = node => isContentEditableTrue$1(node.dom);\n      const isRoot = node => node.dom === rootNode;\n      return ancestor$3(SugarElement.fromDom(node), isCETrue, isRoot).map(elm => elm.dom).getOr(rootNode);\n    };\n    const getParentBlock$3 = (node, rootNode) => {\n      while (node && node !== rootNode) {\n        if (isBlockLike(node)) {\n          return node;\n        }\n        node = node.parentNode;\n      }\n      return null;\n    };\n    const isInSameBlock = (caretPosition1, caretPosition2, rootNode) => getParentBlock$3(caretPosition1.container(), rootNode) === getParentBlock$3(caretPosition2.container(), rootNode);\n    const getChildNodeAtRelativeOffset = (relativeOffset, caretPosition) => {\n      if (!caretPosition) {\n        return Optional.none();\n      }\n      const container = caretPosition.container();\n      const offset = caretPosition.offset();\n      if (!isElement$2(container)) {\n        return Optional.none();\n      }\n      return Optional.from(container.childNodes[offset + relativeOffset]);\n    };\n    const beforeAfter = (before, node) => {\n      var _a;\n      const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n      const range = doc.createRange();\n      if (before) {\n        range.setStartBefore(node);\n        range.setEndBefore(node);\n      } else {\n        range.setStartAfter(node);\n        range.setEndAfter(node);\n      }\n      return range;\n    };\n    const isNodesInSameBlock = (root, node1, node2) => getParentBlock$3(node1, root) === getParentBlock$3(node2, root);\n    const lean = (left, root, node) => {\n      const siblingName = left ? 'previousSibling' : 'nextSibling';\n      let tempNode = node;\n      while (tempNode && tempNode !== root) {\n        let sibling = tempNode[siblingName];\n        if (sibling && isCaretContainer(sibling)) {\n          sibling = sibling[siblingName];\n        }\n        if (isContentEditableFalse$6(sibling) || isMedia(sibling)) {\n          if (isNodesInSameBlock(root, sibling, tempNode)) {\n            return sibling;\n          }\n          break;\n        }\n        if (isCaretCandidate$1(sibling)) {\n          break;\n        }\n        tempNode = tempNode.parentNode;\n      }\n      return null;\n    };\n    const before$2 = curry(beforeAfter, true);\n    const after$2 = curry(beforeAfter, false);\n    const normalizeRange = (direction, root, range) => {\n      let node;\n      const leanLeft = curry(lean, true, root);\n      const leanRight = curry(lean, false, root);\n      const container = range.startContainer;\n      const offset = range.startOffset;\n      if (isCaretContainerBlock$1(container)) {\n        const block = isText$4(container) ? container.parentNode : container;\n        const location = block.getAttribute('data-mce-caret');\n        if (location === 'before') {\n          node = block.nextSibling;\n          if (isFakeCaretTarget(node)) {\n            return before$2(node);\n          }\n        }\n        if (location === 'after') {\n          node = block.previousSibling;\n          if (isFakeCaretTarget(node)) {\n            return after$2(node);\n          }\n        }\n      }\n      if (!range.collapsed) {\n        return range;\n      }\n      if (isText$a(container)) {\n        if (isCaretContainer(container)) {\n          if (direction === 1) {\n            node = leanRight(container);\n            if (node) {\n              return before$2(node);\n            }\n            node = leanLeft(container);\n            if (node) {\n              return after$2(node);\n            }\n          }\n          if (direction === -1) {\n            node = leanLeft(container);\n            if (node) {\n              return after$2(node);\n            }\n            node = leanRight(container);\n            if (node) {\n              return before$2(node);\n            }\n          }\n          return range;\n        }\n        if (endsWithCaretContainer$1(container) && offset >= container.data.length - 1) {\n          if (direction === 1) {\n            node = leanRight(container);\n            if (node) {\n              return before$2(node);\n            }\n          }\n          return range;\n        }\n        if (startsWithCaretContainer$1(container) && offset <= 1) {\n          if (direction === -1) {\n            node = leanLeft(container);\n            if (node) {\n              return after$2(node);\n            }\n          }\n          return range;\n        }\n        if (offset === container.data.length) {\n          node = leanRight(container);\n          if (node) {\n            return before$2(node);\n          }\n          return range;\n        }\n        if (offset === 0) {\n          node = leanLeft(container);\n          if (node) {\n            return after$2(node);\n          }\n          return range;\n        }\n      }\n      return range;\n    };\n    const getRelativeCefElm = (forward, caretPosition) => getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition).filter(isContentEditableFalse$6);\n    const getNormalizedRangeEndPoint = (direction, root, range) => {\n      const normalizedRange = normalizeRange(direction, root, range);\n      return direction === -1 ? CaretPosition.fromRangeStart(normalizedRange) : CaretPosition.fromRangeEnd(normalizedRange);\n    };\n    const getElementFromPosition = pos => Optional.from(pos.getNode()).map(SugarElement.fromDom);\n    const getElementFromPrevPosition = pos => Optional.from(pos.getNode(true)).map(SugarElement.fromDom);\n    const getVisualCaretPosition = (walkFn, caretPosition) => {\n      let pos = caretPosition;\n      while (pos = walkFn(pos)) {\n        if (pos.isVisible()) {\n          return pos;\n        }\n      }\n      return pos;\n    };\n    const isMoveInsideSameBlock = (from, to) => {\n      const inSameBlock = isInSameBlock(from, to);\n      if (!inSameBlock && isBr$6(from.getNode())) {\n        return true;\n      }\n      return inSameBlock;\n    };\n\n    var HDirection;\n    (function (HDirection) {\n      HDirection[HDirection['Backwards'] = -1] = 'Backwards';\n      HDirection[HDirection['Forwards'] = 1] = 'Forwards';\n    }(HDirection || (HDirection = {})));\n    const isContentEditableFalse$5 = isContentEditableFalse$a;\n    const isText$3 = isText$a;\n    const isElement$1 = isElement$6;\n    const isBr$2 = isBr$6;\n    const isCaretCandidate = isCaretCandidate$3;\n    const isAtomic = isAtomic$1;\n    const isEditableCaretCandidate = isEditableCaretCandidate$1;\n    const getParents$3 = (node, root) => {\n      const parents = [];\n      let tempNode = node;\n      while (tempNode && tempNode !== root) {\n        parents.push(tempNode);\n        tempNode = tempNode.parentNode;\n      }\n      return parents;\n    };\n    const nodeAtIndex = (container, offset) => {\n      if (container.hasChildNodes() && offset < container.childNodes.length) {\n        return container.childNodes[offset];\n      }\n      return null;\n    };\n    const getCaretCandidatePosition = (direction, node) => {\n      if (isForwards(direction)) {\n        if (isCaretCandidate(node.previousSibling) && !isText$3(node.previousSibling)) {\n          return CaretPosition.before(node);\n        }\n        if (isText$3(node)) {\n          return CaretPosition(node, 0);\n        }\n      }\n      if (isBackwards(direction)) {\n        if (isCaretCandidate(node.nextSibling) && !isText$3(node.nextSibling)) {\n          return CaretPosition.after(node);\n        }\n        if (isText$3(node)) {\n          return CaretPosition(node, node.data.length);\n        }\n      }\n      if (isBackwards(direction)) {\n        if (isBr$2(node)) {\n          return CaretPosition.before(node);\n        }\n        return CaretPosition.after(node);\n      }\n      return CaretPosition.before(node);\n    };\n    const moveForwardFromBr = (root, nextNode) => {\n      const nextSibling = nextNode.nextSibling;\n      if (nextSibling && isCaretCandidate(nextSibling)) {\n        if (isText$3(nextSibling)) {\n          return CaretPosition(nextSibling, 0);\n        } else {\n          return CaretPosition.before(nextSibling);\n        }\n      } else {\n        return findCaretPosition$1(HDirection.Forwards, CaretPosition.after(nextNode), root);\n      }\n    };\n    const findCaretPosition$1 = (direction, startPos, root) => {\n      let node;\n      let nextNode;\n      let innerNode;\n      let caretPosition;\n      if (!isElement$1(root) || !startPos) {\n        return null;\n      }\n      if (startPos.isEqual(CaretPosition.after(root)) && root.lastChild) {\n        caretPosition = CaretPosition.after(root.lastChild);\n        if (isBackwards(direction) && isCaretCandidate(root.lastChild) && isElement$1(root.lastChild)) {\n          return isBr$2(root.lastChild) ? CaretPosition.before(root.lastChild) : caretPosition;\n        }\n      } else {\n        caretPosition = startPos;\n      }\n      const container = caretPosition.container();\n      let offset = caretPosition.offset();\n      if (isText$3(container)) {\n        if (isBackwards(direction) && offset > 0) {\n          return CaretPosition(container, --offset);\n        }\n        if (isForwards(direction) && offset < container.length) {\n          return CaretPosition(container, ++offset);\n        }\n        node = container;\n      } else {\n        if (isBackwards(direction) && offset > 0) {\n          nextNode = nodeAtIndex(container, offset - 1);\n          if (isCaretCandidate(nextNode)) {\n            if (!isAtomic(nextNode)) {\n              innerNode = findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n              if (innerNode) {\n                if (isText$3(innerNode)) {\n                  return CaretPosition(innerNode, innerNode.data.length);\n                }\n                return CaretPosition.after(innerNode);\n              }\n            }\n            if (isText$3(nextNode)) {\n              return CaretPosition(nextNode, nextNode.data.length);\n            }\n            return CaretPosition.before(nextNode);\n          }\n        }\n        if (isForwards(direction) && offset < container.childNodes.length) {\n          nextNode = nodeAtIndex(container, offset);\n          if (isCaretCandidate(nextNode)) {\n            if (isBr$2(nextNode)) {\n              return moveForwardFromBr(root, nextNode);\n            }\n            if (!isAtomic(nextNode)) {\n              innerNode = findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n              if (innerNode) {\n                if (isText$3(innerNode)) {\n                  return CaretPosition(innerNode, 0);\n                }\n                return CaretPosition.before(innerNode);\n              }\n            }\n            if (isText$3(nextNode)) {\n              return CaretPosition(nextNode, 0);\n            }\n            return CaretPosition.after(nextNode);\n          }\n        }\n        node = nextNode ? nextNode : caretPosition.getNode();\n      }\n      if (node && (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart())) {\n        node = findNode(node, direction, always, root, true);\n        if (isEditableCaretCandidate(node, root)) {\n          return getCaretCandidatePosition(direction, node);\n        }\n      }\n      nextNode = node ? findNode(node, direction, isEditableCaretCandidate, root) : node;\n      const rootContentEditableFalseElm = last$2(filter$5(getParents$3(container, root), isContentEditableFalse$5));\n      if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\n        if (isForwards(direction)) {\n          caretPosition = CaretPosition.after(rootContentEditableFalseElm);\n        } else {\n          caretPosition = CaretPosition.before(rootContentEditableFalseElm);\n        }\n        return caretPosition;\n      }\n      if (nextNode) {\n        return getCaretCandidatePosition(direction, nextNode);\n      }\n      return null;\n    };\n    const CaretWalker = root => ({\n      next: caretPosition => {\n        return findCaretPosition$1(HDirection.Forwards, caretPosition, root);\n      },\n      prev: caretPosition => {\n        return findCaretPosition$1(HDirection.Backwards, caretPosition, root);\n      }\n    });\n\n    const walkToPositionIn = (forward, root, start) => {\n      const position = forward ? CaretPosition.before(start) : CaretPosition.after(start);\n      return fromPosition(forward, root, position);\n    };\n    const afterElement = node => isBr$6(node) ? CaretPosition.before(node) : CaretPosition.after(node);\n    const isBeforeOrStart = position => {\n      if (CaretPosition.isTextPosition(position)) {\n        return position.offset() === 0;\n      } else {\n        return isCaretCandidate$3(position.getNode());\n      }\n    };\n    const isAfterOrEnd = position => {\n      if (CaretPosition.isTextPosition(position)) {\n        const container = position.container();\n        return position.offset() === container.data.length;\n      } else {\n        return isCaretCandidate$3(position.getNode(true));\n      }\n    };\n    const isBeforeAfterSameElement = (from, to) => !CaretPosition.isTextPosition(from) && !CaretPosition.isTextPosition(to) && from.getNode() === to.getNode(true);\n    const isAtBr = position => !CaretPosition.isTextPosition(position) && isBr$6(position.getNode());\n    const shouldSkipPosition = (forward, from, to) => {\n      if (forward) {\n        return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);\n      } else {\n        return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);\n      }\n    };\n    const fromPosition = (forward, root, pos) => {\n      const walker = CaretWalker(root);\n      return Optional.from(forward ? walker.next(pos) : walker.prev(pos));\n    };\n    const navigate = (forward, root, from) => fromPosition(forward, root, from).bind(to => {\n      if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {\n        return fromPosition(forward, root, to);\n      } else {\n        return Optional.some(to);\n      }\n    });\n    const navigateIgnore = (forward, root, from, ignoreFilter) => navigate(forward, root, from).bind(pos => ignoreFilter(pos) ? navigateIgnore(forward, root, pos, ignoreFilter) : Optional.some(pos));\n    const positionIn = (forward, element) => {\n      const startNode = forward ? element.firstChild : element.lastChild;\n      if (isText$a(startNode)) {\n        return Optional.some(CaretPosition(startNode, forward ? 0 : startNode.data.length));\n      } else if (startNode) {\n        if (isCaretCandidate$3(startNode)) {\n          return Optional.some(forward ? CaretPosition.before(startNode) : afterElement(startNode));\n        } else {\n          return walkToPositionIn(forward, element, startNode);\n        }\n      } else {\n        return Optional.none();\n      }\n    };\n    const nextPosition = curry(fromPosition, true);\n    const prevPosition = curry(fromPosition, false);\n    const firstPositionIn = curry(positionIn, true);\n    const lastPositionIn = curry(positionIn, false);\n\n    const CARET_ID = '_mce_caret';\n    const isCaretNode = node => isElement$6(node) && node.id === CARET_ID;\n    const getParentCaretContainer = (body, node) => {\n      let currentNode = node;\n      while (currentNode && currentNode !== body) {\n        if (isCaretNode(currentNode)) {\n          return currentNode;\n        }\n        currentNode = currentNode.parentNode;\n      }\n      return null;\n    };\n\n    const isStringPathBookmark = bookmark => isString(bookmark.start);\n    const isRangeBookmark = bookmark => has$2(bookmark, 'rng');\n    const isIdBookmark = bookmark => has$2(bookmark, 'id');\n    const isIndexBookmark = bookmark => has$2(bookmark, 'name');\n    const isPathBookmark = bookmark => Tools.isArray(bookmark.start);\n\n    const isForwardBookmark = bookmark => !isIndexBookmark(bookmark) && isBoolean(bookmark.forward) ? bookmark.forward : true;\n    const addBogus = (dom, node) => {\n      if (isElement$6(node) && dom.isBlock(node) && !node.innerHTML) {\n        node.innerHTML = '<br data-mce-bogus=\"1\" />';\n      }\n      return node;\n    };\n    const resolveCaretPositionBookmark = (dom, bookmark) => {\n      const startPos = Optional.from(resolve$1(dom.getRoot(), bookmark.start));\n      const endPos = Optional.from(resolve$1(dom.getRoot(), bookmark.end));\n      return lift2(startPos, endPos, (start, end) => {\n        const range = dom.createRng();\n        range.setStart(start.container(), start.offset());\n        range.setEnd(end.container(), end.offset());\n        return {\n          range,\n          forward: isForwardBookmark(bookmark)\n        };\n      });\n    };\n    const insertZwsp = (node, rng) => {\n      var _a;\n      const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n      const textNode = doc.createTextNode(ZWSP$1);\n      node.appendChild(textNode);\n      rng.setStart(textNode, 0);\n      rng.setEnd(textNode, 0);\n    };\n    const isEmpty$1 = node => !node.hasChildNodes();\n    const tryFindRangePosition = (node, rng) => lastPositionIn(node).fold(never, pos => {\n      rng.setStart(pos.container(), pos.offset());\n      rng.setEnd(pos.container(), pos.offset());\n      return true;\n    });\n    const padEmptyCaretContainer = (root, node, rng) => {\n      if (isEmpty$1(node) && getParentCaretContainer(root, node)) {\n        insertZwsp(node, rng);\n        return true;\n      } else {\n        return false;\n      }\n    };\n    const setEndPoint = (dom, start, bookmark, rng) => {\n      const point = bookmark[start ? 'start' : 'end'];\n      const root = dom.getRoot();\n      if (point) {\n        let node = root;\n        let offset = point[0];\n        for (let i = point.length - 1; node && i >= 1; i--) {\n          const children = node.childNodes;\n          if (padEmptyCaretContainer(root, node, rng)) {\n            return true;\n          }\n          if (point[i] > children.length - 1) {\n            if (padEmptyCaretContainer(root, node, rng)) {\n              return true;\n            }\n            return tryFindRangePosition(node, rng);\n          }\n          node = children[point[i]];\n        }\n        if (isText$a(node)) {\n          offset = Math.min(point[0], node.data.length);\n        }\n        if (isElement$6(node)) {\n          offset = Math.min(point[0], node.childNodes.length);\n        }\n        if (start) {\n          rng.setStart(node, offset);\n        } else {\n          rng.setEnd(node, offset);\n        }\n      }\n      return true;\n    };\n    const isValidTextNode = node => isText$a(node) && node.data.length > 0;\n    const restoreEndPoint = (dom, suffix, bookmark) => {\n      const marker = dom.get(bookmark.id + '_' + suffix);\n      const markerParent = marker === null || marker === void 0 ? void 0 : marker.parentNode;\n      const keep = bookmark.keep;\n      if (marker && markerParent) {\n        let container;\n        let offset;\n        if (suffix === 'start') {\n          if (!keep) {\n            container = markerParent;\n            offset = dom.nodeIndex(marker);\n          } else {\n            if (marker.hasChildNodes()) {\n              container = marker.firstChild;\n              offset = 1;\n            } else if (isValidTextNode(marker.nextSibling)) {\n              container = marker.nextSibling;\n              offset = 0;\n            } else if (isValidTextNode(marker.previousSibling)) {\n              container = marker.previousSibling;\n              offset = marker.previousSibling.data.length;\n            } else {\n              container = markerParent;\n              offset = dom.nodeIndex(marker) + 1;\n            }\n          }\n        } else {\n          if (!keep) {\n            container = markerParent;\n            offset = dom.nodeIndex(marker);\n          } else {\n            if (marker.hasChildNodes()) {\n              container = marker.firstChild;\n              offset = 1;\n            } else if (isValidTextNode(marker.previousSibling)) {\n              container = marker.previousSibling;\n              offset = marker.previousSibling.data.length;\n            } else {\n              container = markerParent;\n              offset = dom.nodeIndex(marker);\n            }\n          }\n        }\n        if (!keep) {\n          const prev = marker.previousSibling;\n          const next = marker.nextSibling;\n          Tools.each(Tools.grep(marker.childNodes), node => {\n            if (isText$a(node)) {\n              node.data = node.data.replace(/\\uFEFF/g, '');\n            }\n          });\n          let otherMarker;\n          while (otherMarker = dom.get(bookmark.id + '_' + suffix)) {\n            dom.remove(otherMarker, true);\n          }\n          if (isText$a(next) && isText$a(prev) && !Env.browser.isOpera()) {\n            const idx = prev.data.length;\n            prev.appendData(next.data);\n            dom.remove(next);\n            container = prev;\n            offset = idx;\n          }\n        }\n        return Optional.some(CaretPosition(container, offset));\n      } else {\n        return Optional.none();\n      }\n    };\n    const resolvePaths = (dom, bookmark) => {\n      const range = dom.createRng();\n      if (setEndPoint(dom, true, bookmark, range) && setEndPoint(dom, false, bookmark, range)) {\n        return Optional.some({\n          range,\n          forward: isForwardBookmark(bookmark)\n        });\n      } else {\n        return Optional.none();\n      }\n    };\n    const resolveId = (dom, bookmark) => {\n      const startPos = restoreEndPoint(dom, 'start', bookmark);\n      const endPos = restoreEndPoint(dom, 'end', bookmark);\n      return lift2(startPos, endPos.or(startPos), (spos, epos) => {\n        const range = dom.createRng();\n        range.setStart(addBogus(dom, spos.container()), spos.offset());\n        range.setEnd(addBogus(dom, epos.container()), epos.offset());\n        return {\n          range,\n          forward: isForwardBookmark(bookmark)\n        };\n      });\n    };\n    const resolveIndex = (dom, bookmark) => Optional.from(dom.select(bookmark.name)[bookmark.index]).map(elm => {\n      const range = dom.createRng();\n      range.selectNode(elm);\n      return {\n        range,\n        forward: true\n      };\n    });\n    const resolve = (selection, bookmark) => {\n      const dom = selection.dom;\n      if (bookmark) {\n        if (isPathBookmark(bookmark)) {\n          return resolvePaths(dom, bookmark);\n        } else if (isStringPathBookmark(bookmark)) {\n          return resolveCaretPositionBookmark(dom, bookmark);\n        } else if (isIdBookmark(bookmark)) {\n          return resolveId(dom, bookmark);\n        } else if (isIndexBookmark(bookmark)) {\n          return resolveIndex(dom, bookmark);\n        } else if (isRangeBookmark(bookmark)) {\n          return Optional.some({\n            range: bookmark.rng,\n            forward: isForwardBookmark(bookmark)\n          });\n        }\n      }\n      return Optional.none();\n    };\n\n    const getBookmark$1 = (selection, type, normalized) => {\n      return getBookmark$2(selection, type, normalized);\n    };\n    const moveToBookmark = (selection, bookmark) => {\n      resolve(selection, bookmark).each(({range, forward}) => {\n        selection.setRng(range, forward);\n      });\n    };\n    const isBookmarkNode$1 = node => {\n      return isElement$6(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n    };\n\n    const is = expected => actual => expected === actual;\n    const isNbsp = is(nbsp);\n    const isWhiteSpace = chr => chr !== '' && ' \\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n    const isContent = chr => !isWhiteSpace(chr) && !isNbsp(chr) && !isZwsp$1(chr);\n\n    const hexColour = value => ({ value });\n    const toHex = component => {\n      const hex = component.toString(16);\n      return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n    };\n    const fromRgba = rgbaColour => {\n      const value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n      return hexColour(value);\n    };\n\n    const rgbRegex = /^\\s*rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)\\s*$/i;\n    const rgbaRegex = /^\\s*rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d?(?:\\.\\d+)?)\\s*\\)\\s*$/i;\n    const rgbaColour = (red, green, blue, alpha) => ({\n      red,\n      green,\n      blue,\n      alpha\n    });\n    const fromStringValues = (red, green, blue, alpha) => {\n      const r = parseInt(red, 10);\n      const g = parseInt(green, 10);\n      const b = parseInt(blue, 10);\n      const a = parseFloat(alpha);\n      return rgbaColour(r, g, b, a);\n    };\n    const fromString = rgbaString => {\n      if (rgbaString === 'transparent') {\n        return Optional.some(rgbaColour(0, 0, 0, 0));\n      }\n      const rgbMatch = rgbRegex.exec(rgbaString);\n      if (rgbMatch !== null) {\n        return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n      }\n      const rgbaMatch = rgbaRegex.exec(rgbaString);\n      if (rgbaMatch !== null) {\n        return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n      }\n      return Optional.none();\n    };\n\n    const rgbaToHexString = color => fromString(color).map(fromRgba).map(h => '#' + h.value).getOr(color);\n\n    const getRanges$1 = selection => {\n      const ranges = [];\n      if (selection) {\n        for (let i = 0; i < selection.rangeCount; i++) {\n          ranges.push(selection.getRangeAt(i));\n        }\n      }\n      return ranges;\n    };\n    const getSelectedNodes = ranges => {\n      return bind$3(ranges, range => {\n        const node = getSelectedNode(range);\n        return node ? [SugarElement.fromDom(node)] : [];\n      });\n    };\n    const hasMultipleRanges = selection => {\n      return getRanges$1(selection).length > 1;\n    };\n\n    const getCellsFromRanges = ranges => filter$5(getSelectedNodes(ranges), isTableCell$2);\n    const getCellsFromElement = elm => descendants(elm, 'td[data-mce-selected],th[data-mce-selected]');\n    const getCellsFromElementOrRanges = (ranges, element) => {\n      const selectedCells = getCellsFromElement(element);\n      return selectedCells.length > 0 ? selectedCells : getCellsFromRanges(ranges);\n    };\n    const getCellsFromEditor = editor => getCellsFromElementOrRanges(getRanges$1(editor.selection.getSel()), SugarElement.fromDom(editor.getBody()));\n    const getClosestTable = (cell, isRoot) => ancestor$2(cell, 'table', isRoot);\n\n    const getStartNode = rng => {\n      const sc = rng.startContainer, so = rng.startOffset;\n      if (isText$a(sc)) {\n        return so === 0 ? Optional.some(SugarElement.fromDom(sc)) : Optional.none();\n      } else {\n        return Optional.from(sc.childNodes[so]).map(SugarElement.fromDom);\n      }\n    };\n    const getEndNode = rng => {\n      const ec = rng.endContainer, eo = rng.endOffset;\n      if (isText$a(ec)) {\n        return eo === ec.data.length ? Optional.some(SugarElement.fromDom(ec)) : Optional.none();\n      } else {\n        return Optional.from(ec.childNodes[eo - 1]).map(SugarElement.fromDom);\n      }\n    };\n    const getFirstChildren = node => {\n      return firstChild(node).fold(constant([node]), child => {\n        return [node].concat(getFirstChildren(child));\n      });\n    };\n    const getLastChildren = node => {\n      return lastChild(node).fold(constant([node]), child => {\n        if (name(child) === 'br') {\n          return prevSibling(child).map(sibling => {\n            return [node].concat(getLastChildren(sibling));\n          }).getOr([]);\n        } else {\n          return [node].concat(getLastChildren(child));\n        }\n      });\n    };\n    const hasAllContentsSelected = (elm, rng) => {\n      return lift2(getStartNode(rng), getEndNode(rng), (startNode, endNode) => {\n        const start = find$2(getFirstChildren(elm), curry(eq, startNode));\n        const end = find$2(getLastChildren(elm), curry(eq, endNode));\n        return start.isSome() && end.isSome();\n      }).getOr(false);\n    };\n    const moveEndPoint = (dom, rng, node, start) => {\n      const root = node;\n      const walker = new DomTreeWalker(node, root);\n      const moveCaretBeforeOnEnterElementsMap = filter$4(dom.schema.getMoveCaretBeforeOnEnterElements(), (_, name) => !contains$2([\n        'td',\n        'th',\n        'table'\n      ], name.toLowerCase()));\n      let currentNode = node;\n      do {\n        if (isText$a(currentNode) && Tools.trim(currentNode.data).length !== 0) {\n          if (start) {\n            rng.setStart(currentNode, 0);\n          } else {\n            rng.setEnd(currentNode, currentNode.data.length);\n          }\n          return;\n        }\n        if (moveCaretBeforeOnEnterElementsMap[currentNode.nodeName]) {\n          if (start) {\n            rng.setStartBefore(currentNode);\n          } else {\n            if (currentNode.nodeName === 'BR') {\n              rng.setEndBefore(currentNode);\n            } else {\n              rng.setEndAfter(currentNode);\n            }\n          }\n          return;\n        }\n      } while (currentNode = start ? walker.next() : walker.prev());\n      if (root.nodeName === 'BODY') {\n        if (start) {\n          rng.setStart(root, 0);\n        } else {\n          rng.setEnd(root, root.childNodes.length);\n        }\n      }\n    };\n    const hasAnyRanges = editor => {\n      const sel = editor.selection.getSel();\n      return isNonNullable(sel) && sel.rangeCount > 0;\n    };\n    const runOnRanges = (editor, executor) => {\n      const fakeSelectionNodes = getCellsFromEditor(editor);\n      if (fakeSelectionNodes.length > 0) {\n        each$e(fakeSelectionNodes, elem => {\n          const node = elem.dom;\n          const fakeNodeRng = editor.dom.createRng();\n          fakeNodeRng.setStartBefore(node);\n          fakeNodeRng.setEndAfter(node);\n          executor(fakeNodeRng, true);\n        });\n      } else {\n        executor(editor.selection.getRng(), false);\n      }\n    };\n    const preserve = (selection, fillBookmark, executor) => {\n      const bookmark = getPersistentBookmark(selection, fillBookmark);\n      executor(bookmark);\n      selection.moveToBookmark(bookmark);\n    };\n\n    const isNode = node => isNumber(node === null || node === void 0 ? void 0 : node.nodeType);\n    const isElementNode$1 = node => isElement$6(node) && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus$2(node);\n    const isElementDirectlySelected = (dom, node) => {\n      if (isElementNode$1(node) && !/^(TD|TH)$/.test(node.nodeName)) {\n        const selectedAttr = dom.getAttrib(node, 'data-mce-selected');\n        const value = parseInt(selectedAttr, 10);\n        return !isNaN(value) && value > 0;\n      } else {\n        return false;\n      }\n    };\n    const isEditable$3 = elm => elm.isContentEditable === true;\n    const preserveSelection = (editor, action, shouldMoveStart) => {\n      const {selection, dom} = editor;\n      const selectedNodeBeforeAction = selection.getNode();\n      const isSelectedBeforeNodeNoneditable = isContentEditableFalse$a(selectedNodeBeforeAction);\n      preserve(selection, true, () => {\n        action();\n      });\n      const isBeforeNodeStillNoneditable = isSelectedBeforeNodeNoneditable && isContentEditableFalse$a(selectedNodeBeforeAction);\n      if (isBeforeNodeStillNoneditable && dom.isChildOf(selectedNodeBeforeAction, editor.getBody())) {\n        editor.selection.select(selectedNodeBeforeAction);\n      } else if (shouldMoveStart(selection.getStart())) {\n        moveStartToNearestText(dom, selection);\n      }\n    };\n    const moveStartToNearestText = (dom, selection) => {\n      var _a, _b;\n      const rng = selection.getRng();\n      const {startContainer, startOffset} = rng;\n      const selectedNode = selection.getNode();\n      if (isElementDirectlySelected(dom, selectedNode)) {\n        return;\n      }\n      if (isElement$6(startContainer)) {\n        const nodes = startContainer.childNodes;\n        const root = dom.getRoot();\n        let walker;\n        if (startOffset < nodes.length) {\n          const startNode = nodes[startOffset];\n          walker = new DomTreeWalker(startNode, (_a = dom.getParent(startNode, dom.isBlock)) !== null && _a !== void 0 ? _a : root);\n        } else {\n          const startNode = nodes[nodes.length - 1];\n          walker = new DomTreeWalker(startNode, (_b = dom.getParent(startNode, dom.isBlock)) !== null && _b !== void 0 ? _b : root);\n          walker.next(true);\n        }\n        for (let node = walker.current(); node; node = walker.next()) {\n          if (dom.getContentEditable(node) === 'false') {\n            return;\n          } else if (isText$a(node) && !isWhiteSpaceNode$1(node)) {\n            rng.setStart(node, 0);\n            selection.setRng(rng);\n            return;\n          }\n        }\n      }\n    };\n    const getNonWhiteSpaceSibling = (node, next, inc) => {\n      if (node) {\n        const nextName = next ? 'nextSibling' : 'previousSibling';\n        for (node = inc ? node : node[nextName]; node; node = node[nextName]) {\n          if (isElement$6(node) || !isWhiteSpaceNode$1(node)) {\n            return node;\n          }\n        }\n      }\n      return undefined;\n    };\n    const isTextBlock$1 = (schema, node) => !!schema.getTextBlockElements()[node.nodeName.toLowerCase()] || isTransparentBlock(schema, node);\n    const isValid = (ed, parent, child) => {\n      return ed.schema.isValidChild(parent, child);\n    };\n    const isWhiteSpaceNode$1 = (node, allowSpaces = false) => {\n      if (isNonNullable(node) && isText$a(node)) {\n        const data = allowSpaces ? node.data.replace(/ /g, '\\xA0') : node.data;\n        return isWhitespaceText(data);\n      } else {\n        return false;\n      }\n    };\n    const isEmptyTextNode$1 = node => {\n      return isNonNullable(node) && isText$a(node) && node.length === 0;\n    };\n    const isWrapNoneditableTarget = (editor, node) => {\n      const baseDataSelector = '[data-mce-cef-wrappable]';\n      const formatNoneditableSelector = getFormatNoneditableSelector(editor);\n      const selector = isEmpty$3(formatNoneditableSelector) ? baseDataSelector : `${ baseDataSelector },${ formatNoneditableSelector }`;\n      return is$1(SugarElement.fromDom(node), selector);\n    };\n    const isWrappableNoneditable = (editor, node) => {\n      const dom = editor.dom;\n      return isElementNode$1(node) && dom.getContentEditable(node) === 'false' && isWrapNoneditableTarget(editor, node) && dom.select('[contenteditable=\"true\"]', node).length === 0;\n    };\n    const replaceVars = (value, vars) => {\n      if (isFunction(value)) {\n        return value(vars);\n      } else if (isNonNullable(vars)) {\n        value = value.replace(/%(\\w+)/g, (str, name) => {\n          return vars[name] || str;\n        });\n      }\n      return value;\n    };\n    const isEq$5 = (str1, str2) => {\n      str1 = str1 || '';\n      str2 = str2 || '';\n      str1 = '' + (str1.nodeName || str1);\n      str2 = '' + (str2.nodeName || str2);\n      return str1.toLowerCase() === str2.toLowerCase();\n    };\n    const normalizeStyleValue = (value, name) => {\n      if (isNullable(value)) {\n        return null;\n      } else {\n        let strValue = String(value);\n        if (name === 'color' || name === 'backgroundColor') {\n          strValue = rgbaToHexString(strValue);\n        }\n        if (name === 'fontWeight' && value === 700) {\n          strValue = 'bold';\n        }\n        if (name === 'fontFamily') {\n          strValue = strValue.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\n        }\n        return strValue;\n      }\n    };\n    const getStyle = (dom, node, name) => {\n      const style = dom.getStyle(node, name);\n      return normalizeStyleValue(style, name);\n    };\n    const getTextDecoration = (dom, node) => {\n      let decoration;\n      dom.getParent(node, n => {\n        if (isElement$6(n)) {\n          decoration = dom.getStyle(n, 'text-decoration');\n          return !!decoration && decoration !== 'none';\n        } else {\n          return false;\n        }\n      });\n      return decoration;\n    };\n    const getParents$2 = (dom, node, selector) => {\n      return dom.getParents(node, selector, dom.getRoot());\n    };\n    const isFormatPredicate = (editor, formatName, predicate) => {\n      const formats = editor.formatter.get(formatName);\n      return isNonNullable(formats) && exists(formats, predicate);\n    };\n    const isVariableFormatName = (editor, formatName) => {\n      const hasVariableValues = format => {\n        const isVariableValue = val => isFunction(val) || val.length > 1 && val.charAt(0) === '%';\n        return exists([\n          'styles',\n          'attributes'\n        ], key => get$a(format, key).exists(field => {\n          const fieldValues = isArray$1(field) ? field : values(field);\n          return exists(fieldValues, isVariableValue);\n        }));\n      };\n      return isFormatPredicate(editor, formatName, hasVariableValues);\n    };\n    const areSimilarFormats = (editor, formatName, otherFormatName) => {\n      const validKeys = [\n        'inline',\n        'block',\n        'selector',\n        'attributes',\n        'styles',\n        'classes'\n      ];\n      const filterObj = format => filter$4(format, (_, key) => exists(validKeys, validKey => validKey === key));\n      return isFormatPredicate(editor, formatName, fmt1 => {\n        const filteredFmt1 = filterObj(fmt1);\n        return isFormatPredicate(editor, otherFormatName, fmt2 => {\n          const filteredFmt2 = filterObj(fmt2);\n          return equal$1(filteredFmt1, filteredFmt2);\n        });\n      });\n    };\n    const isBlockFormat = format => hasNonNullableKey(format, 'block');\n    const isWrappingBlockFormat = format => isBlockFormat(format) && format.wrapper === true;\n    const isNonWrappingBlockFormat = format => isBlockFormat(format) && format.wrapper !== true;\n    const isSelectorFormat = format => hasNonNullableKey(format, 'selector');\n    const isInlineFormat = format => hasNonNullableKey(format, 'inline');\n    const isMixedFormat = format => isSelectorFormat(format) && isInlineFormat(format) && is$2(get$a(format, 'mixed'), true);\n    const shouldExpandToSelector = format => isSelectorFormat(format) && format.expand !== false && !isInlineFormat(format);\n\n    const isBookmarkNode = isBookmarkNode$1;\n    const getParents$1 = getParents$2;\n    const isWhiteSpaceNode = isWhiteSpaceNode$1;\n    const isTextBlock = isTextBlock$1;\n    const isBogusBr = node => {\n      return isBr$6(node) && node.getAttribute('data-mce-bogus') && !node.nextSibling;\n    };\n    const findParentContentEditable = (dom, node) => {\n      let parent = node;\n      while (parent) {\n        if (isElement$6(parent) && dom.getContentEditable(parent)) {\n          return dom.getContentEditable(parent) === 'false' ? parent : node;\n        }\n        parent = parent.parentNode;\n      }\n      return node;\n    };\n    const walkText = (start, node, offset, predicate) => {\n      const str = node.data;\n      if (start) {\n        for (let i = offset; i > 0; i--) {\n          if (predicate(str.charAt(i - 1))) {\n            return i;\n          }\n        }\n      } else {\n        for (let i = offset; i < str.length; i++) {\n          if (predicate(str.charAt(i))) {\n            return i;\n          }\n        }\n      }\n      return -1;\n    };\n    const findSpace = (start, node, offset) => walkText(start, node, offset, c => isNbsp(c) || isWhiteSpace(c));\n    const findContent = (start, node, offset) => walkText(start, node, offset, isContent);\n    const findWordEndPoint = (dom, body, container, offset, start, includeTrailingSpaces) => {\n      let lastTextNode;\n      const rootNode = dom.getParent(container, dom.isBlock) || body;\n      const walk = (container, offset, pred) => {\n        const textSeeker = TextSeeker(dom);\n        const walker = start ? textSeeker.backwards : textSeeker.forwards;\n        return Optional.from(walker(container, offset, (text, textOffset) => {\n          if (isBookmarkNode(text.parentNode)) {\n            return -1;\n          } else {\n            lastTextNode = text;\n            return pred(start, text, textOffset);\n          }\n        }, rootNode));\n      };\n      const spaceResult = walk(container, offset, findSpace);\n      return spaceResult.bind(result => includeTrailingSpaces ? walk(result.container, result.offset + (start ? -1 : 0), findContent) : Optional.some(result)).orThunk(() => lastTextNode ? Optional.some({\n        container: lastTextNode,\n        offset: start ? 0 : lastTextNode.length\n      }) : Optional.none());\n    };\n    const findSelectorEndPoint = (dom, formatList, rng, container, siblingName) => {\n      const sibling = container[siblingName];\n      if (isText$a(container) && isEmpty$3(container.data) && sibling) {\n        container = sibling;\n      }\n      const parents = getParents$1(dom, container);\n      for (let i = 0; i < parents.length; i++) {\n        for (let y = 0; y < formatList.length; y++) {\n          const curFormat = formatList[y];\n          if (isNonNullable(curFormat.collapsed) && curFormat.collapsed !== rng.collapsed) {\n            continue;\n          }\n          if (isSelectorFormat(curFormat) && dom.is(parents[i], curFormat.selector)) {\n            return parents[i];\n          }\n        }\n      }\n      return container;\n    };\n    const findBlockEndPoint = (dom, formatList, container, siblingName) => {\n      var _a;\n      let node = container;\n      const root = dom.getRoot();\n      const format = formatList[0];\n      if (isBlockFormat(format)) {\n        node = format.wrapper ? null : dom.getParent(container, format.block, root);\n      }\n      if (!node) {\n        const scopeRoot = (_a = dom.getParent(container, 'LI,TD,TH')) !== null && _a !== void 0 ? _a : root;\n        node = dom.getParent(isText$a(container) ? container.parentNode : container, node => node !== root && isTextBlock(dom.schema, node), scopeRoot);\n      }\n      if (node && isBlockFormat(format) && format.wrapper) {\n        node = getParents$1(dom, node, 'ul,ol').reverse()[0] || node;\n      }\n      if (!node) {\n        node = container;\n        while (node && node[siblingName] && !dom.isBlock(node[siblingName])) {\n          node = node[siblingName];\n          if (isEq$5(node, 'br')) {\n            break;\n          }\n        }\n      }\n      return node || container;\n    };\n    const isAtBlockBoundary$1 = (dom, root, container, siblingName) => {\n      const parent = container.parentNode;\n      if (isNonNullable(container[siblingName])) {\n        return false;\n      } else if (parent === root || isNullable(parent) || dom.isBlock(parent)) {\n        return true;\n      } else {\n        return isAtBlockBoundary$1(dom, root, parent, siblingName);\n      }\n    };\n    const findParentContainer = (dom, formatList, container, offset, start) => {\n      let parent = container;\n      const siblingName = start ? 'previousSibling' : 'nextSibling';\n      const root = dom.getRoot();\n      if (isText$a(container) && !isWhiteSpaceNode(container)) {\n        if (start ? offset > 0 : offset < container.data.length) {\n          return container;\n        }\n      }\n      while (parent) {\n        if (!formatList[0].block_expand && dom.isBlock(parent)) {\n          return parent;\n        }\n        for (let sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {\n          const allowSpaces = isText$a(sibling) && !isAtBlockBoundary$1(dom, root, sibling, siblingName);\n          if (!isBookmarkNode(sibling) && !isBogusBr(sibling) && !isWhiteSpaceNode(sibling, allowSpaces)) {\n            return parent;\n          }\n        }\n        if (parent === root || parent.parentNode === root) {\n          container = parent;\n          break;\n        }\n        parent = parent.parentNode;\n      }\n      return container;\n    };\n    const isSelfOrParentBookmark = container => isBookmarkNode(container.parentNode) || isBookmarkNode(container);\n    const expandRng = (dom, rng, formatList, includeTrailingSpace = false) => {\n      let {startContainer, startOffset, endContainer, endOffset} = rng;\n      const format = formatList[0];\n      if (isElement$6(startContainer) && startContainer.hasChildNodes()) {\n        startContainer = getNode$1(startContainer, startOffset);\n        if (isText$a(startContainer)) {\n          startOffset = 0;\n        }\n      }\n      if (isElement$6(endContainer) && endContainer.hasChildNodes()) {\n        endContainer = getNode$1(endContainer, rng.collapsed ? endOffset : endOffset - 1);\n        if (isText$a(endContainer)) {\n          endOffset = endContainer.data.length;\n        }\n      }\n      startContainer = findParentContentEditable(dom, startContainer);\n      endContainer = findParentContentEditable(dom, endContainer);\n      if (isSelfOrParentBookmark(startContainer)) {\n        startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode;\n        if (rng.collapsed) {\n          startContainer = startContainer.previousSibling || startContainer;\n        } else {\n          startContainer = startContainer.nextSibling || startContainer;\n        }\n        if (isText$a(startContainer)) {\n          startOffset = rng.collapsed ? startContainer.length : 0;\n        }\n      }\n      if (isSelfOrParentBookmark(endContainer)) {\n        endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode;\n        if (rng.collapsed) {\n          endContainer = endContainer.nextSibling || endContainer;\n        } else {\n          endContainer = endContainer.previousSibling || endContainer;\n        }\n        if (isText$a(endContainer)) {\n          endOffset = rng.collapsed ? 0 : endContainer.length;\n        }\n      }\n      if (rng.collapsed) {\n        const startPoint = findWordEndPoint(dom, dom.getRoot(), startContainer, startOffset, true, includeTrailingSpace);\n        startPoint.each(({container, offset}) => {\n          startContainer = container;\n          startOffset = offset;\n        });\n        const endPoint = findWordEndPoint(dom, dom.getRoot(), endContainer, endOffset, false, includeTrailingSpace);\n        endPoint.each(({container, offset}) => {\n          endContainer = container;\n          endOffset = offset;\n        });\n      }\n      if (isInlineFormat(format) || format.block_expand) {\n        if (!isInlineFormat(format) || (!isText$a(startContainer) || startOffset === 0)) {\n          startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true);\n        }\n        if (!isInlineFormat(format) || (!isText$a(endContainer) || endOffset === endContainer.data.length)) {\n          endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false);\n        }\n      }\n      if (shouldExpandToSelector(format)) {\n        startContainer = findSelectorEndPoint(dom, formatList, rng, startContainer, 'previousSibling');\n        endContainer = findSelectorEndPoint(dom, formatList, rng, endContainer, 'nextSibling');\n      }\n      if (isBlockFormat(format) || isSelectorFormat(format)) {\n        startContainer = findBlockEndPoint(dom, formatList, startContainer, 'previousSibling');\n        endContainer = findBlockEndPoint(dom, formatList, endContainer, 'nextSibling');\n        if (isBlockFormat(format)) {\n          if (!dom.isBlock(startContainer)) {\n            startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true);\n          }\n          if (!dom.isBlock(endContainer)) {\n            endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false);\n          }\n        }\n      }\n      if (isElement$6(startContainer) && startContainer.parentNode) {\n        startOffset = dom.nodeIndex(startContainer);\n        startContainer = startContainer.parentNode;\n      }\n      if (isElement$6(endContainer) && endContainer.parentNode) {\n        endOffset = dom.nodeIndex(endContainer) + 1;\n        endContainer = endContainer.parentNode;\n      }\n      return {\n        startContainer,\n        startOffset,\n        endContainer,\n        endOffset\n      };\n    };\n\n    const walk$3 = (dom, rng, callback) => {\n      var _a;\n      const startOffset = rng.startOffset;\n      const startContainer = getNode$1(rng.startContainer, startOffset);\n      const endOffset = rng.endOffset;\n      const endContainer = getNode$1(rng.endContainer, endOffset - 1);\n      const exclude = nodes => {\n        const firstNode = nodes[0];\n        if (isText$a(firstNode) && firstNode === startContainer && startOffset >= firstNode.data.length) {\n          nodes.splice(0, 1);\n        }\n        const lastNode = nodes[nodes.length - 1];\n        if (endOffset === 0 && nodes.length > 0 && lastNode === endContainer && isText$a(lastNode)) {\n          nodes.splice(nodes.length - 1, 1);\n        }\n        return nodes;\n      };\n      const collectSiblings = (node, name, endNode) => {\n        const siblings = [];\n        for (; node && node !== endNode; node = node[name]) {\n          siblings.push(node);\n        }\n        return siblings;\n      };\n      const findEndPoint = (node, root) => dom.getParent(node, node => node.parentNode === root, root);\n      const walkBoundary = (startNode, endNode, next) => {\n        const siblingName = next ? 'nextSibling' : 'previousSibling';\n        for (let node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {\n          parent = node.parentNode;\n          const siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);\n          if (siblings.length) {\n            if (!next) {\n              siblings.reverse();\n            }\n            callback(exclude(siblings));\n          }\n        }\n      };\n      if (startContainer === endContainer) {\n        return callback(exclude([startContainer]));\n      }\n      const ancestor = (_a = dom.findCommonAncestor(startContainer, endContainer)) !== null && _a !== void 0 ? _a : dom.getRoot();\n      if (dom.isChildOf(startContainer, endContainer)) {\n        return walkBoundary(startContainer, ancestor, true);\n      }\n      if (dom.isChildOf(endContainer, startContainer)) {\n        return walkBoundary(endContainer, ancestor);\n      }\n      const startPoint = findEndPoint(startContainer, ancestor) || startContainer;\n      const endPoint = findEndPoint(endContainer, ancestor) || endContainer;\n      walkBoundary(startContainer, startPoint, true);\n      const siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);\n      if (siblings.length) {\n        callback(exclude(siblings));\n      }\n      walkBoundary(endContainer, endPoint);\n    };\n\n    const validBlocks = [\n      'pre[class*=language-][contenteditable=\"false\"]',\n      'figure.image',\n      'div[data-ephox-embed-iri]',\n      'div.tiny-pageembed',\n      'div.mce-toc',\n      'div[data-mce-toc]'\n    ];\n    const isZeroWidth = elem => isText$b(elem) && get$3(elem) === ZWSP$1;\n    const context = (editor, elem, wrapName, nodeName) => parent(elem).fold(() => 'skipping', parent => {\n      if (nodeName === 'br' || isZeroWidth(elem)) {\n        return 'valid';\n      } else if (isAnnotation(elem)) {\n        return 'existing';\n      } else if (isCaretNode(elem.dom)) {\n        return 'caret';\n      } else if (exists(validBlocks, selector => is$1(elem, selector))) {\n        return 'valid-block';\n      } else if (!isValid(editor, wrapName, nodeName) || !isValid(editor, name(parent), wrapName)) {\n        return 'invalid-child';\n      } else {\n        return 'valid';\n      }\n    });\n\n    const applyWordGrab = (editor, rng) => {\n      const r = expandRng(editor.dom, rng, [{ inline: 'span' }]);\n      rng.setStart(r.startContainer, r.startOffset);\n      rng.setEnd(r.endContainer, r.endOffset);\n      editor.selection.setRng(rng);\n    };\n    const applyAnnotation = (elem, masterUId, data, annotationName, decorate, directAnnotation) => {\n      const {uid = masterUId, ...otherData} = data;\n      add$2(elem, annotation());\n      set$2(elem, `${ dataAnnotationId() }`, uid);\n      set$2(elem, `${ dataAnnotation() }`, annotationName);\n      const {attributes = {}, classes = []} = decorate(uid, otherData);\n      setAll$1(elem, attributes);\n      add(elem, classes);\n      if (directAnnotation) {\n        if (classes.length > 0) {\n          set$2(elem, `${ dataAnnotationClasses() }`, classes.join(','));\n        }\n        const attributeNames = keys(attributes);\n        if (attributeNames.length > 0) {\n          set$2(elem, `${ dataAnnotationAttributes() }`, attributeNames.join(','));\n        }\n      }\n    };\n    const removeDirectAnnotation = elem => {\n      remove$8(elem, annotation());\n      remove$b(elem, `${ dataAnnotationId() }`);\n      remove$b(elem, `${ dataAnnotation() }`);\n      remove$b(elem, `${ dataAnnotationActive() }`);\n      const customAttrNames = getOpt(elem, `${ dataAnnotationAttributes() }`).map(names => names.split(',')).getOr([]);\n      const customClasses = getOpt(elem, `${ dataAnnotationClasses() }`).map(names => names.split(',')).getOr([]);\n      each$e(customAttrNames, name => remove$b(elem, name));\n      remove$5(elem, customClasses);\n      remove$b(elem, `${ dataAnnotationClasses() }`);\n      remove$b(elem, `${ dataAnnotationAttributes() }`);\n    };\n    const makeAnnotation = (eDoc, uid, data, annotationName, decorate) => {\n      const master = SugarElement.fromTag('span', eDoc);\n      applyAnnotation(master, uid, data, annotationName, decorate, false);\n      return master;\n    };\n    const annotate = (editor, rng, uid, annotationName, decorate, data) => {\n      const newWrappers = [];\n      const master = makeAnnotation(editor.getDoc(), uid, data, annotationName, decorate);\n      const wrapper = value$2();\n      const finishWrapper = () => {\n        wrapper.clear();\n      };\n      const getOrOpenWrapper = () => wrapper.get().getOrThunk(() => {\n        const nu = shallow$1(master);\n        newWrappers.push(nu);\n        wrapper.set(nu);\n        return nu;\n      });\n      const processElements = elems => {\n        each$e(elems, processElement);\n      };\n      const processElement = elem => {\n        const ctx = context(editor, elem, 'span', name(elem));\n        switch (ctx) {\n        case 'invalid-child': {\n            finishWrapper();\n            const children = children$1(elem);\n            processElements(children);\n            finishWrapper();\n            break;\n          }\n        case 'valid-block': {\n            finishWrapper();\n            applyAnnotation(elem, uid, data, annotationName, decorate, true);\n            break;\n          }\n        case 'valid': {\n            const w = getOrOpenWrapper();\n            wrap$2(elem, w);\n            break;\n          }\n        }\n      };\n      const processNodes = nodes => {\n        const elems = map$3(nodes, SugarElement.fromDom);\n        processElements(elems);\n      };\n      walk$3(editor.dom, rng, nodes => {\n        finishWrapper();\n        processNodes(nodes);\n      });\n      return newWrappers;\n    };\n    const annotateWithBookmark = (editor, name, settings, data) => {\n      editor.undoManager.transact(() => {\n        const selection = editor.selection;\n        const initialRng = selection.getRng();\n        const hasFakeSelection = getCellsFromEditor(editor).length > 0;\n        const masterUid = generate$1('mce-annotation');\n        if (initialRng.collapsed && !hasFakeSelection) {\n          applyWordGrab(editor, initialRng);\n        }\n        if (selection.getRng().collapsed && !hasFakeSelection) {\n          const wrapper = makeAnnotation(editor.getDoc(), masterUid, data, name, settings.decorate);\n          set(wrapper, nbsp);\n          selection.getRng().insertNode(wrapper.dom);\n          selection.select(wrapper.dom);\n        } else {\n          preserve(selection, false, () => {\n            runOnRanges(editor, selectionRng => {\n              annotate(editor, selectionRng, masterUid, name, settings.decorate, data);\n            });\n          });\n        }\n      });\n    };\n\n    const Annotator = editor => {\n      const registry = create$c();\n      setup$w(editor, registry);\n      const changes = setup$x(editor, registry);\n      const isSpan = isTag('span');\n      const removeAnnotations = elements => {\n        each$e(elements, element => {\n          if (isSpan(element)) {\n            unwrap(element);\n          } else {\n            removeDirectAnnotation(element);\n          }\n        });\n      };\n      return {\n        register: (name, settings) => {\n          registry.register(name, settings);\n        },\n        annotate: (name, data) => {\n          registry.lookup(name).each(settings => {\n            annotateWithBookmark(editor, name, settings, data);\n          });\n        },\n        annotationChanged: (name, callback) => {\n          changes.addListener(name, callback);\n        },\n        remove: name => {\n          const bookmark = editor.selection.getBookmark();\n          identify(editor, Optional.some(name)).each(({elements}) => {\n            removeAnnotations(elements);\n          });\n          editor.selection.moveToBookmark(bookmark);\n        },\n        removeAll: name => {\n          const bookmark = editor.selection.getBookmark();\n          each$d(findAll(editor, name), (elements, _) => {\n            removeAnnotations(elements);\n          });\n          editor.selection.moveToBookmark(bookmark);\n        },\n        getAll: name => {\n          const directory = findAll(editor, name);\n          return map$2(directory, elems => map$3(elems, elem => elem.dom));\n        }\n      };\n    };\n\n    const BookmarkManager = selection => {\n      return {\n        getBookmark: curry(getBookmark$1, selection),\n        moveToBookmark: curry(moveToBookmark, selection)\n      };\n    };\n    BookmarkManager.isBookmarkNode = isBookmarkNode$1;\n\n    const isXYWithinRange = (clientX, clientY, range) => {\n      if (range.collapsed) {\n        return false;\n      } else {\n        return exists(range.getClientRects(), rect => containsXY(rect, clientX, clientY));\n      }\n    };\n\n    const firePreProcess = (editor, args) => editor.dispatch('PreProcess', args);\n    const firePostProcess = (editor, args) => editor.dispatch('PostProcess', args);\n    const fireRemove = editor => {\n      editor.dispatch('remove');\n    };\n    const fireDetach = editor => {\n      editor.dispatch('detach');\n    };\n    const fireSwitchMode = (editor, mode) => {\n      editor.dispatch('SwitchMode', { mode });\n    };\n    const fireObjectResizeStart = (editor, target, width, height, origin) => {\n      editor.dispatch('ObjectResizeStart', {\n        target,\n        width,\n        height,\n        origin\n      });\n    };\n    const fireObjectResized = (editor, target, width, height, origin) => {\n      editor.dispatch('ObjectResized', {\n        target,\n        width,\n        height,\n        origin\n      });\n    };\n    const firePreInit = editor => {\n      editor.dispatch('PreInit');\n    };\n    const firePostRender = editor => {\n      editor.dispatch('PostRender');\n    };\n    const fireInit = editor => {\n      editor.dispatch('Init');\n    };\n    const firePlaceholderToggle = (editor, state) => {\n      editor.dispatch('PlaceholderToggle', { state });\n    };\n    const fireError = (editor, errorType, error) => {\n      editor.dispatch(errorType, error);\n    };\n    const fireFormatApply = (editor, format, node, vars) => {\n      editor.dispatch('FormatApply', {\n        format,\n        node,\n        vars\n      });\n    };\n    const fireFormatRemove = (editor, format, node, vars) => {\n      editor.dispatch('FormatRemove', {\n        format,\n        node,\n        vars\n      });\n    };\n    const fireBeforeSetContent = (editor, args) => editor.dispatch('BeforeSetContent', args);\n    const fireSetContent = (editor, args) => editor.dispatch('SetContent', args);\n    const fireBeforeGetContent = (editor, args) => editor.dispatch('BeforeGetContent', args);\n    const fireGetContent = (editor, args) => editor.dispatch('GetContent', args);\n    const fireAutocompleterStart = (editor, args) => {\n      editor.dispatch('AutocompleterStart', args);\n    };\n    const fireAutocompleterUpdate = (editor, args) => {\n      editor.dispatch('AutocompleterUpdate', args);\n    };\n    const fireAutocompleterEnd = editor => {\n      editor.dispatch('AutocompleterEnd');\n    };\n    const firePastePreProcess = (editor, html, internal) => editor.dispatch('PastePreProcess', {\n      content: html,\n      internal\n    });\n    const firePastePostProcess = (editor, node, internal) => editor.dispatch('PastePostProcess', {\n      node,\n      internal\n    });\n    const firePastePlainTextToggle = (editor, state) => editor.dispatch('PastePlainTextToggle', { state });\n\n    const VK = {\n      BACKSPACE: 8,\n      DELETE: 46,\n      DOWN: 40,\n      ENTER: 13,\n      ESC: 27,\n      LEFT: 37,\n      RIGHT: 39,\n      SPACEBAR: 32,\n      TAB: 9,\n      UP: 38,\n      PAGE_UP: 33,\n      PAGE_DOWN: 34,\n      END: 35,\n      HOME: 36,\n      modifierPressed: e => {\n        return e.shiftKey || e.ctrlKey || e.altKey || VK.metaKeyPressed(e);\n      },\n      metaKeyPressed: e => {\n        return Env.os.isMacOS() || Env.os.isiOS() ? e.metaKey : e.ctrlKey && !e.altKey;\n      }\n    };\n\n    const elementSelectionAttr = 'data-mce-selected';\n    const controlElmSelector = 'table,img,figure.image,hr,video,span.mce-preview-object';\n    const abs = Math.abs;\n    const round$1 = Math.round;\n    const resizeHandles = {\n      nw: [\n        0,\n        0,\n        -1,\n        -1\n      ],\n      ne: [\n        1,\n        0,\n        1,\n        -1\n      ],\n      se: [\n        1,\n        1,\n        1,\n        1\n      ],\n      sw: [\n        0,\n        1,\n        -1,\n        1\n      ]\n    };\n    const isTouchEvent = evt => evt.type === 'longpress' || evt.type.indexOf('touch') === 0;\n    const ControlSelection = (selection, editor) => {\n      const dom = editor.dom;\n      const editableDoc = editor.getDoc();\n      const rootDocument = document;\n      const rootElement = editor.getBody();\n      let selectedElm, selectedElmGhost, resizeHelper, selectedHandle, resizeBackdrop;\n      let startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;\n      let width;\n      let height;\n      let startScrollWidth;\n      let startScrollHeight;\n      const isImage = elm => isNonNullable(elm) && (isImg(elm) || dom.is(elm, 'figure.image'));\n      const isMedia = elm => isMedia$2(elm) || dom.hasClass(elm, 'mce-preview-object');\n      const isEventOnImageOutsideRange = (evt, range) => {\n        if (isTouchEvent(evt)) {\n          const touch = evt.touches[0];\n          return isImage(evt.target) && !isXYWithinRange(touch.clientX, touch.clientY, range);\n        } else {\n          return isImage(evt.target) && !isXYWithinRange(evt.clientX, evt.clientY, range);\n        }\n      };\n      const contextMenuSelectImage = evt => {\n        const target = evt.target;\n        if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {\n          editor.selection.select(target);\n        }\n      };\n      const getResizeTargets = elm => {\n        if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {\n          return [\n            elm,\n            elm.firstElementChild\n          ];\n        } else if (dom.is(elm, 'figure.image')) {\n          return [elm.querySelector('img')];\n        } else {\n          return [elm];\n        }\n      };\n      const isResizable = elm => {\n        const selector = getObjectResizing(editor);\n        if (!selector) {\n          return false;\n        }\n        if (elm.getAttribute('data-mce-resize') === 'false') {\n          return false;\n        }\n        if (elm === editor.getBody()) {\n          return false;\n        }\n        if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {\n          return is$1(SugarElement.fromDom(elm.firstElementChild), selector);\n        } else {\n          return is$1(SugarElement.fromDom(elm), selector);\n        }\n      };\n      const createGhostElement = elm => {\n        if (isMedia(elm)) {\n          return dom.create('img', { src: Env.transparentSrc });\n        } else {\n          return elm.cloneNode(true);\n        }\n      };\n      const setSizeProp = (element, name, value) => {\n        if (isNonNullable(value)) {\n          const targets = getResizeTargets(element);\n          each$e(targets, target => {\n            if (target.style[name] || !editor.schema.isValid(target.nodeName.toLowerCase(), name)) {\n              dom.setStyle(target, name, value);\n            } else {\n              dom.setAttrib(target, name, '' + value);\n            }\n          });\n        }\n      };\n      const setGhostElmSize = (ghostElm, width, height) => {\n        setSizeProp(ghostElm, 'width', width);\n        setSizeProp(ghostElm, 'height', height);\n      };\n      const resizeGhostElement = e => {\n        let deltaX, deltaY, proportional;\n        let resizeHelperX, resizeHelperY;\n        deltaX = e.screenX - startX;\n        deltaY = e.screenY - startY;\n        width = deltaX * selectedHandle[2] + startW;\n        height = deltaY * selectedHandle[3] + startH;\n        width = width < 5 ? 5 : width;\n        height = height < 5 ? 5 : height;\n        if ((isImage(selectedElm) || isMedia(selectedElm)) && getResizeImgProportional(editor) !== false) {\n          proportional = !VK.modifierPressed(e);\n        } else {\n          proportional = VK.modifierPressed(e);\n        }\n        if (proportional) {\n          if (abs(deltaX) > abs(deltaY)) {\n            height = round$1(width * ratio);\n            width = round$1(height / ratio);\n          } else {\n            width = round$1(height / ratio);\n            height = round$1(width * ratio);\n          }\n        }\n        setGhostElmSize(selectedElmGhost, width, height);\n        resizeHelperX = selectedHandle.startPos.x + deltaX;\n        resizeHelperY = selectedHandle.startPos.y + deltaY;\n        resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0;\n        resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0;\n        dom.setStyles(resizeHelper, {\n          left: resizeHelperX,\n          top: resizeHelperY,\n          display: 'block'\n        });\n        resizeHelper.innerHTML = width + ' &times; ' + height;\n        if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) {\n          dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width));\n        }\n        if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) {\n          dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height));\n        }\n        deltaX = rootElement.scrollWidth - startScrollWidth;\n        deltaY = rootElement.scrollHeight - startScrollHeight;\n        if (deltaX + deltaY !== 0) {\n          dom.setStyles(resizeHelper, {\n            left: resizeHelperX - deltaX,\n            top: resizeHelperY - deltaY\n          });\n        }\n        if (!resizeStarted) {\n          fireObjectResizeStart(editor, selectedElm, startW, startH, 'corner-' + selectedHandle.name);\n          resizeStarted = true;\n        }\n      };\n      const endGhostResize = () => {\n        const wasResizeStarted = resizeStarted;\n        resizeStarted = false;\n        if (wasResizeStarted) {\n          setSizeProp(selectedElm, 'width', width);\n          setSizeProp(selectedElm, 'height', height);\n        }\n        dom.unbind(editableDoc, 'mousemove', resizeGhostElement);\n        dom.unbind(editableDoc, 'mouseup', endGhostResize);\n        if (rootDocument !== editableDoc) {\n          dom.unbind(rootDocument, 'mousemove', resizeGhostElement);\n          dom.unbind(rootDocument, 'mouseup', endGhostResize);\n        }\n        dom.remove(selectedElmGhost);\n        dom.remove(resizeHelper);\n        dom.remove(resizeBackdrop);\n        showResizeRect(selectedElm);\n        if (wasResizeStarted) {\n          fireObjectResized(editor, selectedElm, width, height, 'corner-' + selectedHandle.name);\n          dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));\n        }\n        editor.nodeChanged();\n      };\n      const showResizeRect = targetElm => {\n        unbindResizeHandleEvents();\n        const position = dom.getPos(targetElm, rootElement);\n        const selectedElmX = position.x;\n        const selectedElmY = position.y;\n        const rect = targetElm.getBoundingClientRect();\n        const targetWidth = rect.width || rect.right - rect.left;\n        const targetHeight = rect.height || rect.bottom - rect.top;\n        if (selectedElm !== targetElm) {\n          hideResizeRect();\n          selectedElm = targetElm;\n          width = height = 0;\n        }\n        const e = editor.dispatch('ObjectSelected', { target: targetElm });\n        if (isResizable(targetElm) && !e.isDefaultPrevented()) {\n          each$d(resizeHandles, (handle, name) => {\n            const startDrag = e => {\n              const target = getResizeTargets(selectedElm)[0];\n              startX = e.screenX;\n              startY = e.screenY;\n              startW = target.clientWidth;\n              startH = target.clientHeight;\n              ratio = startH / startW;\n              selectedHandle = handle;\n              selectedHandle.name = name;\n              selectedHandle.startPos = {\n                x: targetWidth * handle[0] + selectedElmX,\n                y: targetHeight * handle[1] + selectedElmY\n              };\n              startScrollWidth = rootElement.scrollWidth;\n              startScrollHeight = rootElement.scrollHeight;\n              resizeBackdrop = dom.add(rootElement, 'div', {\n                'class': 'mce-resize-backdrop',\n                'data-mce-bogus': 'all'\n              });\n              dom.setStyles(resizeBackdrop, {\n                position: 'fixed',\n                left: '0',\n                top: '0',\n                width: '100%',\n                height: '100%'\n              });\n              selectedElmGhost = createGhostElement(selectedElm);\n              dom.addClass(selectedElmGhost, 'mce-clonedresizable');\n              dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');\n              selectedElmGhost.contentEditable = 'false';\n              dom.setStyles(selectedElmGhost, {\n                left: selectedElmX,\n                top: selectedElmY,\n                margin: 0\n              });\n              setGhostElmSize(selectedElmGhost, targetWidth, targetHeight);\n              selectedElmGhost.removeAttribute(elementSelectionAttr);\n              rootElement.appendChild(selectedElmGhost);\n              dom.bind(editableDoc, 'mousemove', resizeGhostElement);\n              dom.bind(editableDoc, 'mouseup', endGhostResize);\n              if (rootDocument !== editableDoc) {\n                dom.bind(rootDocument, 'mousemove', resizeGhostElement);\n                dom.bind(rootDocument, 'mouseup', endGhostResize);\n              }\n              resizeHelper = dom.add(rootElement, 'div', {\n                'class': 'mce-resize-helper',\n                'data-mce-bogus': 'all'\n              }, startW + ' &times; ' + startH);\n            };\n            let handleElm = dom.get('mceResizeHandle' + name);\n            if (handleElm) {\n              dom.remove(handleElm);\n            }\n            handleElm = dom.add(rootElement, 'div', {\n              'id': 'mceResizeHandle' + name,\n              'data-mce-bogus': 'all',\n              'class': 'mce-resizehandle',\n              'unselectable': true,\n              'style': 'cursor:' + name + '-resize; margin:0; padding:0'\n            });\n            dom.bind(handleElm, 'mousedown', e => {\n              e.stopImmediatePropagation();\n              e.preventDefault();\n              startDrag(e);\n            });\n            handle.elm = handleElm;\n            dom.setStyles(handleElm, {\n              left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2,\n              top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2\n            });\n          });\n        } else {\n          hideResizeRect(false);\n        }\n      };\n      const throttledShowResizeRect = first$1(showResizeRect, 0);\n      const hideResizeRect = (removeSelected = true) => {\n        throttledShowResizeRect.cancel();\n        unbindResizeHandleEvents();\n        if (selectedElm && removeSelected) {\n          selectedElm.removeAttribute(elementSelectionAttr);\n        }\n        each$d(resizeHandles, (value, name) => {\n          const handleElm = dom.get('mceResizeHandle' + name);\n          if (handleElm) {\n            dom.unbind(handleElm);\n            dom.remove(handleElm);\n          }\n        });\n      };\n      const isChildOrEqual = (node, parent) => dom.isChildOf(node, parent);\n      const updateResizeRect = e => {\n        if (resizeStarted || editor.removed || editor.composing) {\n          return;\n        }\n        const targetElm = e.type === 'mousedown' ? e.target : selection.getNode();\n        const controlElm = closest$3(SugarElement.fromDom(targetElm), controlElmSelector).map(e => e.dom).getOrUndefined();\n        const selectedValue = isNonNullable(controlElm) ? dom.getAttrib(controlElm, elementSelectionAttr, '1') : '1';\n        each$e(dom.select(`img[${ elementSelectionAttr }],hr[${ elementSelectionAttr }]`), img => {\n          img.removeAttribute(elementSelectionAttr);\n        });\n        if (isNonNullable(controlElm) && isChildOrEqual(controlElm, rootElement)) {\n          disableGeckoResize();\n          const startElm = selection.getStart(true);\n          if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) {\n            dom.setAttrib(controlElm, elementSelectionAttr, selectedValue);\n            throttledShowResizeRect.throttle(controlElm);\n            return;\n          }\n        }\n        hideResizeRect();\n      };\n      const unbindResizeHandleEvents = () => {\n        each$d(resizeHandles, handle => {\n          if (handle.elm) {\n            dom.unbind(handle.elm);\n            delete handle.elm;\n          }\n        });\n      };\n      const disableGeckoResize = () => {\n        try {\n          editor.getDoc().execCommand('enableObjectResizing', false, 'false');\n        } catch (ex) {\n        }\n      };\n      editor.on('init', () => {\n        disableGeckoResize();\n        editor.on('NodeChange ResizeEditor ResizeWindow ResizeContent drop', updateResizeRect);\n        editor.on('keyup compositionend', e => {\n          if (selectedElm && selectedElm.nodeName === 'TABLE') {\n            updateResizeRect(e);\n          }\n        });\n        editor.on('hide blur', hideResizeRect);\n        editor.on('contextmenu longpress', contextMenuSelectImage, true);\n      });\n      editor.on('remove', unbindResizeHandleEvents);\n      const destroy = () => {\n        throttledShowResizeRect.cancel();\n        selectedElm = selectedElmGhost = resizeBackdrop = null;\n      };\n      return {\n        isResizable,\n        showResizeRect,\n        hideResizeRect,\n        updateResizeRect,\n        destroy\n      };\n    };\n\n    const setStart = (rng, situ) => {\n      situ.fold(e => {\n        rng.setStartBefore(e.dom);\n      }, (e, o) => {\n        rng.setStart(e.dom, o);\n      }, e => {\n        rng.setStartAfter(e.dom);\n      });\n    };\n    const setFinish = (rng, situ) => {\n      situ.fold(e => {\n        rng.setEndBefore(e.dom);\n      }, (e, o) => {\n        rng.setEnd(e.dom, o);\n      }, e => {\n        rng.setEndAfter(e.dom);\n      });\n    };\n    const relativeToNative = (win, startSitu, finishSitu) => {\n      const range = win.document.createRange();\n      setStart(range, startSitu);\n      setFinish(range, finishSitu);\n      return range;\n    };\n    const exactToNative = (win, start, soffset, finish, foffset) => {\n      const rng = win.document.createRange();\n      rng.setStart(start.dom, soffset);\n      rng.setEnd(finish.dom, foffset);\n      return rng;\n    };\n\n    const adt$3 = Adt.generate([\n      {\n        ltr: [\n          'start',\n          'soffset',\n          'finish',\n          'foffset'\n        ]\n      },\n      {\n        rtl: [\n          'start',\n          'soffset',\n          'finish',\n          'foffset'\n        ]\n      }\n    ]);\n    const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n    const getRanges = (win, selection) => selection.match({\n      domRange: rng => {\n        return {\n          ltr: constant(rng),\n          rtl: Optional.none\n        };\n      },\n      relative: (startSitu, finishSitu) => {\n        return {\n          ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n          rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n        };\n      },\n      exact: (start, soffset, finish, foffset) => {\n        return {\n          ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n          rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n        };\n      }\n    });\n    const doDiagnose = (win, ranges) => {\n      const rng = ranges.ltr();\n      if (rng.collapsed) {\n        const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n        return reversed.map(rev => adt$3.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$3.ltr, rng));\n      } else {\n        return fromRange(win, adt$3.ltr, rng);\n      }\n    };\n    const diagnose = (win, selection) => {\n      const ranges = getRanges(win, selection);\n      return doDiagnose(win, ranges);\n    };\n    adt$3.ltr;\n    adt$3.rtl;\n\n    const create$a = (start, soffset, finish, foffset) => ({\n      start,\n      soffset,\n      finish,\n      foffset\n    });\n    const SimRange = { create: create$a };\n\n    const caretPositionFromPoint = (doc, x, y) => {\n      var _a, _b;\n      return Optional.from((_b = (_a = doc.dom).caretPositionFromPoint) === null || _b === void 0 ? void 0 : _b.call(_a, x, y)).bind(pos => {\n        if (pos.offsetNode === null) {\n          return Optional.none();\n        }\n        const r = doc.dom.createRange();\n        r.setStart(pos.offsetNode, pos.offset);\n        r.collapse();\n        return Optional.some(r);\n      });\n    };\n    const caretRangeFromPoint = (doc, x, y) => {\n      var _a, _b;\n      return Optional.from((_b = (_a = doc.dom).caretRangeFromPoint) === null || _b === void 0 ? void 0 : _b.call(_a, x, y));\n    };\n    const availableSearch = (() => {\n      if (document.caretPositionFromPoint) {\n        return caretPositionFromPoint;\n      } else if (document.caretRangeFromPoint) {\n        return caretRangeFromPoint;\n      } else {\n        return Optional.none;\n      }\n    })();\n    const fromPoint$1 = (win, x, y) => {\n      const doc = SugarElement.fromDom(win.document);\n      return availableSearch(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n    };\n\n    const adt$2 = Adt.generate([\n      { before: ['element'] },\n      {\n        on: [\n          'element',\n          'offset'\n        ]\n      },\n      { after: ['element'] }\n    ]);\n    const cata = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n    const getStart$2 = situ => situ.fold(identity, identity, identity);\n    const before$1 = adt$2.before;\n    const on = adt$2.on;\n    const after$1 = adt$2.after;\n    const Situ = {\n      before: before$1,\n      on,\n      after: after$1,\n      cata,\n      getStart: getStart$2\n    };\n\n    const adt$1 = Adt.generate([\n      { domRange: ['rng'] },\n      {\n        relative: [\n          'startSitu',\n          'finishSitu'\n        ]\n      },\n      {\n        exact: [\n          'start',\n          'soffset',\n          'finish',\n          'foffset'\n        ]\n      }\n    ]);\n    const exactFromRange = simRange => adt$1.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n    const getStart$1 = selection => selection.match({\n      domRange: rng => SugarElement.fromDom(rng.startContainer),\n      relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n      exact: (start, _soffset, _finish, _foffset) => start\n    });\n    const domRange = adt$1.domRange;\n    const relative = adt$1.relative;\n    const exact = adt$1.exact;\n    const getWin = selection => {\n      const start = getStart$1(selection);\n      return defaultView(start);\n    };\n    const range = SimRange.create;\n    const SimSelection = {\n      domRange,\n      relative,\n      exact,\n      exactFromRange,\n      getWin,\n      range\n    };\n\n    const beforeSpecial = (element, offset) => {\n      const name$1 = name(element);\n      if ('input' === name$1) {\n        return Situ.after(element);\n      } else if (!contains$2([\n          'br',\n          'img'\n        ], name$1)) {\n        return Situ.on(element, offset);\n      } else {\n        return offset === 0 ? Situ.before(element) : Situ.after(element);\n      }\n    };\n    const preprocessRelative = (startSitu, finishSitu) => {\n      const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n      const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n      return SimSelection.relative(start, finish);\n    };\n    const preprocessExact = (start, soffset, finish, foffset) => {\n      const startSitu = beforeSpecial(start, soffset);\n      const finishSitu = beforeSpecial(finish, foffset);\n      return SimSelection.relative(startSitu, finishSitu);\n    };\n    const preprocess = selection => selection.match({\n      domRange: rng => {\n        const start = SugarElement.fromDom(rng.startContainer);\n        const finish = SugarElement.fromDom(rng.endContainer);\n        return preprocessExact(start, rng.startOffset, finish, rng.endOffset);\n      },\n      relative: preprocessRelative,\n      exact: preprocessExact\n    });\n\n    const fromElements = (elements, scope) => {\n      const doc = scope || document;\n      const fragment = doc.createDocumentFragment();\n      each$e(elements, element => {\n        fragment.appendChild(element.dom);\n      });\n      return SugarElement.fromDom(fragment);\n    };\n\n    const toNative = selection => {\n      const win = SimSelection.getWin(selection).dom;\n      const getDomRange = (start, soffset, finish, foffset) => exactToNative(win, start, soffset, finish, foffset);\n      const filtered = preprocess(selection);\n      return diagnose(win, filtered).match({\n        ltr: getDomRange,\n        rtl: getDomRange\n      });\n    };\n    const getAtPoint = (win, x, y) => fromPoint$1(win, x, y);\n\n    const fromPoint = (clientX, clientY, doc) => {\n      const win = defaultView(SugarElement.fromDom(doc));\n      return getAtPoint(win.dom, clientX, clientY).map(simRange => {\n        const rng = doc.createRange();\n        rng.setStart(simRange.start.dom, simRange.soffset);\n        rng.setEnd(simRange.finish.dom, simRange.foffset);\n        return rng;\n      }).getOrUndefined();\n    };\n\n    const isEq$4 = (rng1, rng2) => {\n      return isNonNullable(rng1) && isNonNullable(rng2) && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);\n    };\n\n    const findParent = (node, rootNode, predicate) => {\n      let currentNode = node;\n      while (currentNode && currentNode !== rootNode) {\n        if (predicate(currentNode)) {\n          return currentNode;\n        }\n        currentNode = currentNode.parentNode;\n      }\n      return null;\n    };\n    const hasParent$1 = (node, rootNode, predicate) => findParent(node, rootNode, predicate) !== null;\n    const hasParentWithName = (node, rootNode, name) => hasParent$1(node, rootNode, node => node.nodeName === name);\n    const isCeFalseCaretContainer = (node, rootNode) => isCaretContainer$2(node) && !hasParent$1(node, rootNode, isCaretNode);\n    const hasBrBeforeAfter = (dom, node, left) => {\n      const parentNode = node.parentNode;\n      if (parentNode) {\n        const walker = new DomTreeWalker(node, dom.getParent(parentNode, dom.isBlock) || dom.getRoot());\n        let currentNode;\n        while (currentNode = walker[left ? 'prev' : 'next']()) {\n          if (isBr$6(currentNode)) {\n            return true;\n          }\n        }\n      }\n      return false;\n    };\n    const isPrevNode = (node, name) => {\n      var _a;\n      return ((_a = node.previousSibling) === null || _a === void 0 ? void 0 : _a.nodeName) === name;\n    };\n    const hasContentEditableFalseParent = (root, node) => {\n      let currentNode = node;\n      while (currentNode && currentNode !== root) {\n        if (isContentEditableFalse$a(currentNode)) {\n          return true;\n        }\n        currentNode = currentNode.parentNode;\n      }\n      return false;\n    };\n    const findTextNodeRelative = (dom, isAfterNode, collapsed, left, startNode) => {\n      const body = dom.getRoot();\n      const nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n      const parentNode = startNode.parentNode;\n      let lastInlineElement;\n      let node;\n      if (!parentNode) {\n        return Optional.none();\n      }\n      const parentBlockContainer = dom.getParent(parentNode, dom.isBlock) || body;\n      if (left && isBr$6(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {\n        return Optional.some(CaretPosition(parentNode, dom.nodeIndex(startNode)));\n      }\n      const walker = new DomTreeWalker(startNode, parentBlockContainer);\n      while (node = walker[left ? 'prev' : 'next']()) {\n        if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {\n          return Optional.none();\n        }\n        if (isText$a(node) && node.data.length > 0) {\n          if (!hasParentWithName(node, body, 'A')) {\n            return Optional.some(CaretPosition(node, left ? node.data.length : 0));\n          }\n          return Optional.none();\n        }\n        if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n          return Optional.none();\n        }\n        lastInlineElement = node;\n      }\n      if (isComment(lastInlineElement)) {\n        return Optional.none();\n      }\n      if (collapsed && lastInlineElement) {\n        return Optional.some(CaretPosition(lastInlineElement, 0));\n      }\n      return Optional.none();\n    };\n    const normalizeEndPoint = (dom, collapsed, start, rng) => {\n      const body = dom.getRoot();\n      let node;\n      let normalized = false;\n      let container = start ? rng.startContainer : rng.endContainer;\n      let offset = start ? rng.startOffset : rng.endOffset;\n      const isAfterNode = isElement$6(container) && offset === container.childNodes.length;\n      const nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n      let directionLeft = start;\n      if (isCaretContainer$2(container)) {\n        return Optional.none();\n      }\n      if (isElement$6(container) && offset > container.childNodes.length - 1) {\n        directionLeft = false;\n      }\n      if (isDocument$1(container)) {\n        container = body;\n        offset = 0;\n      }\n      if (container === body) {\n        if (directionLeft) {\n          node = container.childNodes[offset > 0 ? offset - 1 : 0];\n          if (node) {\n            if (isCaretContainer$2(node)) {\n              return Optional.none();\n            }\n            if (nonEmptyElementsMap[node.nodeName] || isTable$2(node)) {\n              return Optional.none();\n            }\n          }\n        }\n        if (container.hasChildNodes()) {\n          offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);\n          container = container.childNodes[offset];\n          offset = isText$a(container) && isAfterNode ? container.data.length : 0;\n          if (!collapsed && container === body.lastChild && isTable$2(container)) {\n            return Optional.none();\n          }\n          if (hasContentEditableFalseParent(body, container) || isCaretContainer$2(container)) {\n            return Optional.none();\n          }\n          if (container.hasChildNodes() && !isTable$2(container)) {\n            node = container;\n            const walker = new DomTreeWalker(container, body);\n            do {\n              if (isContentEditableFalse$a(node) || isCaretContainer$2(node)) {\n                normalized = false;\n                break;\n              }\n              if (isText$a(node) && node.data.length > 0) {\n                offset = directionLeft ? 0 : node.data.length;\n                container = node;\n                normalized = true;\n                break;\n              }\n              if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCellOrCaption(node)) {\n                offset = dom.nodeIndex(node);\n                container = node.parentNode;\n                if (!directionLeft) {\n                  offset++;\n                }\n                normalized = true;\n                break;\n              }\n            } while (node = directionLeft ? walker.next() : walker.prev());\n          }\n        }\n      }\n      if (collapsed) {\n        if (isText$a(container) && offset === 0) {\n          findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(pos => {\n            container = pos.container();\n            offset = pos.offset();\n            normalized = true;\n          });\n        }\n        if (isElement$6(container)) {\n          node = container.childNodes[offset];\n          if (!node) {\n            node = container.childNodes[offset - 1];\n          }\n          if (node && isBr$6(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {\n            findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(pos => {\n              container = pos.container();\n              offset = pos.offset();\n              normalized = true;\n            });\n          }\n        }\n      }\n      if (directionLeft && !collapsed && isText$a(container) && offset === container.data.length) {\n        findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(pos => {\n          container = pos.container();\n          offset = pos.offset();\n          normalized = true;\n        });\n      }\n      return normalized && container ? Optional.some(CaretPosition(container, offset)) : Optional.none();\n    };\n    const normalize$2 = (dom, rng) => {\n      const collapsed = rng.collapsed, normRng = rng.cloneRange();\n      const startPos = CaretPosition.fromRangeStart(rng);\n      normalizeEndPoint(dom, collapsed, true, normRng).each(pos => {\n        if (!collapsed || !CaretPosition.isAbove(startPos, pos)) {\n          normRng.setStart(pos.container(), pos.offset());\n        }\n      });\n      if (!collapsed) {\n        normalizeEndPoint(dom, collapsed, false, normRng).each(pos => {\n          normRng.setEnd(pos.container(), pos.offset());\n        });\n      }\n      if (collapsed) {\n        normRng.collapse(true);\n      }\n      return isEq$4(rng, normRng) ? Optional.none() : Optional.some(normRng);\n    };\n\n    const splitText = (node, offset) => {\n      return node.splitText(offset);\n    };\n    const split = rng => {\n      let startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n      if (startContainer === endContainer && isText$a(startContainer)) {\n        if (startOffset > 0 && startOffset < startContainer.data.length) {\n          endContainer = splitText(startContainer, startOffset);\n          startContainer = endContainer.previousSibling;\n          if (endOffset > startOffset) {\n            endOffset = endOffset - startOffset;\n            const newContainer = splitText(endContainer, endOffset).previousSibling;\n            startContainer = endContainer = newContainer;\n            endOffset = newContainer.data.length;\n            startOffset = 0;\n          } else {\n            endOffset = 0;\n          }\n        }\n      } else {\n        if (isText$a(startContainer) && startOffset > 0 && startOffset < startContainer.data.length) {\n          startContainer = splitText(startContainer, startOffset);\n          startOffset = 0;\n        }\n        if (isText$a(endContainer) && endOffset > 0 && endOffset < endContainer.data.length) {\n          const newContainer = splitText(endContainer, endOffset).previousSibling;\n          endContainer = newContainer;\n          endOffset = newContainer.data.length;\n        }\n      }\n      return {\n        startContainer,\n        startOffset,\n        endContainer,\n        endOffset\n      };\n    };\n\n    const RangeUtils = dom => {\n      const walk = (rng, callback) => {\n        return walk$3(dom, rng, callback);\n      };\n      const split$1 = split;\n      const normalize = rng => {\n        return normalize$2(dom, rng).fold(never, normalizedRng => {\n          rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);\n          rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);\n          return true;\n        });\n      };\n      const expand = (rng, options = { type: 'word' }) => {\n        if (options.type === 'word') {\n          const rangeLike = expandRng(dom, rng, [{ inline: 'span' }]);\n          const newRange = dom.createRng();\n          newRange.setStart(rangeLike.startContainer, rangeLike.startOffset);\n          newRange.setEnd(rangeLike.endContainer, rangeLike.endOffset);\n          return newRange;\n        }\n        return rng;\n      };\n      return {\n        walk,\n        split: split$1,\n        expand,\n        normalize\n      };\n    };\n    RangeUtils.compareRanges = isEq$4;\n    RangeUtils.getCaretRangeFromPoint = fromPoint;\n    RangeUtils.getSelectedNode = getSelectedNode;\n    RangeUtils.getNode = getNode$1;\n\n    const Dimension = (name, getOffset) => {\n      const set = (element, h) => {\n        if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n          throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n        }\n        const dom = element.dom;\n        if (isSupported$1(dom)) {\n          dom.style[name] = h + 'px';\n        }\n      };\n      const get = element => {\n        const r = getOffset(element);\n        if (r <= 0 || r === null) {\n          const css = get$7(element, name);\n          return parseFloat(css) || 0;\n        }\n        return r;\n      };\n      const getOuter = get;\n      const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n        const val = get$7(element, property);\n        const value = val === undefined ? 0 : parseInt(val, 10);\n        return isNaN(value) ? acc : acc + value;\n      }, 0);\n      const max = (element, value, properties) => {\n        const cumulativeInclusions = aggregate(element, properties);\n        const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n        return absoluteMax;\n      };\n      return {\n        set,\n        get,\n        getOuter,\n        aggregate,\n        max\n      };\n    };\n\n    const api = Dimension('height', element => {\n      const dom = element.dom;\n      return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n    });\n    const get$2 = element => api.get(element);\n\n    const getDocument = () => SugarElement.fromDom(document);\n\n    const walkUp = (navigation, doc) => {\n      const frame = navigation.view(doc);\n      return frame.fold(constant([]), f => {\n        const parent = navigation.owner(f);\n        const rest = walkUp(navigation, parent);\n        return [f].concat(rest);\n      });\n    };\n    const pathTo = (element, navigation) => {\n      const d = navigation.owner(element);\n      return walkUp(navigation, d);\n    };\n\n    const view = doc => {\n      var _a;\n      const element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n      return element.map(SugarElement.fromDom);\n    };\n    const owner = element => documentOrOwner(element);\n\n    var Navigation = /*#__PURE__*/Object.freeze({\n        __proto__: null,\n        view: view,\n        owner: owner\n    });\n\n    const find = element => {\n      const doc = getDocument();\n      const scroll = get$5(doc);\n      const frames = pathTo(element, Navigation);\n      const offset = viewport(element);\n      const r = foldr(frames, (b, a) => {\n        const loc = viewport(a);\n        return {\n          left: b.left + loc.left,\n          top: b.top + loc.top\n        };\n      }, {\n        left: 0,\n        top: 0\n      });\n      return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n    };\n\n    const excludeFromDescend = element => name(element) === 'textarea';\n    const fireScrollIntoViewEvent = (editor, data) => {\n      const scrollEvent = editor.dispatch('ScrollIntoView', data);\n      return scrollEvent.isDefaultPrevented();\n    };\n    const fireAfterScrollIntoViewEvent = (editor, data) => {\n      editor.dispatch('AfterScrollIntoView', data);\n    };\n    const descend = (element, offset) => {\n      const children = children$1(element);\n      if (children.length === 0 || excludeFromDescend(element)) {\n        return {\n          element,\n          offset\n        };\n      } else if (offset < children.length && !excludeFromDescend(children[offset])) {\n        return {\n          element: children[offset],\n          offset: 0\n        };\n      } else {\n        const last = children[children.length - 1];\n        if (excludeFromDescend(last)) {\n          return {\n            element,\n            offset\n          };\n        } else {\n          if (name(last) === 'img') {\n            return {\n              element: last,\n              offset: 1\n            };\n          } else if (isText$b(last)) {\n            return {\n              element: last,\n              offset: get$3(last).length\n            };\n          } else {\n            return {\n              element: last,\n              offset: children$1(last).length\n            };\n          }\n        }\n      }\n    };\n    const markerInfo = (element, cleanupFun) => {\n      const pos = absolute(element);\n      const height = get$2(element);\n      return {\n        element,\n        bottom: pos.top + height,\n        height,\n        pos,\n        cleanup: cleanupFun\n      };\n    };\n    const createMarker$1 = (element, offset) => {\n      const startPoint = descend(element, offset);\n      const span = SugarElement.fromHtml('<span data-mce-bogus=\"all\" style=\"display: inline-block;\">' + ZWSP$1 + '</span>');\n      before$3(startPoint.element, span);\n      return markerInfo(span, () => remove$6(span));\n    };\n    const elementMarker = element => markerInfo(SugarElement.fromDom(element), noop);\n    const withMarker = (editor, f, rng, alignToTop) => {\n      preserveWith(editor, (_s, _e) => applyWithMarker(editor, f, rng, alignToTop), rng);\n    };\n    const withScrollEvents = (editor, doc, f, marker, alignToTop) => {\n      const data = {\n        elm: marker.element.dom,\n        alignToTop\n      };\n      if (fireScrollIntoViewEvent(editor, data)) {\n        return;\n      }\n      const scrollTop = get$5(doc).top;\n      f(doc, scrollTop, marker, alignToTop);\n      fireAfterScrollIntoViewEvent(editor, data);\n    };\n    const applyWithMarker = (editor, f, rng, alignToTop) => {\n      const body = SugarElement.fromDom(editor.getBody());\n      const doc = SugarElement.fromDom(editor.getDoc());\n      reflow(body);\n      const marker = createMarker$1(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n      withScrollEvents(editor, doc, f, marker, alignToTop);\n      marker.cleanup();\n    };\n    const withElement = (editor, element, f, alignToTop) => {\n      const doc = SugarElement.fromDom(editor.getDoc());\n      withScrollEvents(editor, doc, f, elementMarker(element), alignToTop);\n    };\n    const preserveWith = (editor, f, rng) => {\n      const startElement = rng.startContainer;\n      const startOffset = rng.startOffset;\n      const endElement = rng.endContainer;\n      const endOffset = rng.endOffset;\n      f(SugarElement.fromDom(startElement), SugarElement.fromDom(endElement));\n      const newRng = editor.dom.createRng();\n      newRng.setStart(startElement, startOffset);\n      newRng.setEnd(endElement, endOffset);\n      editor.selection.setRng(rng);\n    };\n    const scrollToMarker = (marker, viewHeight, alignToTop, doc) => {\n      const pos = marker.pos;\n      if (alignToTop) {\n        to(pos.left, pos.top, doc);\n      } else {\n        const y = pos.top - viewHeight + marker.height;\n        to(pos.left, y, doc);\n      }\n    };\n    const intoWindowIfNeeded = (doc, scrollTop, viewHeight, marker, alignToTop) => {\n      const viewportBottom = viewHeight + scrollTop;\n      const markerTop = marker.pos.top;\n      const markerBottom = marker.bottom;\n      const largerThanViewport = markerBottom - markerTop >= viewHeight;\n      if (markerTop < scrollTop) {\n        scrollToMarker(marker, viewHeight, alignToTop !== false, doc);\n      } else if (markerTop > viewportBottom) {\n        const align = largerThanViewport ? alignToTop !== false : alignToTop === true;\n        scrollToMarker(marker, viewHeight, align, doc);\n      } else if (markerBottom > viewportBottom && !largerThanViewport) {\n        scrollToMarker(marker, viewHeight, alignToTop === true, doc);\n      }\n    };\n    const intoWindow = (doc, scrollTop, marker, alignToTop) => {\n      const viewHeight = defaultView(doc).dom.innerHeight;\n      intoWindowIfNeeded(doc, scrollTop, viewHeight, marker, alignToTop);\n    };\n    const intoFrame = (doc, scrollTop, marker, alignToTop) => {\n      const frameViewHeight = defaultView(doc).dom.innerHeight;\n      intoWindowIfNeeded(doc, scrollTop, frameViewHeight, marker, alignToTop);\n      const op = find(marker.element);\n      const viewportBounds = getBounds(window);\n      if (op.top < viewportBounds.y) {\n        intoView(marker.element, alignToTop !== false);\n      } else if (op.top > viewportBounds.bottom) {\n        intoView(marker.element, alignToTop === true);\n      }\n    };\n    const rangeIntoWindow = (editor, rng, alignToTop) => withMarker(editor, intoWindow, rng, alignToTop);\n    const elementIntoWindow = (editor, element, alignToTop) => withElement(editor, element, intoWindow, alignToTop);\n    const rangeIntoFrame = (editor, rng, alignToTop) => withMarker(editor, intoFrame, rng, alignToTop);\n    const elementIntoFrame = (editor, element, alignToTop) => withElement(editor, element, intoFrame, alignToTop);\n    const scrollElementIntoView = (editor, element, alignToTop) => {\n      const scroller = editor.inline ? elementIntoWindow : elementIntoFrame;\n      scroller(editor, element, alignToTop);\n    };\n    const scrollRangeIntoView = (editor, rng, alignToTop) => {\n      const scroller = editor.inline ? rangeIntoWindow : rangeIntoFrame;\n      scroller(editor, rng, alignToTop);\n    };\n\n    const focus$1 = element => element.dom.focus();\n    const hasFocus$1 = element => {\n      const root = getRootNode(element).dom;\n      return element.dom === root.activeElement;\n    };\n    const active$1 = (root = getDocument()) => Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n    const search = element => active$1(getRootNode(element)).filter(e => element.dom.contains(e.dom));\n\n    const clamp$1 = (offset, element) => {\n      const max = isText$b(element) ? get$3(element).length : children$1(element).length + 1;\n      if (offset > max) {\n        return max;\n      } else if (offset < 0) {\n        return 0;\n      }\n      return offset;\n    };\n    const normalizeRng = rng => SimSelection.range(rng.start, clamp$1(rng.soffset, rng.start), rng.finish, clamp$1(rng.foffset, rng.finish));\n    const isOrContains = (root, elm) => !isRestrictedNode(elm.dom) && (contains(root, elm) || eq(root, elm));\n    const isRngInRoot = root => rng => isOrContains(root, rng.start) && isOrContains(root, rng.finish);\n    const shouldStore = editor => editor.inline || Env.browser.isFirefox();\n    const nativeRangeToSelectionRange = r => SimSelection.range(SugarElement.fromDom(r.startContainer), r.startOffset, SugarElement.fromDom(r.endContainer), r.endOffset);\n    const readRange = win => {\n      const selection = win.getSelection();\n      const rng = !selection || selection.rangeCount === 0 ? Optional.none() : Optional.from(selection.getRangeAt(0));\n      return rng.map(nativeRangeToSelectionRange);\n    };\n    const getBookmark = root => {\n      const win = defaultView(root);\n      return readRange(win.dom).filter(isRngInRoot(root));\n    };\n    const validate = (root, bookmark) => Optional.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng);\n    const bookmarkToNativeRng = bookmark => {\n      const rng = document.createRange();\n      try {\n        rng.setStart(bookmark.start.dom, bookmark.soffset);\n        rng.setEnd(bookmark.finish.dom, bookmark.foffset);\n        return Optional.some(rng);\n      } catch (_) {\n        return Optional.none();\n      }\n    };\n    const store = editor => {\n      const newBookmark = shouldStore(editor) ? getBookmark(SugarElement.fromDom(editor.getBody())) : Optional.none();\n      editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n    };\n    const getRng = editor => {\n      const bookmark = editor.bookmark ? editor.bookmark : Optional.none();\n      return bookmark.bind(x => validate(SugarElement.fromDom(editor.getBody()), x)).bind(bookmarkToNativeRng);\n    };\n    const restore = editor => {\n      getRng(editor).each(rng => editor.selection.setRng(rng));\n    };\n\n    const isEditorUIElement$1 = elm => {\n      const className = elm.className.toString();\n      return className.indexOf('tox-') !== -1 || className.indexOf('mce-') !== -1;\n    };\n    const FocusManager = { isEditorUIElement: isEditorUIElement$1 };\n\n    const wrappedSetTimeout = (callback, time) => {\n      if (!isNumber(time)) {\n        time = 0;\n      }\n      return setTimeout(callback, time);\n    };\n    const wrappedSetInterval = (callback, time) => {\n      if (!isNumber(time)) {\n        time = 0;\n      }\n      return setInterval(callback, time);\n    };\n    const Delay = {\n      setEditorTimeout: (editor, callback, time) => {\n        return wrappedSetTimeout(() => {\n          if (!editor.removed) {\n            callback();\n          }\n        }, time);\n      },\n      setEditorInterval: (editor, callback, time) => {\n        const timer = wrappedSetInterval(() => {\n          if (!editor.removed) {\n            callback();\n          } else {\n            clearInterval(timer);\n          }\n        }, time);\n        return timer;\n      }\n    };\n\n    const isManualNodeChange = e => {\n      return e.type === 'nodechange' && e.selectionChange;\n    };\n    const registerPageMouseUp = (editor, throttledStore) => {\n      const mouseUpPage = () => {\n        throttledStore.throttle();\n      };\n      DOMUtils.DOM.bind(document, 'mouseup', mouseUpPage);\n      editor.on('remove', () => {\n        DOMUtils.DOM.unbind(document, 'mouseup', mouseUpPage);\n      });\n    };\n    const registerMouseUp = (editor, throttledStore) => {\n      editor.on('mouseup touchend', _e => {\n        throttledStore.throttle();\n      });\n    };\n    const registerEditorEvents = (editor, throttledStore) => {\n      registerMouseUp(editor, throttledStore);\n      editor.on('keyup NodeChange AfterSetSelectionRange', e => {\n        if (!isManualNodeChange(e)) {\n          store(editor);\n        }\n      });\n    };\n    const register$6 = editor => {\n      const throttledStore = first$1(() => {\n        store(editor);\n      }, 0);\n      editor.on('init', () => {\n        if (editor.inline) {\n          registerPageMouseUp(editor, throttledStore);\n        }\n        registerEditorEvents(editor, throttledStore);\n      });\n      editor.on('remove', () => {\n        throttledStore.cancel();\n      });\n    };\n\n    let documentFocusInHandler;\n    const DOM$9 = DOMUtils.DOM;\n    const isEditorUIElement = elm => {\n      return isElement$6(elm) && FocusManager.isEditorUIElement(elm);\n    };\n    const isEditorContentAreaElement = elm => {\n      const classList = elm.classList;\n      if (classList !== undefined) {\n        return classList.contains('tox-edit-area') || classList.contains('tox-edit-area__iframe') || classList.contains('mce-content-body');\n      } else {\n        return false;\n      }\n    };\n    const isUIElement = (editor, elm) => {\n      const customSelector = getCustomUiSelector(editor);\n      const parent = DOM$9.getParent(elm, elm => {\n        return isEditorUIElement(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);\n      });\n      return parent !== null;\n    };\n    const getActiveElement = editor => {\n      try {\n        const root = getRootNode(SugarElement.fromDom(editor.getElement()));\n        return active$1(root).fold(() => document.body, x => x.dom);\n      } catch (ex) {\n        return document.body;\n      }\n    };\n    const registerEvents$1 = (editorManager, e) => {\n      const editor = e.editor;\n      register$6(editor);\n      editor.on('focusin', () => {\n        const focusedEditor = editorManager.focusedEditor;\n        if (focusedEditor !== editor) {\n          if (focusedEditor) {\n            focusedEditor.dispatch('blur', { focusedEditor: editor });\n          }\n          editorManager.setActive(editor);\n          editorManager.focusedEditor = editor;\n          editor.dispatch('focus', { blurredEditor: focusedEditor });\n          editor.focus(true);\n        }\n      });\n      editor.on('focusout', () => {\n        Delay.setEditorTimeout(editor, () => {\n          const focusedEditor = editorManager.focusedEditor;\n          if (!isUIElement(editor, getActiveElement(editor)) && focusedEditor === editor) {\n            editor.dispatch('blur', { focusedEditor: null });\n            editorManager.focusedEditor = null;\n          }\n        });\n      });\n      if (!documentFocusInHandler) {\n        documentFocusInHandler = e => {\n          const activeEditor = editorManager.activeEditor;\n          if (activeEditor) {\n            getOriginalEventTarget(e).each(target => {\n              const elem = target;\n              if (elem.ownerDocument === document) {\n                if (elem !== document.body && !isUIElement(activeEditor, elem) && editorManager.focusedEditor === activeEditor) {\n                  activeEditor.dispatch('blur', { focusedEditor: null });\n                  editorManager.focusedEditor = null;\n                }\n              }\n            });\n          }\n        };\n        DOM$9.bind(document, 'focusin', documentFocusInHandler);\n      }\n    };\n    const unregisterDocumentEvents = (editorManager, e) => {\n      if (editorManager.focusedEditor === e.editor) {\n        editorManager.focusedEditor = null;\n      }\n      if (!editorManager.activeEditor && documentFocusInHandler) {\n        DOM$9.unbind(document, 'focusin', documentFocusInHandler);\n        documentFocusInHandler = null;\n      }\n    };\n    const setup$v = editorManager => {\n      editorManager.on('AddEditor', curry(registerEvents$1, editorManager));\n      editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));\n    };\n\n    const getContentEditableHost = (editor, node) => editor.dom.getParent(node, node => editor.dom.getContentEditable(node) === 'true');\n    const getCollapsedNode = rng => rng.collapsed ? Optional.from(getNode$1(rng.startContainer, rng.startOffset)).map(SugarElement.fromDom) : Optional.none();\n    const getFocusInElement = (root, rng) => getCollapsedNode(rng).bind(node => {\n      if (isTableSection(node)) {\n        return Optional.some(node);\n      } else if (!contains(root, node)) {\n        return Optional.some(root);\n      } else {\n        return Optional.none();\n      }\n    });\n    const normalizeSelection = (editor, rng) => {\n      getFocusInElement(SugarElement.fromDom(editor.getBody()), rng).bind(elm => {\n        return firstPositionIn(elm.dom);\n      }).fold(() => {\n        editor.selection.normalize();\n      }, caretPos => editor.selection.setRng(caretPos.toRange()));\n    };\n    const focusBody = body => {\n      if (body.setActive) {\n        try {\n          body.setActive();\n        } catch (ex) {\n          body.focus();\n        }\n      } else {\n        body.focus();\n      }\n    };\n    const hasElementFocus = elm => hasFocus$1(elm) || search(elm).isSome();\n    const hasIframeFocus = editor => isNonNullable(editor.iframeElement) && hasFocus$1(SugarElement.fromDom(editor.iframeElement));\n    const hasInlineFocus = editor => {\n      const rawBody = editor.getBody();\n      return rawBody && hasElementFocus(SugarElement.fromDom(rawBody));\n    };\n    const hasUiFocus = editor => {\n      const dos = getRootNode(SugarElement.fromDom(editor.getElement()));\n      return active$1(dos).filter(elem => !isEditorContentAreaElement(elem.dom) && isUIElement(editor, elem.dom)).isSome();\n    };\n    const hasFocus = editor => editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);\n    const hasEditorOrUiFocus = editor => hasFocus(editor) || hasUiFocus(editor);\n    const focusEditor = editor => {\n      const selection = editor.selection;\n      const body = editor.getBody();\n      let rng = selection.getRng();\n      editor.quirks.refreshContentEditable();\n      if (isNonNullable(editor.bookmark) && !hasFocus(editor)) {\n        getRng(editor).each(bookmarkRng => {\n          editor.selection.setRng(bookmarkRng);\n          rng = bookmarkRng;\n        });\n      }\n      const contentEditableHost = getContentEditableHost(editor, selection.getNode());\n      if (contentEditableHost && editor.dom.isChildOf(contentEditableHost, body)) {\n        focusBody(contentEditableHost);\n        normalizeSelection(editor, rng);\n        activateEditor(editor);\n        return;\n      }\n      if (!editor.inline) {\n        if (!Env.browser.isOpera()) {\n          focusBody(body);\n        }\n        editor.getWin().focus();\n      }\n      if (Env.browser.isFirefox() || editor.inline) {\n        focusBody(body);\n        normalizeSelection(editor, rng);\n      }\n      activateEditor(editor);\n    };\n    const activateEditor = editor => editor.editorManager.setActive(editor);\n    const focus = (editor, skipFocus) => {\n      if (editor.removed) {\n        return;\n      }\n      if (skipFocus) {\n        activateEditor(editor);\n      } else {\n        focusEditor(editor);\n      }\n    };\n\n    const getEndpointElement = (root, rng, start, real, resolve) => {\n      const container = start ? rng.startContainer : rng.endContainer;\n      const offset = start ? rng.startOffset : rng.endOffset;\n      return Optional.from(container).map(SugarElement.fromDom).map(elm => !real || !rng.collapsed ? child$1(elm, resolve(elm, offset)).getOr(elm) : elm).bind(elm => isElement$7(elm) ? Optional.some(elm) : parent(elm).filter(isElement$7)).map(elm => elm.dom).getOr(root);\n    };\n    const getStart = (root, rng, real = false) => getEndpointElement(root, rng, true, real, (elm, offset) => Math.min(childNodesCount(elm), offset));\n    const getEnd$1 = (root, rng, real = false) => getEndpointElement(root, rng, false, real, (elm, offset) => offset > 0 ? offset - 1 : offset);\n    const skipEmptyTextNodes = (node, forwards) => {\n      const orig = node;\n      while (node && isText$a(node) && node.length === 0) {\n        node = forwards ? node.nextSibling : node.previousSibling;\n      }\n      return node || orig;\n    };\n    const getNode = (root, rng) => {\n      if (!rng) {\n        return root;\n      }\n      let startContainer = rng.startContainer;\n      let endContainer = rng.endContainer;\n      const startOffset = rng.startOffset;\n      const endOffset = rng.endOffset;\n      let node = rng.commonAncestorContainer;\n      if (!rng.collapsed) {\n        if (startContainer === endContainer) {\n          if (endOffset - startOffset < 2) {\n            if (startContainer.hasChildNodes()) {\n              node = startContainer.childNodes[startOffset];\n            }\n          }\n        }\n        if (isText$a(startContainer) && isText$a(endContainer)) {\n          if (startContainer.length === startOffset) {\n            startContainer = skipEmptyTextNodes(startContainer.nextSibling, true);\n          } else {\n            startContainer = startContainer.parentNode;\n          }\n          if (endOffset === 0) {\n            endContainer = skipEmptyTextNodes(endContainer.previousSibling, false);\n          } else {\n            endContainer = endContainer.parentNode;\n          }\n          if (startContainer && startContainer === endContainer) {\n            node = startContainer;\n          }\n        }\n      }\n      const elm = isText$a(node) ? node.parentNode : node;\n      return isElement$6(elm) ? elm : root;\n    };\n    const getSelectedBlocks = (dom, rng, startElm, endElm) => {\n      const selectedBlocks = [];\n      const root = dom.getRoot();\n      const start = dom.getParent(startElm || getStart(root, rng, rng.collapsed), dom.isBlock);\n      const end = dom.getParent(endElm || getEnd$1(root, rng, rng.collapsed), dom.isBlock);\n      if (start && start !== root) {\n        selectedBlocks.push(start);\n      }\n      if (start && end && start !== end) {\n        let node = start;\n        const walker = new DomTreeWalker(start, root);\n        while ((node = walker.next()) && node !== end) {\n          if (dom.isBlock(node)) {\n            selectedBlocks.push(node);\n          }\n        }\n      }\n      if (end && start !== end && end !== root) {\n        selectedBlocks.push(end);\n      }\n      return selectedBlocks;\n    };\n    const select = (dom, node, content) => Optional.from(node).bind(node => Optional.from(node.parentNode).map(parent => {\n      const idx = dom.nodeIndex(node);\n      const rng = dom.createRng();\n      rng.setStart(parent, idx);\n      rng.setEnd(parent, idx + 1);\n      if (content) {\n        moveEndPoint(dom, rng, node, true);\n        moveEndPoint(dom, rng, node, false);\n      }\n      return rng;\n    }));\n\n    const processRanges = (editor, ranges) => map$3(ranges, range => {\n      const evt = editor.dispatch('GetSelectionRange', { range });\n      return evt.range !== range ? evt.range : range;\n    });\n\n    const getEnd = element => name(element) === 'img' ? 1 : getOption(element).fold(() => children$1(element).length, v => v.length);\n    const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome();\n    const elementsWithCursorPosition = [\n      'img',\n      'br'\n    ];\n    const isCursorPosition = elem => {\n      const hasCursorPosition = isTextNodeWithCursorPosition(elem);\n      return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem));\n    };\n\n    const first = element => descendant$1(element, isCursorPosition);\n    const last = element => descendantRtl(element, isCursorPosition);\n    const descendantRtl = (scope, predicate) => {\n      const descend = element => {\n        const children = children$1(element);\n        for (let i = children.length - 1; i >= 0; i--) {\n          const child = children[i];\n          if (predicate(child)) {\n            return Optional.some(child);\n          }\n          const res = descend(child);\n          if (res.isSome()) {\n            return res;\n          }\n        }\n        return Optional.none();\n      };\n      return descend(scope);\n    };\n\n    const autocompleteSelector = '[data-mce-autocompleter]';\n    const create$9 = (editor, range) => {\n      if (findIn(SugarElement.fromDom(editor.getBody())).isNone()) {\n        const wrapper = SugarElement.fromHtml('<span data-mce-autocompleter=\"1\" data-mce-bogus=\"1\"></span>', editor.getDoc());\n        append$1(wrapper, SugarElement.fromDom(range.extractContents()));\n        range.insertNode(wrapper.dom);\n        parent(wrapper).each(elm => elm.dom.normalize());\n        last(wrapper).map(last => {\n          editor.selection.setCursorLocation(last.dom, getEnd(last));\n        });\n      }\n    };\n    const detect$1 = elm => closest$3(elm, autocompleteSelector);\n    const findIn = elm => descendant(elm, autocompleteSelector);\n    const remove$3 = (editor, elm) => findIn(elm).each(wrapper => {\n      const bookmark = editor.selection.getBookmark();\n      unwrap(wrapper);\n      editor.selection.moveToBookmark(bookmark);\n    });\n\n    const typeLookup = {\n      '#text': 3,\n      '#comment': 8,\n      '#cdata': 4,\n      '#pi': 7,\n      '#doctype': 10,\n      '#document-fragment': 11\n    };\n    const walk$2 = (node, root, prev) => {\n      const startName = prev ? 'lastChild' : 'firstChild';\n      const siblingName = prev ? 'prev' : 'next';\n      if (node[startName]) {\n        return node[startName];\n      }\n      if (node !== root) {\n        let sibling = node[siblingName];\n        if (sibling) {\n          return sibling;\n        }\n        for (let parent = node.parent; parent && parent !== root; parent = parent.parent) {\n          sibling = parent[siblingName];\n          if (sibling) {\n            return sibling;\n          }\n        }\n      }\n      return undefined;\n    };\n    const isEmptyTextNode = node => {\n      var _a;\n      const text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n      if (!isWhitespaceText(text)) {\n        return false;\n      }\n      const parentNode = node.parent;\n      if (parentNode && (parentNode.name !== 'span' || parentNode.attr('style')) && /^[ ]+$/.test(text)) {\n        return false;\n      }\n      return true;\n    };\n    const isNonEmptyElement = node => {\n      const isNamedAnchor = node.name === 'a' && !node.attr('href') && node.attr('id');\n      return node.attr('name') || node.attr('id') && !node.firstChild || node.attr('data-mce-bookmark') || isNamedAnchor;\n    };\n    class AstNode {\n      constructor(name, type) {\n        this.name = name;\n        this.type = type;\n        if (type === 1) {\n          this.attributes = [];\n          this.attributes.map = {};\n        }\n      }\n      static create(name, attrs) {\n        const node = new AstNode(name, typeLookup[name] || 1);\n        if (attrs) {\n          each$d(attrs, (value, attrName) => {\n            node.attr(attrName, value);\n          });\n        }\n        return node;\n      }\n      replace(node) {\n        const self = this;\n        if (node.parent) {\n          node.remove();\n        }\n        self.insert(node, self);\n        self.remove();\n        return self;\n      }\n      attr(name, value) {\n        const self = this;\n        if (!isString(name)) {\n          if (isNonNullable(name)) {\n            each$d(name, (value, key) => {\n              self.attr(key, value);\n            });\n          }\n          return self;\n        }\n        const attrs = self.attributes;\n        if (attrs) {\n          if (value !== undefined) {\n            if (value === null) {\n              if (name in attrs.map) {\n                delete attrs.map[name];\n                let i = attrs.length;\n                while (i--) {\n                  if (attrs[i].name === name) {\n                    attrs.splice(i, 1);\n                    return self;\n                  }\n                }\n              }\n              return self;\n            }\n            if (name in attrs.map) {\n              let i = attrs.length;\n              while (i--) {\n                if (attrs[i].name === name) {\n                  attrs[i].value = value;\n                  break;\n                }\n              }\n            } else {\n              attrs.push({\n                name,\n                value\n              });\n            }\n            attrs.map[name] = value;\n            return self;\n          }\n          return attrs.map[name];\n        }\n        return undefined;\n      }\n      clone() {\n        const self = this;\n        const clone = new AstNode(self.name, self.type);\n        const selfAttrs = self.attributes;\n        if (selfAttrs) {\n          const cloneAttrs = [];\n          cloneAttrs.map = {};\n          for (let i = 0, l = selfAttrs.length; i < l; i++) {\n            const selfAttr = selfAttrs[i];\n            if (selfAttr.name !== 'id') {\n              cloneAttrs[cloneAttrs.length] = {\n                name: selfAttr.name,\n                value: selfAttr.value\n              };\n              cloneAttrs.map[selfAttr.name] = selfAttr.value;\n            }\n          }\n          clone.attributes = cloneAttrs;\n        }\n        clone.value = self.value;\n        return clone;\n      }\n      wrap(wrapper) {\n        const self = this;\n        if (self.parent) {\n          self.parent.insert(wrapper, self);\n          wrapper.append(self);\n        }\n        return self;\n      }\n      unwrap() {\n        const self = this;\n        for (let node = self.firstChild; node;) {\n          const next = node.next;\n          self.insert(node, self, true);\n          node = next;\n        }\n        self.remove();\n      }\n      remove() {\n        const self = this, parent = self.parent, next = self.next, prev = self.prev;\n        if (parent) {\n          if (parent.firstChild === self) {\n            parent.firstChild = next;\n            if (next) {\n              next.prev = null;\n            }\n          } else if (prev) {\n            prev.next = next;\n          }\n          if (parent.lastChild === self) {\n            parent.lastChild = prev;\n            if (prev) {\n              prev.next = null;\n            }\n          } else if (next) {\n            next.prev = prev;\n          }\n          self.parent = self.next = self.prev = null;\n        }\n        return self;\n      }\n      append(node) {\n        const self = this;\n        if (node.parent) {\n          node.remove();\n        }\n        const last = self.lastChild;\n        if (last) {\n          last.next = node;\n          node.prev = last;\n          self.lastChild = node;\n        } else {\n          self.lastChild = self.firstChild = node;\n        }\n        node.parent = self;\n        return node;\n      }\n      insert(node, refNode, before) {\n        if (node.parent) {\n          node.remove();\n        }\n        const parent = refNode.parent || this;\n        if (before) {\n          if (refNode === parent.firstChild) {\n            parent.firstChild = node;\n          } else if (refNode.prev) {\n            refNode.prev.next = node;\n          }\n          node.prev = refNode.prev;\n          node.next = refNode;\n          refNode.prev = node;\n        } else {\n          if (refNode === parent.lastChild) {\n            parent.lastChild = node;\n          } else if (refNode.next) {\n            refNode.next.prev = node;\n          }\n          node.next = refNode.next;\n          node.prev = refNode;\n          refNode.next = node;\n        }\n        node.parent = parent;\n        return node;\n      }\n      getAll(name) {\n        const self = this;\n        const collection = [];\n        for (let node = self.firstChild; node; node = walk$2(node, self)) {\n          if (node.name === name) {\n            collection.push(node);\n          }\n        }\n        return collection;\n      }\n      children() {\n        const self = this;\n        const collection = [];\n        for (let node = self.firstChild; node; node = node.next) {\n          collection.push(node);\n        }\n        return collection;\n      }\n      empty() {\n        const self = this;\n        if (self.firstChild) {\n          const nodes = [];\n          for (let node = self.firstChild; node; node = walk$2(node, self)) {\n            nodes.push(node);\n          }\n          let i = nodes.length;\n          while (i--) {\n            const node = nodes[i];\n            node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;\n          }\n        }\n        self.firstChild = self.lastChild = null;\n        return self;\n      }\n      isEmpty(elements, whitespace = {}, predicate) {\n        var _a;\n        const self = this;\n        let node = self.firstChild;\n        if (isNonEmptyElement(self)) {\n          return false;\n        }\n        if (node) {\n          do {\n            if (node.type === 1) {\n              if (node.attr('data-mce-bogus')) {\n                continue;\n              }\n              if (elements[node.name]) {\n                return false;\n              }\n              if (isNonEmptyElement(node)) {\n                return false;\n              }\n            }\n            if (node.type === 8) {\n              return false;\n            }\n            if (node.type === 3 && !isEmptyTextNode(node)) {\n              return false;\n            }\n            if (node.type === 3 && node.parent && whitespace[node.parent.name] && isWhitespaceText((_a = node.value) !== null && _a !== void 0 ? _a : '')) {\n              return false;\n            }\n            if (predicate && predicate(node)) {\n              return false;\n            }\n          } while (node = walk$2(node, self));\n        }\n        return true;\n      }\n      walk(prev) {\n        return walk$2(this, null, prev);\n      }\n    }\n\n    const isConditionalComment = (html, startIndex) => /^\\s*\\[if [\\w\\W]+\\]>.*<!\\[endif\\](--!?)?>/.test(html.substr(startIndex));\n    const findCommentEndIndex = (html, isBogus, startIndex = 0) => {\n      const lcHtml = html.toLowerCase();\n      if (lcHtml.indexOf('[if ', startIndex) !== -1 && isConditionalComment(lcHtml, startIndex)) {\n        const endIfIndex = lcHtml.indexOf('[endif]', startIndex);\n        return lcHtml.indexOf('>', endIfIndex);\n      } else {\n        if (isBogus) {\n          const endIndex = lcHtml.indexOf('>', startIndex);\n          return endIndex !== -1 ? endIndex : lcHtml.length;\n        } else {\n          const endCommentRegexp = /--!?>/g;\n          endCommentRegexp.lastIndex = startIndex;\n          const match = endCommentRegexp.exec(html);\n          return match ? match.index + match[0].length : lcHtml.length;\n        }\n      }\n    };\n    const findMatchingEndTagIndex = (schema, html, startIndex) => {\n      const startTagRegExp = /<([!?\\/])?([A-Za-z0-9\\-_:.]+)/g;\n      const endTagRegExp = /(?:\\s(?:[^'\">]+(?:\"[^\"]*\"|'[^']*'))*[^\"'>]*(?:\"[^\">]*|'[^'>]*)?|\\s*|\\/)>/g;\n      const voidElements = schema.getVoidElements();\n      let count = 1, index = startIndex;\n      while (count !== 0) {\n        startTagRegExp.lastIndex = index;\n        while (true) {\n          const startMatch = startTagRegExp.exec(html);\n          if (startMatch === null) {\n            return index;\n          } else if (startMatch[1] === '!') {\n            if (startsWith(startMatch[2], '--')) {\n              index = findCommentEndIndex(html, false, startMatch.index + '!--'.length);\n            } else {\n              index = findCommentEndIndex(html, true, startMatch.index + 1);\n            }\n            break;\n          } else {\n            endTagRegExp.lastIndex = startTagRegExp.lastIndex;\n            const endMatch = endTagRegExp.exec(html);\n            if (isNull(endMatch) || endMatch.index !== startTagRegExp.lastIndex) {\n              continue;\n            }\n            if (startMatch[1] === '/') {\n              count -= 1;\n            } else if (!has$2(voidElements, startMatch[2])) {\n              count += 1;\n            }\n            index = startTagRegExp.lastIndex + endMatch[0].length;\n            break;\n          }\n        }\n      }\n      return index;\n    };\n    const trimHtml$1 = (tempAttrs, html) => {\n      const trimContentRegExp = new RegExp(['\\\\s?(' + tempAttrs.join('|') + ')=\"[^\"]+\"'].join('|'), 'gi');\n      return html.replace(trimContentRegExp, '');\n    };\n    const trimInternal = (serializer, html) => {\n      const bogusAllRegExp = /<(\\w+) [^>]*data-mce-bogus=\"all\"[^>]*>/g;\n      const schema = serializer.schema;\n      let content = trimHtml$1(serializer.getTempAttrs(), html);\n      const voidElements = schema.getVoidElements();\n      let matches;\n      while (matches = bogusAllRegExp.exec(content)) {\n        const index = bogusAllRegExp.lastIndex;\n        const matchLength = matches[0].length;\n        let endTagIndex;\n        if (voidElements[matches[1]]) {\n          endTagIndex = index;\n        } else {\n          endTagIndex = findMatchingEndTagIndex(schema, content, index);\n        }\n        content = content.substring(0, index - matchLength) + content.substring(endTagIndex);\n        bogusAllRegExp.lastIndex = index - matchLength;\n      }\n      return trim$1(content);\n    };\n    const trimExternal = trimInternal;\n\n    const cleanupBogusElements = parent => {\n      const bogusElements = descendants(parent, '[data-mce-bogus]');\n      each$e(bogusElements, elem => {\n        const bogusValue = get$9(elem, 'data-mce-bogus');\n        if (bogusValue === 'all') {\n          remove$6(elem);\n        } else if (isBr$5(elem)) {\n          before$3(elem, SugarElement.fromText(zeroWidth));\n          remove$6(elem);\n        } else {\n          unwrap(elem);\n        }\n      });\n    };\n    const cleanupInputNames = parent => {\n      const inputs = descendants(parent, 'input');\n      each$e(inputs, input => {\n        remove$b(input, 'name');\n      });\n    };\n\n    const trimEmptyContents = (editor, html) => {\n      const blockName = getForcedRootBlock(editor);\n      const emptyRegExp = new RegExp(`^(<${ blockName }[^>]*>(&nbsp;|&#160;|\\\\s|\\u00a0|<br \\\\/>|)<\\\\/${ blockName }>[\\r\\n]*|<br \\\\/>[\\r\\n]*)$`);\n      return html.replace(emptyRegExp, '');\n    };\n    const getPlainTextContent = (editor, body) => {\n      const doc = editor.getDoc();\n      const dos = getRootNode(SugarElement.fromDom(editor.getBody()));\n      const offscreenDiv = SugarElement.fromTag('div', doc);\n      set$2(offscreenDiv, 'data-mce-bogus', 'all');\n      setAll(offscreenDiv, {\n        position: 'fixed',\n        left: '-9999999px',\n        top: '0'\n      });\n      set(offscreenDiv, body.innerHTML);\n      cleanupBogusElements(offscreenDiv);\n      cleanupInputNames(offscreenDiv);\n      const root = getContentContainer(dos);\n      append$1(root, offscreenDiv);\n      const content = trim$1(offscreenDiv.dom.innerText);\n      remove$6(offscreenDiv);\n      return content;\n    };\n    const getContentFromBody = (editor, args, body) => {\n      let content;\n      if (args.format === 'raw') {\n        content = Tools.trim(trimExternal(editor.serializer, body.innerHTML));\n      } else if (args.format === 'text') {\n        content = getPlainTextContent(editor, body);\n      } else if (args.format === 'tree') {\n        content = editor.serializer.serialize(body, args);\n      } else {\n        content = trimEmptyContents(editor, editor.serializer.serialize(body, args));\n      }\n      const shouldTrim = args.format !== 'text' && !isWsPreserveElement(SugarElement.fromDom(body));\n      return shouldTrim && isString(content) ? Tools.trim(content) : content;\n    };\n    const getContentInternal = (editor, args) => Optional.from(editor.getBody()).fold(constant(args.format === 'tree' ? new AstNode('body', 11) : ''), body => getContentFromBody(editor, args, body));\n\n    const makeMap$1 = Tools.makeMap;\n    const Writer = settings => {\n      const html = [];\n      settings = settings || {};\n      const indent = settings.indent;\n      const indentBefore = makeMap$1(settings.indent_before || '');\n      const indentAfter = makeMap$1(settings.indent_after || '');\n      const encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);\n      const htmlOutput = settings.element_format !== 'xhtml';\n      return {\n        start: (name, attrs, empty) => {\n          if (indent && indentBefore[name] && html.length > 0) {\n            const value = html[html.length - 1];\n            if (value.length > 0 && value !== '\\n') {\n              html.push('\\n');\n            }\n          }\n          html.push('<', name);\n          if (attrs) {\n            for (let i = 0, l = attrs.length; i < l; i++) {\n              const attr = attrs[i];\n              html.push(' ', attr.name, '=\"', encode(attr.value, true), '\"');\n            }\n          }\n          if (!empty || htmlOutput) {\n            html[html.length] = '>';\n          } else {\n            html[html.length] = ' />';\n          }\n          if (empty && indent && indentAfter[name] && html.length > 0) {\n            const value = html[html.length - 1];\n            if (value.length > 0 && value !== '\\n') {\n              html.push('\\n');\n            }\n          }\n        },\n        end: name => {\n          let value;\n          html.push('</', name, '>');\n          if (indent && indentAfter[name] && html.length > 0) {\n            value = html[html.length - 1];\n            if (value.length > 0 && value !== '\\n') {\n              html.push('\\n');\n            }\n          }\n        },\n        text: (text, raw) => {\n          if (text.length > 0) {\n            html[html.length] = raw ? text : encode(text);\n          }\n        },\n        cdata: text => {\n          html.push('<![CDATA[', text, ']]>');\n        },\n        comment: text => {\n          html.push('<!--', text, '-->');\n        },\n        pi: (name, text) => {\n          if (text) {\n            html.push('<?', name, ' ', encode(text), '?>');\n          } else {\n            html.push('<?', name, '?>');\n          }\n          if (indent) {\n            html.push('\\n');\n          }\n        },\n        doctype: text => {\n          html.push('<!DOCTYPE', text, '>', indent ? '\\n' : '');\n        },\n        reset: () => {\n          html.length = 0;\n        },\n        getContent: () => {\n          return html.join('').replace(/\\n$/, '');\n        }\n      };\n    };\n\n    const HtmlSerializer = (settings = {}, schema = Schema()) => {\n      const writer = Writer(settings);\n      settings.validate = 'validate' in settings ? settings.validate : true;\n      const serialize = node => {\n        const validate = settings.validate;\n        const handlers = {\n          3: node => {\n            var _a;\n            writer.text((_a = node.value) !== null && _a !== void 0 ? _a : '', node.raw);\n          },\n          8: node => {\n            var _a;\n            writer.comment((_a = node.value) !== null && _a !== void 0 ? _a : '');\n          },\n          7: node => {\n            writer.pi(node.name, node.value);\n          },\n          10: node => {\n            var _a;\n            writer.doctype((_a = node.value) !== null && _a !== void 0 ? _a : '');\n          },\n          4: node => {\n            var _a;\n            writer.cdata((_a = node.value) !== null && _a !== void 0 ? _a : '');\n          },\n          11: node => {\n            let tempNode = node;\n            if (tempNode = tempNode.firstChild) {\n              do {\n                walk(tempNode);\n              } while (tempNode = tempNode.next);\n            }\n          }\n        };\n        writer.reset();\n        const walk = node => {\n          var _a;\n          const handler = handlers[node.type];\n          if (!handler) {\n            const name = node.name;\n            const isEmpty = name in schema.getVoidElements();\n            let attrs = node.attributes;\n            if (validate && attrs && attrs.length > 1) {\n              const sortedAttrs = [];\n              sortedAttrs.map = {};\n              const elementRule = schema.getElementRule(node.name);\n              if (elementRule) {\n                for (let i = 0, l = elementRule.attributesOrder.length; i < l; i++) {\n                  const attrName = elementRule.attributesOrder[i];\n                  if (attrName in attrs.map) {\n                    const attrValue = attrs.map[attrName];\n                    sortedAttrs.map[attrName] = attrValue;\n                    sortedAttrs.push({\n                      name: attrName,\n                      value: attrValue\n                    });\n                  }\n                }\n                for (let i = 0, l = attrs.length; i < l; i++) {\n                  const attrName = attrs[i].name;\n                  if (!(attrName in sortedAttrs.map)) {\n                    const attrValue = attrs.map[attrName];\n                    sortedAttrs.map[attrName] = attrValue;\n                    sortedAttrs.push({\n                      name: attrName,\n                      value: attrValue\n                    });\n                  }\n                }\n                attrs = sortedAttrs;\n              }\n            }\n            writer.start(name, attrs, isEmpty);\n            if (!isEmpty) {\n              let child = node.firstChild;\n              if (child) {\n                if ((name === 'pre' || name === 'textarea') && child.type === 3 && ((_a = child.value) === null || _a === void 0 ? void 0 : _a[0]) === '\\n') {\n                  writer.text('\\n', true);\n                }\n                do {\n                  walk(child);\n                } while (child = child.next);\n              }\n              writer.end(name);\n            }\n          } else {\n            handler(node);\n          }\n        };\n        if (node.type === 1 && !settings.inner) {\n          walk(node);\n        } else if (node.type === 3) {\n          handlers[3](node);\n        } else {\n          handlers[11](node);\n        }\n        return writer.getContent();\n      };\n      return { serialize };\n    };\n\n    const nonInheritableStyles = new Set();\n    (() => {\n      const nonInheritableStylesArr = [\n        'margin',\n        'margin-left',\n        'margin-right',\n        'margin-top',\n        'margin-bottom',\n        'padding',\n        'padding-left',\n        'padding-right',\n        'padding-top',\n        'padding-bottom',\n        'border',\n        'border-width',\n        'border-style',\n        'border-color',\n        'background',\n        'background-attachment',\n        'background-clip',\n        'background-color',\n        'background-image',\n        'background-origin',\n        'background-position',\n        'background-repeat',\n        'background-size',\n        'float',\n        'position',\n        'left',\n        'right',\n        'top',\n        'bottom',\n        'z-index',\n        'display',\n        'transform',\n        'width',\n        'max-width',\n        'min-width',\n        'height',\n        'max-height',\n        'min-height',\n        'overflow',\n        'overflow-x',\n        'overflow-y',\n        'text-overflow',\n        'vertical-align',\n        'transition',\n        'transition-delay',\n        'transition-duration',\n        'transition-property',\n        'transition-timing-function'\n      ];\n      each$e(nonInheritableStylesArr, style => {\n        nonInheritableStyles.add(style);\n      });\n    })();\n    const shorthandStyleProps = [\n      'font',\n      'text-decoration',\n      'text-emphasis'\n    ];\n    const getStyleProps = (dom, node) => keys(dom.parseStyle(dom.getAttrib(node, 'style')));\n    const isNonInheritableStyle = style => nonInheritableStyles.has(style);\n    const hasInheritableStyles = (dom, node) => forall(getStyleProps(dom, node), style => !isNonInheritableStyle(style));\n    const getLonghandStyleProps = styles => filter$5(styles, style => exists(shorthandStyleProps, prop => startsWith(style, prop)));\n    const hasStyleConflict = (dom, node, parentNode) => {\n      const nodeStyleProps = getStyleProps(dom, node);\n      const parentNodeStyleProps = getStyleProps(dom, parentNode);\n      const valueMismatch = prop => {\n        var _a, _b;\n        const nodeValue = (_a = dom.getStyle(node, prop)) !== null && _a !== void 0 ? _a : '';\n        const parentValue = (_b = dom.getStyle(parentNode, prop)) !== null && _b !== void 0 ? _b : '';\n        return isNotEmpty(nodeValue) && isNotEmpty(parentValue) && nodeValue !== parentValue;\n      };\n      return exists(nodeStyleProps, nodeStyleProp => {\n        const propExists = props => exists(props, prop => prop === nodeStyleProp);\n        if (!propExists(parentNodeStyleProps) && propExists(shorthandStyleProps)) {\n          const longhandProps = getLonghandStyleProps(parentNodeStyleProps);\n          return exists(longhandProps, valueMismatch);\n        } else {\n          return valueMismatch(nodeStyleProp);\n        }\n      });\n    };\n\n    const isChar = (forward, predicate, pos) => Optional.from(pos.container()).filter(isText$a).exists(text => {\n      const delta = forward ? 0 : -1;\n      return predicate(text.data.charAt(pos.offset() + delta));\n    });\n    const isBeforeSpace = curry(isChar, true, isWhiteSpace);\n    const isAfterSpace = curry(isChar, false, isWhiteSpace);\n    const isEmptyText = pos => {\n      const container = pos.container();\n      return isText$a(container) && (container.data.length === 0 || isZwsp(container.data) && BookmarkManager.isBookmarkNode(container.parentNode));\n    };\n    const matchesElementPosition = (before, predicate) => pos => getChildNodeAtRelativeOffset(before ? 0 : -1, pos).filter(predicate).isSome();\n    const isImageBlock = node => isImg(node) && get$7(SugarElement.fromDom(node), 'display') === 'block';\n    const isCefNode = node => isContentEditableFalse$a(node) && !isBogusAll$1(node);\n    const isBeforeImageBlock = matchesElementPosition(true, isImageBlock);\n    const isAfterImageBlock = matchesElementPosition(false, isImageBlock);\n    const isBeforeMedia = matchesElementPosition(true, isMedia$2);\n    const isAfterMedia = matchesElementPosition(false, isMedia$2);\n    const isBeforeTable = matchesElementPosition(true, isTable$2);\n    const isAfterTable = matchesElementPosition(false, isTable$2);\n    const isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode);\n    const isAfterContentEditableFalse = matchesElementPosition(false, isCefNode);\n\n    const dropLast = xs => xs.slice(0, -1);\n    const parentsUntil = (start, root, predicate) => {\n      if (contains(root, start)) {\n        return dropLast(parents$1(start, elm => {\n          return predicate(elm) || eq(elm, root);\n        }));\n      } else {\n        return [];\n      }\n    };\n    const parents = (start, root) => parentsUntil(start, root, never);\n    const parentsAndSelf = (start, root) => [start].concat(parents(start, root));\n\n    const navigateIgnoreEmptyTextNodes = (forward, root, from) => navigateIgnore(forward, root, from, isEmptyText);\n    const getClosestBlock$1 = (root, pos) => find$2(parentsAndSelf(SugarElement.fromDom(pos.container()), root), isBlock$2);\n    const isAtBeforeAfterBlockBoundary = (forward, root, pos) => navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(newPos => getClosestBlock$1(root, pos).fold(() => !isInSameBlock(newPos, pos, root.dom), fromBlock => !isInSameBlock(newPos, pos, root.dom) && contains(fromBlock, SugarElement.fromDom(newPos.container()))));\n    const isAtBlockBoundary = (forward, root, pos) => getClosestBlock$1(root, pos).fold(() => navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(newPos => !isInSameBlock(newPos, pos, root.dom)), parent => navigateIgnoreEmptyTextNodes(forward, parent.dom, pos).isNone());\n    const isAtStartOfBlock = curry(isAtBlockBoundary, false);\n    const isAtEndOfBlock = curry(isAtBlockBoundary, true);\n    const isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);\n    const isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);\n\n    const isBr$1 = pos => getElementFromPosition(pos).exists(isBr$5);\n    const findBr = (forward, root, pos) => {\n      const parentBlocks = filter$5(parentsAndSelf(SugarElement.fromDom(pos.container()), root), isBlock$2);\n      const scope = head(parentBlocks).getOr(root);\n      return fromPosition(forward, scope.dom, pos).filter(isBr$1);\n    };\n    const isBeforeBr$1 = (root, pos) => getElementFromPosition(pos).exists(isBr$5) || findBr(true, root, pos).isSome();\n    const isAfterBr = (root, pos) => getElementFromPrevPosition(pos).exists(isBr$5) || findBr(false, root, pos).isSome();\n    const findPreviousBr = curry(findBr, false);\n    const findNextBr = curry(findBr, true);\n\n    const isInMiddleOfText = pos => CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();\n    const getClosestBlock = (root, pos) => {\n      const parentBlocks = filter$5(parentsAndSelf(SugarElement.fromDom(pos.container()), root), isBlock$2);\n      return head(parentBlocks).getOr(root);\n    };\n    const hasSpaceBefore = (root, pos) => {\n      if (isInMiddleOfText(pos)) {\n        return isAfterSpace(pos);\n      } else {\n        return isAfterSpace(pos) || prevPosition(getClosestBlock(root, pos).dom, pos).exists(isAfterSpace);\n      }\n    };\n    const hasSpaceAfter = (root, pos) => {\n      if (isInMiddleOfText(pos)) {\n        return isBeforeSpace(pos);\n      } else {\n        return isBeforeSpace(pos) || nextPosition(getClosestBlock(root, pos).dom, pos).exists(isBeforeSpace);\n      }\n    };\n    const isPreValue = value => contains$2([\n      'pre',\n      'pre-wrap'\n    ], value);\n    const isInPre = pos => getElementFromPosition(pos).bind(elm => closest$4(elm, isElement$7)).exists(elm => isPreValue(get$7(elm, 'white-space')));\n    const isAtBeginningOfBody = (root, pos) => prevPosition(root.dom, pos).isNone();\n    const isAtEndOfBody = (root, pos) => nextPosition(root.dom, pos).isNone();\n    const isAtLineBoundary = (root, pos) => isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos) || isAtEndOfBlock(root, pos) || isAfterBr(root, pos) || isBeforeBr$1(root, pos);\n    const isCefBlock = node => isNonNullable(node) && isContentEditableFalse$a(node) && isBlockLike(node);\n    const isSiblingCefBlock = (root, direction) => container => {\n      return isCefBlock(new DomTreeWalker(container, root)[direction]());\n    };\n    const isBeforeCefBlock = (root, pos) => {\n      const nextPos = nextPosition(root.dom, pos).getOr(pos);\n      const isNextCefBlock = isSiblingCefBlock(root.dom, 'next');\n      return pos.isAtEnd() && (isNextCefBlock(pos.container()) || isNextCefBlock(nextPos.container()));\n    };\n    const isAfterCefBlock = (root, pos) => {\n      const prevPos = prevPosition(root.dom, pos).getOr(pos);\n      const isPrevCefBlock = isSiblingCefBlock(root.dom, 'prev');\n      return pos.isAtStart() && (isPrevCefBlock(pos.container()) || isPrevCefBlock(prevPos.container()));\n    };\n    const needsToHaveNbsp = (root, pos) => {\n      if (isInPre(pos)) {\n        return false;\n      } else {\n        return isAtLineBoundary(root, pos) || hasSpaceBefore(root, pos) || hasSpaceAfter(root, pos);\n      }\n    };\n    const needsToBeNbspLeft = (root, pos) => {\n      if (isInPre(pos)) {\n        return false;\n      } else {\n        return isAtStartOfBlock(root, pos) || isBeforeBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos) || isAfterCefBlock(root, pos);\n      }\n    };\n    const leanRight = pos => {\n      const container = pos.container();\n      const offset = pos.offset();\n      if (isText$a(container) && offset < container.data.length) {\n        return CaretPosition(container, offset + 1);\n      } else {\n        return pos;\n      }\n    };\n    const needsToBeNbspRight = (root, pos) => {\n      if (isInPre(pos)) {\n        return false;\n      } else {\n        return isAtEndOfBlock(root, pos) || isAfterBlock(root, pos) || isBeforeBr$1(root, pos) || hasSpaceAfter(root, pos) || isBeforeCefBlock(root, pos);\n      }\n    };\n    const needsToBeNbsp = (root, pos) => needsToBeNbspLeft(root, pos) || needsToBeNbspRight(root, leanRight(pos));\n    const isNbspAt = (text, offset) => isNbsp(text.charAt(offset));\n    const isWhiteSpaceAt = (text, offset) => isWhiteSpace(text.charAt(offset));\n    const hasNbsp = pos => {\n      const container = pos.container();\n      return isText$a(container) && contains$1(container.data, nbsp);\n    };\n    const normalizeNbspMiddle = text => {\n      const chars = text.split('');\n      return map$3(chars, (chr, i) => {\n        if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) {\n          return ' ';\n        } else {\n          return chr;\n        }\n      }).join('');\n    };\n    const normalizeNbspAtStart = (root, node, makeNbsp) => {\n      const text = node.data;\n      const firstPos = CaretPosition(node, 0);\n      if (!makeNbsp && isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos)) {\n        node.data = ' ' + text.slice(1);\n        return true;\n      } else if (makeNbsp && isWhiteSpaceAt(text, 0) && needsToBeNbspLeft(root, firstPos)) {\n        node.data = nbsp + text.slice(1);\n        return true;\n      } else {\n        return false;\n      }\n    };\n    const normalizeNbspInMiddleOfTextNode = node => {\n      const text = node.data;\n      const newText = normalizeNbspMiddle(text);\n      if (newText !== text) {\n        node.data = newText;\n        return true;\n      } else {\n        return false;\n      }\n    };\n    const normalizeNbspAtEnd = (root, node, makeNbsp) => {\n      const text = node.data;\n      const lastPos = CaretPosition(node, text.length - 1);\n      if (!makeNbsp && isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos)) {\n        node.data = text.slice(0, -1) + ' ';\n        return true;\n      } else if (makeNbsp && isWhiteSpaceAt(text, text.length - 1) && needsToBeNbspRight(root, lastPos)) {\n        node.data = text.slice(0, -1) + nbsp;\n        return true;\n      } else {\n        return false;\n      }\n    };\n    const normalizeNbsps = (root, pos) => {\n      const container = pos.container();\n      if (!isText$a(container)) {\n        return Optional.none();\n      }\n      if (hasNbsp(pos)) {\n        const normalized = normalizeNbspAtStart(root, container, false) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container, false);\n        return someIf(normalized, pos);\n      } else if (needsToBeNbsp(root, pos)) {\n        const normalized = normalizeNbspAtStart(root, container, true) || normalizeNbspAtEnd(root, container, true);\n        return someIf(normalized, pos);\n      } else {\n        return Optional.none();\n      }\n    };\n    const normalizeNbspsInEditor = editor => {\n      const root = SugarElement.fromDom(editor.getBody());\n      if (editor.selection.isCollapsed()) {\n        normalizeNbsps(root, CaretPosition.fromRangeStart(editor.selection.getRng())).each(pos => {\n          editor.selection.setRng(pos.toRange());\n        });\n      }\n    };\n\n    const normalize$1 = (node, offset, count) => {\n      if (count === 0) {\n        return;\n      }\n      const elm = SugarElement.fromDom(node);\n      const root = ancestor$3(elm, isBlock$2).getOr(elm);\n      const whitespace = node.data.slice(offset, offset + count);\n      const isEndOfContent = offset + count >= node.data.length && needsToBeNbspRight(root, CaretPosition(node, node.data.length));\n      const isStartOfContent = offset === 0 && needsToBeNbspLeft(root, CaretPosition(node, 0));\n      node.replaceData(offset, count, normalize$4(whitespace, 4, isStartOfContent, isEndOfContent));\n    };\n    const normalizeWhitespaceAfter = (node, offset) => {\n      const content = node.data.slice(offset);\n      const whitespaceCount = content.length - lTrim(content).length;\n      normalize$1(node, offset, whitespaceCount);\n    };\n    const normalizeWhitespaceBefore = (node, offset) => {\n      const content = node.data.slice(0, offset);\n      const whitespaceCount = content.length - rTrim(content).length;\n      normalize$1(node, offset - whitespaceCount, whitespaceCount);\n    };\n    const mergeTextNodes = (prevNode, nextNode, normalizeWhitespace, mergeToPrev = true) => {\n      const whitespaceOffset = rTrim(prevNode.data).length;\n      const newNode = mergeToPrev ? prevNode : nextNode;\n      const removeNode = mergeToPrev ? nextNode : prevNode;\n      if (mergeToPrev) {\n        newNode.appendData(removeNode.data);\n      } else {\n        newNode.insertData(0, removeNode.data);\n      }\n      remove$6(SugarElement.fromDom(removeNode));\n      if (normalizeWhitespace) {\n        normalizeWhitespaceAfter(newNode, whitespaceOffset);\n      }\n      return newNode;\n    };\n\n    const needsReposition = (pos, elm) => {\n      const container = pos.container();\n      const offset = pos.offset();\n      return !CaretPosition.isTextPosition(pos) && container === elm.parentNode && offset > CaretPosition.before(elm).offset();\n    };\n    const reposition = (elm, pos) => needsReposition(pos, elm) ? CaretPosition(pos.container(), pos.offset() - 1) : pos;\n    const beforeOrStartOf = node => isText$a(node) ? CaretPosition(node, 0) : CaretPosition.before(node);\n    const afterOrEndOf = node => isText$a(node) ? CaretPosition(node, node.data.length) : CaretPosition.after(node);\n    const getPreviousSiblingCaretPosition = elm => {\n      if (isCaretCandidate$3(elm.previousSibling)) {\n        return Optional.some(afterOrEndOf(elm.previousSibling));\n      } else {\n        return elm.previousSibling ? lastPositionIn(elm.previousSibling) : Optional.none();\n      }\n    };\n    const getNextSiblingCaretPosition = elm => {\n      if (isCaretCandidate$3(elm.nextSibling)) {\n        return Optional.some(beforeOrStartOf(elm.nextSibling));\n      } else {\n        return elm.nextSibling ? firstPositionIn(elm.nextSibling) : Optional.none();\n      }\n    };\n    const findCaretPositionBackwardsFromElm = (rootElement, elm) => {\n      return Optional.from(elm.previousSibling ? elm.previousSibling : elm.parentNode).bind(node => prevPosition(rootElement, CaretPosition.before(node))).orThunk(() => nextPosition(rootElement, CaretPosition.after(elm)));\n    };\n    const findCaretPositionForwardsFromElm = (rootElement, elm) => nextPosition(rootElement, CaretPosition.after(elm)).orThunk(() => prevPosition(rootElement, CaretPosition.before(elm)));\n    const findCaretPositionBackwards = (rootElement, elm) => getPreviousSiblingCaretPosition(elm).orThunk(() => getNextSiblingCaretPosition(elm)).orThunk(() => findCaretPositionBackwardsFromElm(rootElement, elm));\n    const findCaretPositionForward = (rootElement, elm) => getNextSiblingCaretPosition(elm).orThunk(() => getPreviousSiblingCaretPosition(elm)).orThunk(() => findCaretPositionForwardsFromElm(rootElement, elm));\n    const findCaretPosition = (forward, rootElement, elm) => forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);\n    const findCaretPosOutsideElmAfterDelete = (forward, rootElement, elm) => findCaretPosition(forward, rootElement, elm).map(curry(reposition, elm));\n    const setSelection$1 = (editor, forward, pos) => {\n      pos.fold(() => {\n        editor.focus();\n      }, pos => {\n        editor.selection.setRng(pos.toRange(), forward);\n      });\n    };\n    const eqRawNode = rawNode => elm => elm.dom === rawNode;\n    const isBlock = (editor, elm) => elm && has$2(editor.schema.getBlockElements(), name(elm));\n    const paddEmptyBlock = elm => {\n      if (isEmpty$2(elm)) {\n        const br = SugarElement.fromHtml('<br data-mce-bogus=\"1\">');\n        empty(elm);\n        append$1(elm, br);\n        return Optional.some(CaretPosition.before(br.dom));\n      } else {\n        return Optional.none();\n      }\n    };\n    const deleteNormalized = (elm, afterDeletePosOpt, normalizeWhitespace) => {\n      const prevTextOpt = prevSibling(elm).filter(isText$b);\n      const nextTextOpt = nextSibling(elm).filter(isText$b);\n      remove$6(elm);\n      return lift3(prevTextOpt, nextTextOpt, afterDeletePosOpt, (prev, next, pos) => {\n        const prevNode = prev.dom, nextNode = next.dom;\n        const offset = prevNode.data.length;\n        mergeTextNodes(prevNode, nextNode, normalizeWhitespace);\n        return pos.container() === nextNode ? CaretPosition(prevNode, offset) : pos;\n      }).orThunk(() => {\n        if (normalizeWhitespace) {\n          prevTextOpt.each(elm => normalizeWhitespaceBefore(elm.dom, elm.dom.length));\n          nextTextOpt.each(elm => normalizeWhitespaceAfter(elm.dom, 0));\n        }\n        return afterDeletePosOpt;\n      });\n    };\n    const isInlineElement = (editor, element) => has$2(editor.schema.getTextInlineElements(), name(element));\n    const deleteElement$2 = (editor, forward, elm, moveCaret = true) => {\n      const afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom);\n      const parentBlock = ancestor$3(elm, curry(isBlock, editor), eqRawNode(editor.getBody()));\n      const normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos, isInlineElement(editor, elm));\n      if (editor.dom.isEmpty(editor.getBody())) {\n        editor.setContent('');\n        editor.selection.setCursorLocation();\n      } else {\n        parentBlock.bind(paddEmptyBlock).fold(() => {\n          if (moveCaret) {\n            setSelection$1(editor, forward, normalizedAfterDeletePos);\n          }\n        }, paddPos => {\n          if (moveCaret) {\n            setSelection$1(editor, forward, Optional.some(paddPos));\n          }\n        });\n      }\n    };\n\n    const strongRtl = /[\\u0591-\\u07FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFC]/;\n    const hasStrongRtl = text => strongRtl.test(text);\n\n    const isInlineTarget = (editor, elm) => is$1(SugarElement.fromDom(elm), getInlineBoundarySelector(editor)) && !isTransparentBlock(editor.schema, elm);\n    const isRtl = element => {\n      var _a;\n      return DOMUtils.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl((_a = element.textContent) !== null && _a !== void 0 ? _a : '');\n    };\n    const findInlineParents = (isInlineTarget, rootNode, pos) => filter$5(DOMUtils.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);\n    const findRootInline = (isInlineTarget, rootNode, pos) => {\n      const parents = findInlineParents(isInlineTarget, rootNode, pos);\n      return Optional.from(parents[parents.length - 1]);\n    };\n    const hasSameParentBlock = (rootNode, node1, node2) => {\n      const block1 = getParentBlock$3(node1, rootNode);\n      const block2 = getParentBlock$3(node2, rootNode);\n      return isNonNullable(block1) && block1 === block2;\n    };\n    const isAtZwsp = pos => isBeforeInline(pos) || isAfterInline(pos);\n    const normalizePosition = (forward, pos) => {\n      const container = pos.container(), offset = pos.offset();\n      if (forward) {\n        if (isCaretContainerInline(container)) {\n          if (isText$a(container.nextSibling)) {\n            return CaretPosition(container.nextSibling, 0);\n          } else {\n            return CaretPosition.after(container);\n          }\n        } else {\n          return isBeforeInline(pos) ? CaretPosition(container, offset + 1) : pos;\n        }\n      } else {\n        if (isCaretContainerInline(container)) {\n          if (isText$a(container.previousSibling)) {\n            return CaretPosition(container.previousSibling, container.previousSibling.data.length);\n          } else {\n            return CaretPosition.before(container);\n          }\n        } else {\n          return isAfterInline(pos) ? CaretPosition(container, offset - 1) : pos;\n        }\n      }\n    };\n    const normalizeForwards = curry(normalizePosition, true);\n    const normalizeBackwards = curry(normalizePosition, false);\n\n    const execCommandIgnoreInputEvents = (editor, command) => {\n      const inputBlocker = e => e.stopImmediatePropagation();\n      editor.on('beforeinput input', inputBlocker, true);\n      editor.getDoc().execCommand(command);\n      editor.off('beforeinput input', inputBlocker);\n    };\n    const execEditorDeleteCommand = editor => {\n      editor.execCommand('delete');\n    };\n    const execNativeDeleteCommand = editor => execCommandIgnoreInputEvents(editor, 'Delete');\n    const execNativeForwardDeleteCommand = editor => execCommandIgnoreInputEvents(editor, 'ForwardDelete');\n    const isBeforeRoot = rootNode => elm => is$2(parent(elm), rootNode, eq);\n    const isTextBlockOrListItem = element => isTextBlock$2(element) || isListItem$1(element);\n    const getParentBlock$2 = (rootNode, elm) => {\n      if (contains(rootNode, elm)) {\n        return closest$4(elm, isTextBlockOrListItem, isBeforeRoot(rootNode));\n      } else {\n        return Optional.none();\n      }\n    };\n    const paddEmptyBody = (editor, moveSelection = true) => {\n      if (editor.dom.isEmpty(editor.getBody())) {\n        editor.setContent('', { no_selection: !moveSelection });\n      }\n    };\n    const willDeleteLastPositionInElement = (forward, fromPos, elm) => lift2(firstPositionIn(elm), lastPositionIn(elm), (firstPos, lastPos) => {\n      const normalizedFirstPos = normalizePosition(true, firstPos);\n      const normalizedLastPos = normalizePosition(false, lastPos);\n      const normalizedFromPos = normalizePosition(false, fromPos);\n      if (forward) {\n        return nextPosition(elm, normalizedFromPos).exists(nextPos => nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos));\n      } else {\n        return prevPosition(elm, normalizedFromPos).exists(prevPos => prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos));\n      }\n    }).getOr(true);\n    const freefallRtl = root => {\n      const child = isComment$1(root) ? prevSibling(root) : lastChild(root);\n      return child.bind(freefallRtl).orThunk(() => Optional.some(root));\n    };\n    const deleteRangeContents = (editor, rng, root, moveSelection = true) => {\n      var _a;\n      rng.deleteContents();\n      const lastNode = freefallRtl(root).getOr(root);\n      const lastBlock = SugarElement.fromDom((_a = editor.dom.getParent(lastNode.dom, editor.dom.isBlock)) !== null && _a !== void 0 ? _a : root.dom);\n      if (lastBlock.dom === editor.getBody()) {\n        paddEmptyBody(editor, moveSelection);\n      } else if (isEmpty$2(lastBlock)) {\n        fillWithPaddingBr(lastBlock);\n        if (moveSelection) {\n          editor.selection.setCursorLocation(lastBlock.dom, 0);\n        }\n      }\n      if (!eq(root, lastBlock)) {\n        const additionalCleanupNodes = is$2(parent(lastBlock), root) ? [] : siblings(lastBlock);\n        each$e(additionalCleanupNodes.concat(children$1(root)), node => {\n          if (!eq(node, lastBlock) && !contains(node, lastBlock) && isEmpty$2(node)) {\n            remove$6(node);\n          }\n        });\n      }\n    };\n\n    const isRootFromElement = root => cur => eq(root, cur);\n    const getTableCells = table => descendants(table, 'td,th');\n    const getTableDetailsFromRange = (rng, isRoot) => {\n      const getTable = node => getClosestTable(SugarElement.fromDom(node), isRoot);\n      const startTable = getTable(rng.startContainer);\n      const endTable = getTable(rng.endContainer);\n      const isStartInTable = startTable.isSome();\n      const isEndInTable = endTable.isSome();\n      const isSameTable = lift2(startTable, endTable, eq).getOr(false);\n      const isMultiTable = !isSameTable && isStartInTable && isEndInTable;\n      return {\n        startTable,\n        endTable,\n        isStartInTable,\n        isEndInTable,\n        isSameTable,\n        isMultiTable\n      };\n    };\n\n    const tableCellRng = (start, end) => ({\n      start,\n      end\n    });\n    const tableSelection = (rng, table, cells) => ({\n      rng,\n      table,\n      cells\n    });\n    const deleteAction = Adt.generate([\n      {\n        singleCellTable: [\n          'rng',\n          'cell'\n        ]\n      },\n      { fullTable: ['table'] },\n      {\n        partialTable: [\n          'cells',\n          'outsideDetails'\n        ]\n      },\n      {\n        multiTable: [\n          'startTableCells',\n          'endTableCells',\n          'betweenRng'\n        ]\n      }\n    ]);\n    const getClosestCell$1 = (container, isRoot) => closest$3(SugarElement.fromDom(container), 'td,th', isRoot);\n    const isExpandedCellRng = cellRng => !eq(cellRng.start, cellRng.end);\n    const getTableFromCellRng = (cellRng, isRoot) => getClosestTable(cellRng.start, isRoot).bind(startParentTable => getClosestTable(cellRng.end, isRoot).bind(endParentTable => someIf(eq(startParentTable, endParentTable), startParentTable)));\n    const isSingleCellTable = (cellRng, isRoot) => !isExpandedCellRng(cellRng) && getTableFromCellRng(cellRng, isRoot).exists(table => {\n      const rows = table.dom.rows;\n      return rows.length === 1 && rows[0].cells.length === 1;\n    });\n    const getCellRng = (rng, isRoot) => {\n      const startCell = getClosestCell$1(rng.startContainer, isRoot);\n      const endCell = getClosestCell$1(rng.endContainer, isRoot);\n      return lift2(startCell, endCell, tableCellRng);\n    };\n    const getCellRangeFromStartTable = isRoot => startCell => getClosestTable(startCell, isRoot).bind(table => last$3(getTableCells(table)).map(endCell => tableCellRng(startCell, endCell)));\n    const getCellRangeFromEndTable = isRoot => endCell => getClosestTable(endCell, isRoot).bind(table => head(getTableCells(table)).map(startCell => tableCellRng(startCell, endCell)));\n    const getTableSelectionFromCellRng = isRoot => cellRng => getTableFromCellRng(cellRng, isRoot).map(table => tableSelection(cellRng, table, getTableCells(table)));\n    const getTableSelections = (cellRng, selectionDetails, rng, isRoot) => {\n      if (rng.collapsed || !cellRng.forall(isExpandedCellRng)) {\n        return Optional.none();\n      } else if (selectionDetails.isSameTable) {\n        const sameTableSelection = cellRng.bind(getTableSelectionFromCellRng(isRoot));\n        return Optional.some({\n          start: sameTableSelection,\n          end: sameTableSelection\n        });\n      } else {\n        const startCell = getClosestCell$1(rng.startContainer, isRoot);\n        const endCell = getClosestCell$1(rng.endContainer, isRoot);\n        const startTableSelection = startCell.bind(getCellRangeFromStartTable(isRoot)).bind(getTableSelectionFromCellRng(isRoot));\n        const endTableSelection = endCell.bind(getCellRangeFromEndTable(isRoot)).bind(getTableSelectionFromCellRng(isRoot));\n        return Optional.some({\n          start: startTableSelection,\n          end: endTableSelection\n        });\n      }\n    };\n    const getCellIndex = (cells, cell) => findIndex$2(cells, x => eq(x, cell));\n    const getSelectedCells = tableSelection => lift2(getCellIndex(tableSelection.cells, tableSelection.rng.start), getCellIndex(tableSelection.cells, tableSelection.rng.end), (startIndex, endIndex) => tableSelection.cells.slice(startIndex, endIndex + 1));\n    const isSingleCellTableContentSelected = (optCellRng, rng, isRoot) => optCellRng.exists(cellRng => isSingleCellTable(cellRng, isRoot) && hasAllContentsSelected(cellRng.start, rng));\n    const unselectCells = (rng, selectionDetails) => {\n      const {startTable, endTable} = selectionDetails;\n      const otherContentRng = rng.cloneRange();\n      startTable.each(table => otherContentRng.setStartAfter(table.dom));\n      endTable.each(table => otherContentRng.setEndBefore(table.dom));\n      return otherContentRng;\n    };\n    const handleSingleTable = (cellRng, selectionDetails, rng, isRoot) => getTableSelections(cellRng, selectionDetails, rng, isRoot).bind(({start, end}) => start.or(end)).bind(tableSelection => {\n      const {isSameTable} = selectionDetails;\n      const selectedCells = getSelectedCells(tableSelection).getOr([]);\n      if (isSameTable && tableSelection.cells.length === selectedCells.length) {\n        return Optional.some(deleteAction.fullTable(tableSelection.table));\n      } else if (selectedCells.length > 0) {\n        if (isSameTable) {\n          return Optional.some(deleteAction.partialTable(selectedCells, Optional.none()));\n        } else {\n          const otherContentRng = unselectCells(rng, selectionDetails);\n          return Optional.some(deleteAction.partialTable(selectedCells, Optional.some({\n            ...selectionDetails,\n            rng: otherContentRng\n          })));\n        }\n      } else {\n        return Optional.none();\n      }\n    });\n    const handleMultiTable = (cellRng, selectionDetails, rng, isRoot) => getTableSelections(cellRng, selectionDetails, rng, isRoot).bind(({start, end}) => {\n      const startTableSelectedCells = start.bind(getSelectedCells).getOr([]);\n      const endTableSelectedCells = end.bind(getSelectedCells).getOr([]);\n      if (startTableSelectedCells.length > 0 && endTableSelectedCells.length > 0) {\n        const otherContentRng = unselectCells(rng, selectionDetails);\n        return Optional.some(deleteAction.multiTable(startTableSelectedCells, endTableSelectedCells, otherContentRng));\n      } else {\n        return Optional.none();\n      }\n    });\n    const getActionFromRange = (root, rng) => {\n      const isRoot = isRootFromElement(root);\n      const optCellRng = getCellRng(rng, isRoot);\n      const selectionDetails = getTableDetailsFromRange(rng, isRoot);\n      if (isSingleCellTableContentSelected(optCellRng, rng, isRoot)) {\n        return optCellRng.map(cellRng => deleteAction.singleCellTable(rng, cellRng.start));\n      } else if (selectionDetails.isMultiTable) {\n        return handleMultiTable(optCellRng, selectionDetails, rng, isRoot);\n      } else {\n        return handleSingleTable(optCellRng, selectionDetails, rng, isRoot);\n      }\n    };\n\n    const cleanCells = cells => each$e(cells, cell => {\n      remove$b(cell, 'contenteditable');\n      fillWithPaddingBr(cell);\n    });\n    const getOutsideBlock = (editor, container) => Optional.from(editor.dom.getParent(container, editor.dom.isBlock)).map(SugarElement.fromDom);\n    const handleEmptyBlock = (editor, startInTable, emptyBlock) => {\n      emptyBlock.each(block => {\n        if (startInTable) {\n          remove$6(block);\n        } else {\n          fillWithPaddingBr(block);\n          editor.selection.setCursorLocation(block.dom, 0);\n        }\n      });\n    };\n    const deleteContentInsideCell = (editor, cell, rng, isFirstCellInSelection) => {\n      const insideTableRng = rng.cloneRange();\n      if (isFirstCellInSelection) {\n        insideTableRng.setStart(rng.startContainer, rng.startOffset);\n        insideTableRng.setEndAfter(cell.dom.lastChild);\n      } else {\n        insideTableRng.setStartBefore(cell.dom.firstChild);\n        insideTableRng.setEnd(rng.endContainer, rng.endOffset);\n      }\n      deleteCellContents(editor, insideTableRng, cell, false).each(action => action());\n    };\n    const collapseAndRestoreCellSelection = editor => {\n      const selectedCells = getCellsFromEditor(editor);\n      const selectedNode = SugarElement.fromDom(editor.selection.getNode());\n      if (isTableCell$3(selectedNode.dom) && isEmpty$2(selectedNode)) {\n        editor.selection.setCursorLocation(selectedNode.dom, 0);\n      } else {\n        editor.selection.collapse(true);\n      }\n      if (selectedCells.length > 1 && exists(selectedCells, cell => eq(cell, selectedNode))) {\n        set$2(selectedNode, 'data-mce-selected', '1');\n      }\n    };\n    const emptySingleTableCells = (editor, cells, outsideDetails) => Optional.some(() => {\n      const editorRng = editor.selection.getRng();\n      const cellsToClean = outsideDetails.bind(({rng, isStartInTable}) => {\n        const outsideBlock = getOutsideBlock(editor, isStartInTable ? rng.endContainer : rng.startContainer);\n        rng.deleteContents();\n        handleEmptyBlock(editor, isStartInTable, outsideBlock.filter(isEmpty$2));\n        const endPointCell = isStartInTable ? cells[0] : cells[cells.length - 1];\n        deleteContentInsideCell(editor, endPointCell, editorRng, isStartInTable);\n        if (!isEmpty$2(endPointCell)) {\n          return Optional.some(isStartInTable ? cells.slice(1) : cells.slice(0, -1));\n        } else {\n          return Optional.none();\n        }\n      }).getOr(cells);\n      cleanCells(cellsToClean);\n      collapseAndRestoreCellSelection(editor);\n    });\n    const emptyMultiTableCells = (editor, startTableCells, endTableCells, betweenRng) => Optional.some(() => {\n      const rng = editor.selection.getRng();\n      const startCell = startTableCells[0];\n      const endCell = endTableCells[endTableCells.length - 1];\n      deleteContentInsideCell(editor, startCell, rng, true);\n      deleteContentInsideCell(editor, endCell, rng, false);\n      const startTableCellsToClean = isEmpty$2(startCell) ? startTableCells : startTableCells.slice(1);\n      const endTableCellsToClean = isEmpty$2(endCell) ? endTableCells : endTableCells.slice(0, -1);\n      cleanCells(startTableCellsToClean.concat(endTableCellsToClean));\n      betweenRng.deleteContents();\n      collapseAndRestoreCellSelection(editor);\n    });\n    const deleteCellContents = (editor, rng, cell, moveSelection = true) => Optional.some(() => {\n      deleteRangeContents(editor, rng, cell, moveSelection);\n    });\n    const deleteTableElement = (editor, table) => Optional.some(() => deleteElement$2(editor, false, table));\n    const deleteCellRange = (editor, rootElm, rng) => getActionFromRange(rootElm, rng).bind(action => action.fold(curry(deleteCellContents, editor), curry(deleteTableElement, editor), curry(emptySingleTableCells, editor), curry(emptyMultiTableCells, editor)));\n    const deleteCaptionRange = (editor, caption) => emptyElement(editor, caption);\n    const deleteTableRange = (editor, rootElm, rng, startElm) => getParentCaption(rootElm, startElm).fold(() => deleteCellRange(editor, rootElm, rng), caption => deleteCaptionRange(editor, caption));\n    const deleteRange$2 = (editor, startElm, selectedCells) => {\n      const rootNode = SugarElement.fromDom(editor.getBody());\n      const rng = editor.selection.getRng();\n      return selectedCells.length !== 0 ? emptySingleTableCells(editor, selectedCells, Optional.none()) : deleteTableRange(editor, rootNode, rng, startElm);\n    };\n    const getParentCell = (rootElm, elm) => find$2(parentsAndSelf(elm, rootElm), isTableCell$2);\n    const getParentCaption = (rootElm, elm) => find$2(parentsAndSelf(elm, rootElm), isTag('caption'));\n    const deleteBetweenCells = (editor, rootElm, forward, fromCell, from) => navigate(forward, editor.getBody(), from).bind(to => getParentCell(rootElm, SugarElement.fromDom(to.getNode())).bind(toCell => eq(toCell, fromCell) ? Optional.none() : Optional.some(noop)));\n    const emptyElement = (editor, elm) => Optional.some(() => {\n      fillWithPaddingBr(elm);\n      editor.selection.setCursorLocation(elm.dom, 0);\n    });\n    const isDeleteOfLastCharPos = (fromCaption, forward, from, to) => firstPositionIn(fromCaption.dom).bind(first => lastPositionIn(fromCaption.dom).map(last => forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first))).getOr(true);\n    const emptyCaretCaption = (editor, elm) => emptyElement(editor, elm);\n    const validateCaretCaption = (rootElm, fromCaption, to) => getParentCaption(rootElm, SugarElement.fromDom(to.getNode())).fold(() => Optional.some(noop), toCaption => someIf(!eq(toCaption, fromCaption), noop));\n    const deleteCaretInsideCaption = (editor, rootElm, forward, fromCaption, from) => navigate(forward, editor.getBody(), from).fold(() => Optional.some(noop), to => isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to));\n    const deleteCaretCells = (editor, forward, rootElm, startElm) => {\n      const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n      return getParentCell(rootElm, startElm).bind(fromCell => isEmpty$2(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from));\n    };\n    const deleteCaretCaption = (editor, forward, rootElm, fromCaption) => {\n      const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n      return isEmpty$2(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);\n    };\n    const isNearTable = (forward, pos) => forward ? isBeforeTable(pos) : isAfterTable(pos);\n    const isBeforeOrAfterTable = (editor, forward) => {\n      const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n      return isNearTable(forward, fromPos) || fromPosition(forward, editor.getBody(), fromPos).exists(pos => isNearTable(forward, pos));\n    };\n    const deleteCaret$3 = (editor, forward, startElm) => {\n      const rootElm = SugarElement.fromDom(editor.getBody());\n      return getParentCaption(rootElm, startElm).fold(() => deleteCaretCells(editor, forward, rootElm, startElm).orThunk(() => someIf(isBeforeOrAfterTable(editor, forward), noop)), fromCaption => deleteCaretCaption(editor, forward, rootElm, fromCaption));\n    };\n    const backspaceDelete$9 = (editor, forward) => {\n      const startElm = SugarElement.fromDom(editor.selection.getStart(true));\n      const cells = getCellsFromEditor(editor);\n      return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$3(editor, forward, startElm) : deleteRange$2(editor, startElm, cells);\n    };\n\n    const getContentEditableRoot$1 = (root, node) => {\n      let tempNode = node;\n      while (tempNode && tempNode !== root) {\n        if (isContentEditableTrue$3(tempNode) || isContentEditableFalse$a(tempNode)) {\n          return tempNode;\n        }\n        tempNode = tempNode.parentNode;\n      }\n      return null;\n    };\n\n    const internalAttributesPrefixes = [\n      'data-ephox-',\n      'data-mce-',\n      'data-alloy-',\n      'data-snooker-',\n      '_'\n    ];\n    const each$9 = Tools.each;\n    const ElementUtils = editor => {\n      const dom = editor.dom;\n      const internalAttributes = new Set(editor.serializer.getTempAttrs());\n      const compare = (node1, node2) => {\n        if (node1.nodeName !== node2.nodeName || node1.nodeType !== node2.nodeType) {\n          return false;\n        }\n        const getAttribs = node => {\n          const attribs = {};\n          each$9(dom.getAttribs(node), attr => {\n            const name = attr.nodeName.toLowerCase();\n            if (name !== 'style' && !isAttributeInternal(name)) {\n              attribs[name] = dom.getAttrib(node, name);\n            }\n          });\n          return attribs;\n        };\n        const compareObjects = (obj1, obj2) => {\n          for (const name in obj1) {\n            if (has$2(obj1, name)) {\n              const value = obj2[name];\n              if (isUndefined(value)) {\n                return false;\n              }\n              if (obj1[name] !== value) {\n                return false;\n              }\n              delete obj2[name];\n            }\n          }\n          for (const name in obj2) {\n            if (has$2(obj2, name)) {\n              return false;\n            }\n          }\n          return true;\n        };\n        if (isElement$6(node1) && isElement$6(node2)) {\n          if (!compareObjects(getAttribs(node1), getAttribs(node2))) {\n            return false;\n          }\n          if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {\n            return false;\n          }\n        }\n        return !isBookmarkNode$1(node1) && !isBookmarkNode$1(node2);\n      };\n      const isAttributeInternal = attributeName => exists(internalAttributesPrefixes, value => startsWith(attributeName, value)) || internalAttributes.has(attributeName);\n      return {\n        compare,\n        isAttributeInternal\n      };\n    };\n\n    const traverse = (root, fn) => {\n      let node = root;\n      while (node = node.walk()) {\n        fn(node);\n      }\n    };\n    const matchNode$1 = (nodeFilters, attributeFilters, node, matches) => {\n      const name = node.name;\n      for (let ni = 0, nl = nodeFilters.length; ni < nl; ni++) {\n        const filter = nodeFilters[ni];\n        if (filter.name === name) {\n          const match = matches.nodes[name];\n          if (match) {\n            match.nodes.push(node);\n          } else {\n            matches.nodes[name] = {\n              filter,\n              nodes: [node]\n            };\n          }\n        }\n      }\n      if (node.attributes) {\n        for (let ai = 0, al = attributeFilters.length; ai < al; ai++) {\n          const filter = attributeFilters[ai];\n          const attrName = filter.name;\n          if (attrName in node.attributes.map) {\n            const match = matches.attributes[attrName];\n            if (match) {\n              match.nodes.push(node);\n            } else {\n              matches.attributes[attrName] = {\n                filter,\n                nodes: [node]\n              };\n            }\n          }\n        }\n      }\n    };\n    const findMatchingNodes = (nodeFilters, attributeFilters, node) => {\n      const matches = {\n        nodes: {},\n        attributes: {}\n      };\n      if (node.firstChild) {\n        traverse(node, childNode => {\n          matchNode$1(nodeFilters, attributeFilters, childNode, matches);\n        });\n      }\n      return matches;\n    };\n    const runFilters = (matches, args) => {\n      const run = (matchRecord, filteringAttributes) => {\n        each$d(matchRecord, match => {\n          const nodes = from(match.nodes);\n          each$e(match.filter.callbacks, callback => {\n            for (let i = nodes.length - 1; i >= 0; i--) {\n              const node = nodes[i];\n              const valueMatches = filteringAttributes ? node.attr(match.filter.name) !== undefined : node.name === match.filter.name;\n              if (!valueMatches || isNullable(node.parent)) {\n                nodes.splice(i, 1);\n              }\n            }\n            if (nodes.length > 0) {\n              callback(nodes, match.filter.name, args);\n            }\n          });\n        });\n      };\n      run(matches.nodes, false);\n      run(matches.attributes, true);\n    };\n    const filter$2 = (nodeFilters, attributeFilters, node, args = {}) => {\n      const matches = findMatchingNodes(nodeFilters, attributeFilters, node);\n      runFilters(matches, args);\n    };\n\n    const paddEmptyNode = (args, isBlock, node) => {\n      if (args.insert && isBlock(node)) {\n        const astNode = new AstNode('br', 1);\n        astNode.attr('data-mce-bogus', '1');\n        node.empty().append(astNode);\n      } else {\n        node.empty().append(new AstNode('#text', 3)).value = nbsp;\n      }\n    };\n    const isPaddedWithNbsp = node => {\n      var _a;\n      return hasOnlyChild(node, '#text') && ((_a = node === null || node === void 0 ? void 0 : node.firstChild) === null || _a === void 0 ? void 0 : _a.value) === nbsp;\n    };\n    const hasOnlyChild = (node, name) => {\n      const firstChild = node === null || node === void 0 ? void 0 : node.firstChild;\n      return isNonNullable(firstChild) && firstChild === node.lastChild && firstChild.name === name;\n    };\n    const isPadded = (schema, node) => {\n      const rule = schema.getElementRule(node.name);\n      return (rule === null || rule === void 0 ? void 0 : rule.paddEmpty) === true;\n    };\n    const isEmpty = (schema, nonEmptyElements, whitespaceElements, node) => node.isEmpty(nonEmptyElements, whitespaceElements, node => isPadded(schema, node));\n    const isLineBreakNode = (node, isBlock) => isNonNullable(node) && (isBlock(node) || node.name === 'br');\n\n    const removeOrUnwrapInvalidNode = (node, schema, originalNodeParent = node.parent) => {\n      if (schema.getSpecialElements()[node.name]) {\n        node.empty().remove();\n      } else {\n        const children = node.children();\n        for (const childNode of children) {\n          if (originalNodeParent && !schema.isValidChild(originalNodeParent.name, childNode.name)) {\n            removeOrUnwrapInvalidNode(childNode, schema, originalNodeParent);\n          }\n        }\n        node.unwrap();\n      }\n    };\n    const cleanInvalidNodes = (nodes, schema, onCreate = noop) => {\n      const textBlockElements = schema.getTextBlockElements();\n      const nonEmptyElements = schema.getNonEmptyElements();\n      const whitespaceElements = schema.getWhitespaceElements();\n      const nonSplittableElements = Tools.makeMap('tr,td,th,tbody,thead,tfoot,table');\n      const fixed = new Set();\n      for (let ni = 0; ni < nodes.length; ni++) {\n        const node = nodes[ni];\n        let parent;\n        let newParent;\n        let tempNode;\n        if (!node.parent || fixed.has(node)) {\n          continue;\n        }\n        if (textBlockElements[node.name] && node.parent.name === 'li') {\n          let sibling = node.next;\n          while (sibling) {\n            if (textBlockElements[sibling.name]) {\n              sibling.name = 'li';\n              fixed.add(sibling);\n              node.parent.insert(sibling, node.parent);\n            } else {\n              break;\n            }\n            sibling = sibling.next;\n          }\n          node.unwrap();\n          continue;\n        }\n        const parents = [node];\n        for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && !nonSplittableElements[parent.name]; parent = parent.parent) {\n          parents.push(parent);\n        }\n        if (parent && parents.length > 1) {\n          if (schema.isValidChild(parent.name, node.name)) {\n            parents.reverse();\n            newParent = parents[0].clone();\n            onCreate(newParent);\n            let currentNode = newParent;\n            for (let i = 0; i < parents.length - 1; i++) {\n              if (schema.isValidChild(currentNode.name, parents[i].name)) {\n                tempNode = parents[i].clone();\n                onCreate(tempNode);\n                currentNode.append(tempNode);\n              } else {\n                tempNode = currentNode;\n              }\n              for (let childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) {\n                const nextNode = childNode.next;\n                tempNode.append(childNode);\n                childNode = nextNode;\n              }\n              currentNode = tempNode;\n            }\n            if (!isEmpty(schema, nonEmptyElements, whitespaceElements, newParent)) {\n              parent.insert(newParent, parents[0], true);\n              parent.insert(node, newParent);\n            } else {\n              parent.insert(node, parents[0], true);\n            }\n            parent = parents[0];\n            if (isEmpty(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) {\n              parent.empty().remove();\n            }\n          } else {\n            removeOrUnwrapInvalidNode(node, schema);\n          }\n        } else if (node.parent) {\n          if (node.name === 'li') {\n            let sibling = node.prev;\n            if (sibling && (sibling.name === 'ul' || sibling.name === 'ol')) {\n              sibling.append(node);\n              continue;\n            }\n            sibling = node.next;\n            if (sibling && (sibling.name === 'ul' || sibling.name === 'ol') && sibling.firstChild) {\n              sibling.insert(node, sibling.firstChild, true);\n              continue;\n            }\n            const wrapper = new AstNode('ul', 1);\n            onCreate(wrapper);\n            node.wrap(wrapper);\n            continue;\n          }\n          if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {\n            const wrapper = new AstNode('div', 1);\n            onCreate(wrapper);\n            node.wrap(wrapper);\n          } else {\n            removeOrUnwrapInvalidNode(node, schema);\n          }\n        }\n      }\n    };\n    const hasClosest = (node, parentName) => {\n      let tempNode = node;\n      while (tempNode) {\n        if (tempNode.name === parentName) {\n          return true;\n        }\n        tempNode = tempNode.parent;\n      }\n      return false;\n    };\n    const isInvalid = (schema, node, parent = node.parent) => {\n      if (parent && schema.children[node.name] && !schema.isValidChild(parent.name, node.name)) {\n        return true;\n      } else if (parent && node.name === 'a' && hasClosest(parent, 'a')) {\n        return true;\n      } else {\n        return false;\n      }\n    };\n\n    const createRange = (sc, so, ec, eo) => {\n      const rng = document.createRange();\n      rng.setStart(sc, so);\n      rng.setEnd(ec, eo);\n      return rng;\n    };\n    const normalizeBlockSelectionRange = rng => {\n      const startPos = CaretPosition.fromRangeStart(rng);\n      const endPos = CaretPosition.fromRangeEnd(rng);\n      const rootNode = rng.commonAncestorContainer;\n      return fromPosition(false, rootNode, endPos).map(newEndPos => {\n        if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {\n          return createRange(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());\n        } else {\n          return rng;\n        }\n      }).getOr(rng);\n    };\n    const normalize = rng => rng.collapsed ? rng : normalizeBlockSelectionRange(rng);\n\n    const hasOnlyOneChild$1 = node => {\n      return isNonNullable(node.firstChild) && node.firstChild === node.lastChild;\n    };\n    const isPaddingNode = node => {\n      return node.name === 'br' || node.value === nbsp;\n    };\n    const isPaddedEmptyBlock = (schema, node) => {\n      const blockElements = schema.getBlockElements();\n      return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild);\n    };\n    const isEmptyFragmentElement = (schema, node) => {\n      const nonEmptyElements = schema.getNonEmptyElements();\n      return isNonNullable(node) && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));\n    };\n    const isListFragment = (schema, fragment) => {\n      let firstChild = fragment.firstChild;\n      let lastChild = fragment.lastChild;\n      if (firstChild && firstChild.name === 'meta') {\n        firstChild = firstChild.next;\n      }\n      if (lastChild && lastChild.attr('id') === 'mce_marker') {\n        lastChild = lastChild.prev;\n      }\n      if (isEmptyFragmentElement(schema, lastChild)) {\n        lastChild = lastChild === null || lastChild === void 0 ? void 0 : lastChild.prev;\n      }\n      if (!firstChild || firstChild !== lastChild) {\n        return false;\n      }\n      return firstChild.name === 'ul' || firstChild.name === 'ol';\n    };\n    const cleanupDomFragment = domFragment => {\n      var _a, _b;\n      const firstChild = domFragment.firstChild;\n      const lastChild = domFragment.lastChild;\n      if (firstChild && firstChild.nodeName === 'META') {\n        (_a = firstChild.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(firstChild);\n      }\n      if (lastChild && lastChild.id === 'mce_marker') {\n        (_b = lastChild.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(lastChild);\n      }\n      return domFragment;\n    };\n    const toDomFragment = (dom, serializer, fragment) => {\n      const html = serializer.serialize(fragment);\n      const domFragment = dom.createFragment(html);\n      return cleanupDomFragment(domFragment);\n    };\n    const listItems = elm => {\n      var _a;\n      return filter$5((_a = elm === null || elm === void 0 ? void 0 : elm.childNodes) !== null && _a !== void 0 ? _a : [], child => {\n        return child.nodeName === 'LI';\n      });\n    };\n    const isPadding = node => {\n      return node.data === nbsp || isBr$6(node);\n    };\n    const isListItemPadded = node => {\n      return isNonNullable(node === null || node === void 0 ? void 0 : node.firstChild) && node.firstChild === node.lastChild && isPadding(node.firstChild);\n    };\n    const isEmptyOrPadded = elm => {\n      return !elm.firstChild || isListItemPadded(elm);\n    };\n    const trimListItems = elms => {\n      return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\n    };\n    const getParentLi = (dom, node) => {\n      const parentBlock = dom.getParent(node, dom.isBlock);\n      return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\n    };\n    const isParentBlockLi = (dom, node) => {\n      return !!getParentLi(dom, node);\n    };\n    const getSplit = (parentNode, rng) => {\n      const beforeRng = rng.cloneRange();\n      const afterRng = rng.cloneRange();\n      beforeRng.setStartBefore(parentNode);\n      afterRng.setEndAfter(parentNode);\n      return [\n        beforeRng.cloneContents(),\n        afterRng.cloneContents()\n      ];\n    };\n    const findFirstIn = (node, rootNode) => {\n      const caretPos = CaretPosition.before(node);\n      const caretWalker = CaretWalker(rootNode);\n      const newCaretPos = caretWalker.next(caretPos);\n      return newCaretPos ? newCaretPos.toRange() : null;\n    };\n    const findLastOf = (node, rootNode) => {\n      const caretPos = CaretPosition.after(node);\n      const caretWalker = CaretWalker(rootNode);\n      const newCaretPos = caretWalker.prev(caretPos);\n      return newCaretPos ? newCaretPos.toRange() : null;\n    };\n    const insertMiddle = (target, elms, rootNode, rng) => {\n      const parts = getSplit(target, rng);\n      const parentElm = target.parentNode;\n      if (parentElm) {\n        parentElm.insertBefore(parts[0], target);\n        Tools.each(elms, li => {\n          parentElm.insertBefore(li, target);\n        });\n        parentElm.insertBefore(parts[1], target);\n        parentElm.removeChild(target);\n      }\n      return findLastOf(elms[elms.length - 1], rootNode);\n    };\n    const insertBefore$1 = (target, elms, rootNode) => {\n      const parentElm = target.parentNode;\n      if (parentElm) {\n        Tools.each(elms, elm => {\n          parentElm.insertBefore(elm, target);\n        });\n      }\n      return findFirstIn(target, rootNode);\n    };\n    const insertAfter$1 = (target, elms, rootNode, dom) => {\n      dom.insertAfter(elms.reverse(), target);\n      return findLastOf(elms[0], rootNode);\n    };\n    const insertAtCaret$1 = (serializer, dom, rng, fragment) => {\n      const domFragment = toDomFragment(dom, serializer, fragment);\n      const liTarget = getParentLi(dom, rng.startContainer);\n      const liElms = trimListItems(listItems(domFragment.firstChild));\n      const BEGINNING = 1, END = 2;\n      const rootNode = dom.getRoot();\n      const isAt = location => {\n        const caretPos = CaretPosition.fromRangeStart(rng);\n        const caretWalker = CaretWalker(dom.getRoot());\n        const newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\n        const newPosNode = newPos === null || newPos === void 0 ? void 0 : newPos.getNode();\n        return newPosNode ? getParentLi(dom, newPosNode) !== liTarget : true;\n      };\n      if (!liTarget) {\n        return null;\n      } else if (isAt(BEGINNING)) {\n        return insertBefore$1(liTarget, liElms, rootNode);\n      } else if (isAt(END)) {\n        return insertAfter$1(liTarget, liElms, rootNode, dom);\n      } else {\n        return insertMiddle(liTarget, liElms, rootNode, rng);\n      }\n    };\n\n    const mergeableWrappedElements = ['pre'];\n    const shouldPasteContentOnly = (dom, fragment, parentNode, root) => {\n      var _a;\n      const firstNode = fragment.firstChild;\n      const lastNode = fragment.lastChild;\n      const last = lastNode.attr('data-mce-type') === 'bookmark' ? lastNode.prev : lastNode;\n      const isPastingSingleElement = firstNode === last;\n      const isWrappedElement = contains$2(mergeableWrappedElements, firstNode.name);\n      if (isPastingSingleElement && isWrappedElement) {\n        const isContentEditable = firstNode.attr('contenteditable') !== 'false';\n        const isPastingInTheSameBlockTag = ((_a = dom.getParent(parentNode, dom.isBlock)) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === firstNode.name;\n        const isPastingInContentEditable = Optional.from(getContentEditableRoot$1(root, parentNode)).forall(isContentEditableTrue$3);\n        return isContentEditable && isPastingInTheSameBlockTag && isPastingInContentEditable;\n      } else {\n        return false;\n      }\n    };\n    const isTableCell = isTableCell$3;\n    const isTableCellContentSelected = (dom, rng, cell) => {\n      if (isNonNullable(cell)) {\n        const endCell = dom.getParent(rng.endContainer, isTableCell);\n        return cell === endCell && hasAllContentsSelected(SugarElement.fromDom(cell), rng);\n      } else {\n        return false;\n      }\n    };\n    const validInsertion = (editor, value, parentNode) => {\n      var _a;\n      if (parentNode.getAttribute('data-mce-bogus') === 'all') {\n        (_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(editor.dom.createFragment(value), parentNode);\n      } else {\n        const node = parentNode.firstChild;\n        const node2 = parentNode.lastChild;\n        if (!node || node === node2 && node.nodeName === 'BR') {\n          editor.dom.setHTML(parentNode, value);\n        } else {\n          editor.selection.setContent(value, { no_events: true });\n        }\n      }\n    };\n    const trimBrsFromTableCell = (dom, elm) => {\n      Optional.from(dom.getParent(elm, 'td,th')).map(SugarElement.fromDom).each(trimBlockTrailingBr);\n    };\n    const reduceInlineTextElements = (editor, merge) => {\n      const textInlineElements = editor.schema.getTextInlineElements();\n      const dom = editor.dom;\n      if (merge) {\n        const root = editor.getBody();\n        const elementUtils = ElementUtils(editor);\n        Tools.each(dom.select('*[data-mce-fragment]'), node => {\n          const isInline = isNonNullable(textInlineElements[node.nodeName.toLowerCase()]);\n          if (isInline && hasInheritableStyles(dom, node)) {\n            for (let parentNode = node.parentElement; isNonNullable(parentNode) && parentNode !== root; parentNode = parentNode.parentElement) {\n              const styleConflict = hasStyleConflict(dom, node, parentNode);\n              if (styleConflict) {\n                break;\n              }\n              if (elementUtils.compare(parentNode, node)) {\n                dom.remove(node, true);\n                break;\n              }\n            }\n          }\n        });\n      }\n    };\n    const markFragmentElements = fragment => {\n      let node = fragment;\n      while (node = node.walk()) {\n        if (node.type === 1) {\n          node.attr('data-mce-fragment', '1');\n        }\n      }\n    };\n    const unmarkFragmentElements = elm => {\n      Tools.each(elm.getElementsByTagName('*'), elm => {\n        elm.removeAttribute('data-mce-fragment');\n      });\n    };\n    const isPartOfFragment = node => {\n      return !!node.getAttribute('data-mce-fragment');\n    };\n    const canHaveChildren = (editor, node) => {\n      return isNonNullable(node) && !editor.schema.getVoidElements()[node.nodeName];\n    };\n    const moveSelectionToMarker = (editor, marker) => {\n      var _a, _b, _c;\n      let nextRng;\n      const dom = editor.dom;\n      const selection = editor.selection;\n      if (!marker) {\n        return;\n      }\n      selection.scrollIntoView(marker);\n      const parentEditableElm = getContentEditableRoot$1(editor.getBody(), marker);\n      if (parentEditableElm && dom.getContentEditable(parentEditableElm) === 'false') {\n        dom.remove(marker);\n        selection.select(parentEditableElm);\n        return;\n      }\n      let rng = dom.createRng();\n      const node = marker.previousSibling;\n      if (isText$a(node)) {\n        rng.setStart(node, (_b = (_a = node.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);\n        const node2 = marker.nextSibling;\n        if (isText$a(node2)) {\n          node.appendData(node2.data);\n          (_c = node2.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(node2);\n        }\n      } else {\n        rng.setStartBefore(marker);\n        rng.setEndBefore(marker);\n      }\n      const findNextCaretRng = rng => {\n        let caretPos = CaretPosition.fromRangeStart(rng);\n        const caretWalker = CaretWalker(editor.getBody());\n        caretPos = caretWalker.next(caretPos);\n        return caretPos === null || caretPos === void 0 ? void 0 : caretPos.toRange();\n      };\n      const parentBlock = dom.getParent(marker, dom.isBlock);\n      dom.remove(marker);\n      if (parentBlock && dom.isEmpty(parentBlock)) {\n        empty(SugarElement.fromDom(parentBlock));\n        rng.setStart(parentBlock, 0);\n        rng.setEnd(parentBlock, 0);\n        if (!isTableCell(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\n          rng = nextRng;\n          dom.remove(parentBlock);\n        } else {\n          dom.add(parentBlock, dom.create('br', { 'data-mce-bogus': '1' }));\n        }\n      }\n      selection.setRng(rng);\n    };\n    const deleteSelectedContent = editor => {\n      const dom = editor.dom;\n      const rng = normalize(editor.selection.getRng());\n      editor.selection.setRng(rng);\n      const startCell = dom.getParent(rng.startContainer, isTableCell);\n      if (isTableCellContentSelected(dom, rng, startCell)) {\n        deleteCellContents(editor, rng, SugarElement.fromDom(startCell));\n      } else if (rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset === 1 && isText$a(rng.startContainer.childNodes[rng.startOffset])) {\n        rng.deleteContents();\n      } else {\n        editor.getDoc().execCommand('Delete', false);\n      }\n    };\n    const insertHtmlAtCaret = (editor, value, details) => {\n      var _a, _b;\n      const selection = editor.selection;\n      const dom = editor.dom;\n      const parser = editor.parser;\n      const merge = details.merge;\n      const serializer = HtmlSerializer({ validate: true }, editor.schema);\n      const bookmarkHtml = '<span id=\"mce_marker\" data-mce-type=\"bookmark\">&#xFEFF;</span>';\n      if (value.indexOf('{$caret}') === -1) {\n        value += '{$caret}';\n      }\n      value = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\n      let rng = selection.getRng();\n      const caretElement = rng.startContainer;\n      const body = editor.getBody();\n      if (caretElement === body && selection.isCollapsed()) {\n        if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) {\n          rng = dom.createRng();\n          rng.setStart(body.firstChild, 0);\n          rng.setEnd(body.firstChild, 0);\n          selection.setRng(rng);\n        }\n      }\n      if (!selection.isCollapsed()) {\n        deleteSelectedContent(editor);\n      }\n      const parentNode = selection.getNode();\n      const parserArgs = {\n        context: parentNode.nodeName.toLowerCase(),\n        data: details.data,\n        insert: true\n      };\n      const fragment = parser.parse(value, parserArgs);\n      if (details.paste === true && isListFragment(editor.schema, fragment) && isParentBlockLi(dom, parentNode)) {\n        rng = insertAtCaret$1(serializer, dom, selection.getRng(), fragment);\n        if (rng) {\n          selection.setRng(rng);\n        }\n        return value;\n      }\n      if (details.paste === true && shouldPasteContentOnly(dom, fragment, parentNode, editor.getBody())) {\n        (_a = fragment.firstChild) === null || _a === void 0 ? void 0 : _a.unwrap();\n      }\n      markFragmentElements(fragment);\n      let node = fragment.lastChild;\n      if (node && node.attr('id') === 'mce_marker') {\n        const marker = node;\n        for (node = node.prev; node; node = node.walk(true)) {\n          if (node.type === 3 || !dom.isBlock(node.name)) {\n            if (node.parent && editor.schema.isValidChild(node.parent.name, 'span')) {\n              node.parent.insert(marker, node, node.name === 'br');\n            }\n            break;\n          }\n        }\n      }\n      editor._selectionOverrides.showBlockCaretContainer(parentNode);\n      if (!parserArgs.invalid) {\n        value = serializer.serialize(fragment);\n        validInsertion(editor, value, parentNode);\n      } else {\n        editor.selection.setContent(bookmarkHtml);\n        let parentNode = selection.getNode();\n        let tempNode;\n        const rootNode = editor.getBody();\n        if (isDocument$1(parentNode)) {\n          parentNode = tempNode = rootNode;\n        } else {\n          tempNode = parentNode;\n        }\n        while (tempNode && tempNode !== rootNode) {\n          parentNode = tempNode;\n          tempNode = tempNode.parentNode;\n        }\n        value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\n        const root = parser.parse(value);\n        for (let markerNode = root; markerNode; markerNode = markerNode.walk()) {\n          if (markerNode.attr('id') === 'mce_marker') {\n            markerNode.replace(fragment);\n            break;\n          }\n        }\n        const toExtract = fragment.children();\n        const parent = (_b = fragment.parent) !== null && _b !== void 0 ? _b : root;\n        fragment.unwrap();\n        const invalidChildren = filter$5(toExtract, node => isInvalid(editor.schema, node, parent));\n        cleanInvalidNodes(invalidChildren, editor.schema);\n        filter$2(parser.getNodeFilters(), parser.getAttributeFilters(), root);\n        value = serializer.serialize(root);\n        if (parentNode === rootNode) {\n          dom.setHTML(rootNode, value);\n        } else {\n          dom.setOuterHTML(parentNode, value);\n        }\n      }\n      reduceInlineTextElements(editor, merge);\n      moveSelectionToMarker(editor, dom.get('mce_marker'));\n      unmarkFragmentElements(editor.getBody());\n      trimBrsFromTableCell(dom, selection.getStart());\n      updateCaret(editor.schema, editor.getBody(), selection.getStart());\n      return value;\n    };\n\n    const isTreeNode = content => content instanceof AstNode;\n\n    const moveSelection = editor => {\n      if (hasFocus(editor)) {\n        firstPositionIn(editor.getBody()).each(pos => {\n          const node = pos.getNode();\n          const caretPos = isTable$2(node) ? firstPositionIn(node).getOr(pos) : pos;\n          editor.selection.setRng(caretPos.toRange());\n        });\n      }\n    };\n    const setEditorHtml = (editor, html, noSelection) => {\n      editor.dom.setHTML(editor.getBody(), html);\n      if (noSelection !== true) {\n        moveSelection(editor);\n      }\n    };\n    const setContentString = (editor, body, content, args) => {\n      if (content.length === 0 || /^\\s+$/.test(content)) {\n        const padd = '<br data-mce-bogus=\"1\">';\n        if (body.nodeName === 'TABLE') {\n          content = '<tr><td>' + padd + '</td></tr>';\n        } else if (/^(UL|OL)$/.test(body.nodeName)) {\n          content = '<li>' + padd + '</li>';\n        }\n        const forcedRootBlockName = getForcedRootBlock(editor);\n        if (editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\n          content = padd;\n          content = editor.dom.createHTML(forcedRootBlockName, getForcedRootBlockAttrs(editor), content);\n        } else if (!content) {\n          content = padd;\n        }\n        setEditorHtml(editor, content, args.no_selection);\n        return {\n          content,\n          html: content\n        };\n      } else {\n        if (args.format !== 'raw') {\n          content = HtmlSerializer({ validate: false }, editor.schema).serialize(editor.parser.parse(content, {\n            isRootContent: true,\n            insert: true\n          }));\n        }\n        const trimmedHtml = isWsPreserveElement(SugarElement.fromDom(body)) ? content : Tools.trim(content);\n        setEditorHtml(editor, trimmedHtml, args.no_selection);\n        return {\n          content: trimmedHtml,\n          html: trimmedHtml\n        };\n      }\n    };\n    const setContentTree = (editor, body, content, args) => {\n      filter$2(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);\n      const html = HtmlSerializer({ validate: false }, editor.schema).serialize(content);\n      const trimmedHtml = isWsPreserveElement(SugarElement.fromDom(body)) ? html : Tools.trim(html);\n      setEditorHtml(editor, trimmedHtml, args.no_selection);\n      return {\n        content,\n        html: trimmedHtml\n      };\n    };\n    const setContentInternal = (editor, content, args) => {\n      return Optional.from(editor.getBody()).map(body => {\n        if (isTreeNode(content)) {\n          return setContentTree(editor, body, content, args);\n        } else {\n          return setContentString(editor, body, content, args);\n        }\n      }).getOr({\n        content,\n        html: isTreeNode(args.content) ? '' : args.content\n      });\n    };\n\n    const sibling = (scope, predicate) => sibling$1(scope, predicate).isSome();\n\n    const ensureIsRoot = isRoot => isFunction(isRoot) ? isRoot : never;\n    const ancestor = (scope, transform, isRoot) => {\n      let element = scope.dom;\n      const stop = ensureIsRoot(isRoot);\n      while (element.parentNode) {\n        element = element.parentNode;\n        const el = SugarElement.fromDom(element);\n        const transformed = transform(el);\n        if (transformed.isSome()) {\n          return transformed;\n        } else if (stop(el)) {\n          break;\n        }\n      }\n      return Optional.none();\n    };\n    const closest$2 = (scope, transform, isRoot) => {\n      const current = transform(scope);\n      const stop = ensureIsRoot(isRoot);\n      return current.orThunk(() => stop(scope) ? Optional.none() : ancestor(scope, transform, stop));\n    };\n\n    const isEq$3 = isEq$5;\n    const matchesUnInheritedFormatSelector = (ed, node, name) => {\n      const formatList = ed.formatter.get(name);\n      if (formatList) {\n        for (let i = 0; i < formatList.length; i++) {\n          const format = formatList[i];\n          if (isSelectorFormat(format) && format.inherit === false && ed.dom.is(node, format.selector)) {\n            return true;\n          }\n        }\n      }\n      return false;\n    };\n    const matchParents = (editor, node, name, vars, similar) => {\n      const root = editor.dom.getRoot();\n      if (node === root) {\n        return false;\n      }\n      const matchedNode = editor.dom.getParent(node, elm => {\n        if (matchesUnInheritedFormatSelector(editor, elm, name)) {\n          return true;\n        }\n        return elm.parentNode === root || !!matchNode(editor, elm, name, vars, true);\n      });\n      return !!matchNode(editor, matchedNode, name, vars, similar);\n    };\n    const matchName = (dom, node, format) => {\n      if (isInlineFormat(format) && isEq$3(node, format.inline)) {\n        return true;\n      }\n      if (isBlockFormat(format) && isEq$3(node, format.block)) {\n        return true;\n      }\n      if (isSelectorFormat(format)) {\n        return isElement$6(node) && dom.is(node, format.selector);\n      }\n      return false;\n    };\n    const matchItems = (dom, node, format, itemName, similar, vars) => {\n      const items = format[itemName];\n      const matchAttributes = itemName === 'attributes';\n      if (isFunction(format.onmatch)) {\n        return format.onmatch(node, format, itemName);\n      }\n      if (items) {\n        if (!isArrayLike(items)) {\n          for (const key in items) {\n            if (has$2(items, key)) {\n              const value = matchAttributes ? dom.getAttrib(node, key) : getStyle(dom, node, key);\n              const expectedValue = replaceVars(items[key], vars);\n              const isEmptyValue = isNullable(value) || isEmpty$3(value);\n              if (isEmptyValue && isNullable(expectedValue)) {\n                continue;\n              }\n              if (similar && isEmptyValue && !format.exact) {\n                return false;\n              }\n              if ((!similar || format.exact) && !isEq$3(value, normalizeStyleValue(expectedValue, key))) {\n                return false;\n              }\n            }\n          }\n        } else {\n          for (let i = 0; i < items.length; i++) {\n            if (matchAttributes ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {\n              return true;\n            }\n          }\n        }\n      }\n      return true;\n    };\n    const matchNode = (ed, node, name, vars, similar) => {\n      const formatList = ed.formatter.get(name);\n      const dom = ed.dom;\n      if (formatList && isElement$6(node)) {\n        for (let i = 0; i < formatList.length; i++) {\n          const format = formatList[i];\n          if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {\n            const classes = format.classes;\n            if (classes) {\n              for (let x = 0; x < classes.length; x++) {\n                if (!ed.dom.hasClass(node, replaceVars(classes[x], vars))) {\n                  return;\n                }\n              }\n            }\n            return format;\n          }\n        }\n      }\n      return undefined;\n    };\n    const match$2 = (editor, name, vars, node, similar) => {\n      if (node) {\n        return matchParents(editor, node, name, vars, similar);\n      }\n      node = editor.selection.getNode();\n      if (matchParents(editor, node, name, vars, similar)) {\n        return true;\n      }\n      const startNode = editor.selection.getStart();\n      if (startNode !== node) {\n        if (matchParents(editor, startNode, name, vars, similar)) {\n          return true;\n        }\n      }\n      return false;\n    };\n    const matchAll = (editor, names, vars) => {\n      const matchedFormatNames = [];\n      const checkedMap = {};\n      const startElement = editor.selection.getStart();\n      editor.dom.getParent(startElement, node => {\n        for (let i = 0; i < names.length; i++) {\n          const name = names[i];\n          if (!checkedMap[name] && matchNode(editor, node, name, vars)) {\n            checkedMap[name] = true;\n            matchedFormatNames.push(name);\n          }\n        }\n      }, editor.dom.getRoot());\n      return matchedFormatNames;\n    };\n    const closest$1 = (editor, names) => {\n      const isRoot = elm => eq(elm, SugarElement.fromDom(editor.getBody()));\n      const match = (elm, name) => matchNode(editor, elm.dom, name) ? Optional.some(name) : Optional.none();\n      return Optional.from(editor.selection.getStart(true)).bind(rawElm => closest$2(SugarElement.fromDom(rawElm), elm => findMap(names, name => match(elm, name)), isRoot)).getOrNull();\n    };\n    const canApply = (editor, name) => {\n      const formatList = editor.formatter.get(name);\n      const dom = editor.dom;\n      if (formatList) {\n        const startNode = editor.selection.getStart();\n        const parents = getParents$2(dom, startNode);\n        for (let x = formatList.length - 1; x >= 0; x--) {\n          const format = formatList[x];\n          if (!isSelectorFormat(format)) {\n            return true;\n          }\n          for (let i = parents.length - 1; i >= 0; i--) {\n            if (dom.is(parents[i], format.selector)) {\n              return true;\n            }\n          }\n        }\n      }\n      return false;\n    };\n    const matchAllOnNode = (editor, node, formatNames) => foldl(formatNames, (acc, name) => {\n      const matchSimilar = isVariableFormatName(editor, name);\n      if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {\n        return acc.concat([name]);\n      } else {\n        return acc;\n      }\n    }, []);\n\n    const ZWSP = ZWSP$1;\n    const importNode = (ownerDocument, node) => {\n      return ownerDocument.importNode(node, true);\n    };\n    const getEmptyCaretContainers = node => {\n      const nodes = [];\n      let tempNode = node;\n      while (tempNode) {\n        if (isText$a(tempNode) && tempNode.data !== ZWSP || tempNode.childNodes.length > 1) {\n          return [];\n        }\n        if (isElement$6(tempNode)) {\n          nodes.push(tempNode);\n        }\n        tempNode = tempNode.firstChild;\n      }\n      return nodes;\n    };\n    const isCaretContainerEmpty = node => {\n      return getEmptyCaretContainers(node).length > 0;\n    };\n    const findFirstTextNode = node => {\n      if (node) {\n        const walker = new DomTreeWalker(node, node);\n        for (let tempNode = walker.current(); tempNode; tempNode = walker.next()) {\n          if (isText$a(tempNode)) {\n            return tempNode;\n          }\n        }\n      }\n      return null;\n    };\n    const createCaretContainer = fill => {\n      const caretContainer = SugarElement.fromTag('span');\n      setAll$1(caretContainer, {\n        'id': CARET_ID,\n        'data-mce-bogus': '1',\n        'data-mce-type': 'format-caret'\n      });\n      if (fill) {\n        append$1(caretContainer, SugarElement.fromText(ZWSP));\n      }\n      return caretContainer;\n    };\n    const trimZwspFromCaretContainer = caretContainerNode => {\n      const textNode = findFirstTextNode(caretContainerNode);\n      if (textNode && textNode.data.charAt(0) === ZWSP) {\n        textNode.deleteData(0, 1);\n      }\n      return textNode;\n    };\n    const removeCaretContainerNode = (editor, node, moveCaret = true) => {\n      const dom = editor.dom, selection = editor.selection;\n      if (isCaretContainerEmpty(node)) {\n        deleteElement$2(editor, false, SugarElement.fromDom(node), moveCaret);\n      } else {\n        const rng = selection.getRng();\n        const block = dom.getParent(node, dom.isBlock);\n        const startContainer = rng.startContainer;\n        const startOffset = rng.startOffset;\n        const endContainer = rng.endContainer;\n        const endOffset = rng.endOffset;\n        const textNode = trimZwspFromCaretContainer(node);\n        dom.remove(node, true);\n        if (startContainer === textNode && startOffset > 0) {\n          rng.setStart(textNode, startOffset - 1);\n        }\n        if (endContainer === textNode && endOffset > 0) {\n          rng.setEnd(textNode, endOffset - 1);\n        }\n        if (block && dom.isEmpty(block)) {\n          fillWithPaddingBr(SugarElement.fromDom(block));\n        }\n        selection.setRng(rng);\n      }\n    };\n    const removeCaretContainer = (editor, node, moveCaret = true) => {\n      const dom = editor.dom, selection = editor.selection;\n      if (!node) {\n        node = getParentCaretContainer(editor.getBody(), selection.getStart());\n        if (!node) {\n          while (node = dom.get(CARET_ID)) {\n            removeCaretContainerNode(editor, node, false);\n          }\n        }\n      } else {\n        removeCaretContainerNode(editor, node, moveCaret);\n      }\n    };\n    const insertCaretContainerNode = (editor, caretContainer, formatNode) => {\n      var _a, _b;\n      const dom = editor.dom;\n      const block = dom.getParent(formatNode, curry(isTextBlock$1, editor.schema));\n      if (block && dom.isEmpty(block)) {\n        (_a = formatNode.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(caretContainer, formatNode);\n      } else {\n        removeTrailingBr(SugarElement.fromDom(formatNode));\n        if (dom.isEmpty(formatNode)) {\n          (_b = formatNode.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(caretContainer, formatNode);\n        } else {\n          dom.insertAfter(caretContainer, formatNode);\n        }\n      }\n    };\n    const appendNode = (parentNode, node) => {\n      parentNode.appendChild(node);\n      return node;\n    };\n    const insertFormatNodesIntoCaretContainer = (formatNodes, caretContainer) => {\n      var _a;\n      const innerMostFormatNode = foldr(formatNodes, (parentNode, formatNode) => {\n        return appendNode(parentNode, formatNode.cloneNode(false));\n      }, caretContainer);\n      const doc = (_a = innerMostFormatNode.ownerDocument) !== null && _a !== void 0 ? _a : document;\n      return appendNode(innerMostFormatNode, doc.createTextNode(ZWSP));\n    };\n    const cleanFormatNode = (editor, caretContainer, formatNode, name, vars, similar) => {\n      const formatter = editor.formatter;\n      const dom = editor.dom;\n      const validFormats = filter$5(keys(formatter.get()), formatName => formatName !== name && !contains$1(formatName, 'removeformat'));\n      const matchedFormats = matchAllOnNode(editor, formatNode, validFormats);\n      const uniqueFormats = filter$5(matchedFormats, fmtName => !areSimilarFormats(editor, fmtName, name));\n      if (uniqueFormats.length > 0) {\n        const clonedFormatNode = formatNode.cloneNode(false);\n        dom.add(caretContainer, clonedFormatNode);\n        formatter.remove(name, vars, clonedFormatNode, similar);\n        dom.remove(clonedFormatNode);\n        return Optional.some(clonedFormatNode);\n      } else {\n        return Optional.none();\n      }\n    };\n    const applyCaretFormat = (editor, name, vars) => {\n      let caretContainer;\n      const selection = editor.selection;\n      const formatList = editor.formatter.get(name);\n      if (!formatList) {\n        return;\n      }\n      const selectionRng = selection.getRng();\n      let offset = selectionRng.startOffset;\n      const container = selectionRng.startContainer;\n      const text = container.nodeValue;\n      caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart());\n      const wordcharRegex = /[^\\s\\u00a0\\u00ad\\u200b\\ufeff]/;\n      if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {\n        const bookmark = selection.getBookmark();\n        selectionRng.collapse(true);\n        let rng = expandRng(editor.dom, selectionRng, formatList);\n        rng = split(rng);\n        editor.formatter.apply(name, vars, rng);\n        selection.moveToBookmark(bookmark);\n      } else {\n        let textNode = caretContainer ? findFirstTextNode(caretContainer) : null;\n        if (!caretContainer || (textNode === null || textNode === void 0 ? void 0 : textNode.data) !== ZWSP) {\n          caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom);\n          textNode = caretContainer.firstChild;\n          selectionRng.insertNode(caretContainer);\n          offset = 1;\n          editor.formatter.apply(name, vars, caretContainer);\n        } else {\n          editor.formatter.apply(name, vars, caretContainer);\n        }\n        selection.setCursorLocation(textNode, offset);\n      }\n    };\n    const removeCaretFormat = (editor, name, vars, similar) => {\n      const dom = editor.dom;\n      const selection = editor.selection;\n      let hasContentAfter = false;\n      const formatList = editor.formatter.get(name);\n      if (!formatList) {\n        return;\n      }\n      const rng = selection.getRng();\n      const container = rng.startContainer;\n      const offset = rng.startOffset;\n      let node = container;\n      if (isText$a(container)) {\n        if (offset !== container.data.length) {\n          hasContentAfter = true;\n        }\n        node = node.parentNode;\n      }\n      const parents = [];\n      let formatNode;\n      while (node) {\n        if (matchNode(editor, node, name, vars, similar)) {\n          formatNode = node;\n          break;\n        }\n        if (node.nextSibling) {\n          hasContentAfter = true;\n        }\n        parents.push(node);\n        node = node.parentNode;\n      }\n      if (!formatNode) {\n        return;\n      }\n      if (hasContentAfter) {\n        const bookmark = selection.getBookmark();\n        rng.collapse(true);\n        let expandedRng = expandRng(dom, rng, formatList, true);\n        expandedRng = split(expandedRng);\n        editor.formatter.remove(name, vars, expandedRng, similar);\n        selection.moveToBookmark(bookmark);\n      } else {\n        const caretContainer = getParentCaretContainer(editor.getBody(), formatNode);\n        const newCaretContainer = createCaretContainer(false).dom;\n        insertCaretContainerNode(editor, newCaretContainer, caretContainer !== null && caretContainer !== void 0 ? caretContainer : formatNode);\n        const cleanedFormatNode = cleanFormatNode(editor, newCaretContainer, formatNode, name, vars, similar);\n        const caretTextNode = insertFormatNodesIntoCaretContainer(parents.concat(cleanedFormatNode.toArray()), newCaretContainer);\n        if (caretContainer) {\n          removeCaretContainerNode(editor, caretContainer, false);\n        }\n        selection.setCursorLocation(caretTextNode, 1);\n        if (dom.isEmpty(formatNode)) {\n          dom.remove(formatNode);\n        }\n      }\n    };\n    const disableCaretContainer = (editor, keyCode) => {\n      const selection = editor.selection, body = editor.getBody();\n      removeCaretContainer(editor, null, false);\n      if ((keyCode === 8 || keyCode === 46) && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP) {\n        removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));\n      }\n      if (keyCode === 37 || keyCode === 39) {\n        removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));\n      }\n    };\n    const setup$u = editor => {\n      editor.on('mouseup keydown', e => {\n        disableCaretContainer(editor, e.keyCode);\n      });\n    };\n    const replaceWithCaretFormat = (targetNode, formatNodes) => {\n      const caretContainer = createCaretContainer(false);\n      const innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom);\n      before$3(SugarElement.fromDom(targetNode), caretContainer);\n      remove$6(SugarElement.fromDom(targetNode));\n      return CaretPosition(innerMost, 0);\n    };\n    const isFormatElement = (editor, element) => {\n      const inlineElements = editor.schema.getTextInlineElements();\n      return has$2(inlineElements, name(element)) && !isCaretNode(element.dom) && !isBogus$2(element.dom);\n    };\n    const isEmptyCaretFormatElement = element => {\n      return isCaretNode(element.dom) && isCaretContainerEmpty(element.dom);\n    };\n\n    const postProcessHooks = {};\n    const isPre = matchNodeNames(['pre']);\n    const addPostProcessHook = (name, hook) => {\n      const hooks = postProcessHooks[name];\n      if (!hooks) {\n        postProcessHooks[name] = [];\n      }\n      postProcessHooks[name].push(hook);\n    };\n    const postProcess$1 = (name, editor) => {\n      if (has$2(postProcessHooks, name)) {\n        each$e(postProcessHooks[name], hook => {\n          hook(editor);\n        });\n      }\n    };\n    addPostProcessHook('pre', editor => {\n      const rng = editor.selection.getRng();\n      const hasPreSibling = blocks => pre => {\n        const prev = pre.previousSibling;\n        return isPre(prev) && contains$2(blocks, prev);\n      };\n      const joinPre = (pre1, pre2) => {\n        const sPre2 = SugarElement.fromDom(pre2);\n        const doc = documentOrOwner(sPre2).dom;\n        remove$6(sPre2);\n        append(SugarElement.fromDom(pre1), [\n          SugarElement.fromTag('br', doc),\n          SugarElement.fromTag('br', doc),\n          ...children$1(sPre2)\n        ]);\n      };\n      if (!rng.collapsed) {\n        const blocks = editor.selection.getSelectedBlocks();\n        const preBlocks = filter$5(filter$5(blocks, isPre), hasPreSibling(blocks));\n        each$e(preBlocks, pre => {\n          joinPre(pre.previousSibling, pre);\n        });\n      }\n    });\n\n    const listItemStyles = [\n      'fontWeight',\n      'fontStyle',\n      'color',\n      'fontSize',\n      'fontFamily'\n    ];\n    const hasListStyles = fmt => isObject(fmt.styles) && exists(keys(fmt.styles), name => contains$2(listItemStyles, name));\n    const findExpandedListItemFormat = formats => find$2(formats, fmt => isInlineFormat(fmt) && fmt.inline === 'span' && hasListStyles(fmt));\n    const getExpandedListItemFormat = (formatter, format) => {\n      const formatList = formatter.get(format);\n      return isArray$1(formatList) ? findExpandedListItemFormat(formatList) : Optional.none();\n    };\n    const isRngStartAtStartOfElement = (rng, elm) => prevPosition(elm, CaretPosition.fromRangeStart(rng)).isNone();\n    const isRngEndAtEndOfElement = (rng, elm) => {\n      return nextPosition(elm, CaretPosition.fromRangeEnd(rng)).exists(pos => !isBr$6(pos.getNode()) || nextPosition(elm, pos).isSome()) === false;\n    };\n    const isEditableListItem = dom => elm => isListItem$2(elm) && dom.getContentEditableParent(elm) !== 'false';\n    const getFullySelectedBlocks = selection => {\n      const blocks = selection.getSelectedBlocks();\n      const rng = selection.getRng();\n      if (selection.isCollapsed()) {\n        return [];\n      }\n      if (blocks.length === 1) {\n        return isRngStartAtStartOfElement(rng, blocks[0]) && isRngEndAtEndOfElement(rng, blocks[0]) ? blocks : [];\n      } else {\n        const first = head(blocks).filter(elm => isRngStartAtStartOfElement(rng, elm)).toArray();\n        const last = last$3(blocks).filter(elm => isRngEndAtEndOfElement(rng, elm)).toArray();\n        const middle = blocks.slice(1, -1);\n        return first.concat(middle).concat(last);\n      }\n    };\n    const getFullySelectedListItems = selection => filter$5(getFullySelectedBlocks(selection), isEditableListItem(selection.dom));\n    const getPartiallySelectedListItems = selection => filter$5(selection.getSelectedBlocks(), isEditableListItem(selection.dom));\n\n    const each$8 = Tools.each;\n    const isElementNode = node => isElement$6(node) && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus$2(node);\n    const findElementSibling = (node, siblingName) => {\n      for (let sibling = node; sibling; sibling = sibling[siblingName]) {\n        if (isText$a(sibling) && isNotEmpty(sibling.data)) {\n          return node;\n        }\n        if (isElement$6(sibling) && !isBookmarkNode$1(sibling)) {\n          return sibling;\n        }\n      }\n      return node;\n    };\n    const mergeSiblingsNodes = (editor, prev, next) => {\n      const elementUtils = ElementUtils(editor);\n      const isPrevEditable = isElement$6(prev) && isEditable$3(prev);\n      const isNextEditable = isElement$6(next) && isEditable$3(next);\n      if (isPrevEditable && isNextEditable) {\n        const prevSibling = findElementSibling(prev, 'previousSibling');\n        const nextSibling = findElementSibling(next, 'nextSibling');\n        if (elementUtils.compare(prevSibling, nextSibling)) {\n          for (let sibling = prevSibling.nextSibling; sibling && sibling !== nextSibling;) {\n            const tmpSibling = sibling;\n            sibling = sibling.nextSibling;\n            prevSibling.appendChild(tmpSibling);\n          }\n          editor.dom.remove(nextSibling);\n          Tools.each(Tools.grep(nextSibling.childNodes), node => {\n            prevSibling.appendChild(node);\n          });\n          return prevSibling;\n        }\n      }\n      return next;\n    };\n    const mergeSiblings = (editor, format, vars, node) => {\n      var _a;\n      if (node && format.merge_siblings !== false) {\n        const newNode = (_a = mergeSiblingsNodes(editor, getNonWhiteSpaceSibling(node), node)) !== null && _a !== void 0 ? _a : node;\n        mergeSiblingsNodes(editor, newNode, getNonWhiteSpaceSibling(newNode, true));\n      }\n    };\n    const clearChildStyles = (dom, format, node) => {\n      if (format.clear_child_styles) {\n        const selector = format.links ? '*:not(a)' : '*';\n        each$8(dom.select(selector, node), childNode => {\n          if (isElementNode(childNode) && isEditable$3(childNode)) {\n            each$8(format.styles, (_value, name) => {\n              dom.setStyle(childNode, name, '');\n            });\n          }\n        });\n      }\n    };\n    const processChildElements = (node, filter, process) => {\n      each$8(node.childNodes, node => {\n        if (isElementNode(node)) {\n          if (filter(node)) {\n            process(node);\n          }\n          if (node.hasChildNodes()) {\n            processChildElements(node, filter, process);\n          }\n        }\n      });\n    };\n    const unwrapEmptySpan = (dom, node) => {\n      if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) {\n        dom.remove(node, true);\n      }\n    };\n    const hasStyle = (dom, name) => node => !!(node && getStyle(dom, node, name));\n    const applyStyle = (dom, name, value) => node => {\n      dom.setStyle(node, name, value);\n      if (node.getAttribute('style') === '') {\n        node.removeAttribute('style');\n      }\n      unwrapEmptySpan(dom, node);\n    };\n\n    const removeResult = Adt.generate([\n      { keep: [] },\n      { rename: ['name'] },\n      { removed: [] }\n    ]);\n    const MCE_ATTR_RE = /^(src|href|style)$/;\n    const each$7 = Tools.each;\n    const isEq$2 = isEq$5;\n    const isTableCellOrRow = node => /^(TR|TH|TD)$/.test(node.nodeName);\n    const isChildOfInlineParent = (dom, node, parent) => dom.isChildOf(node, parent) && node !== parent && !dom.isBlock(parent);\n    const getContainer = (ed, rng, start) => {\n      let container = rng[start ? 'startContainer' : 'endContainer'];\n      let offset = rng[start ? 'startOffset' : 'endOffset'];\n      if (isElement$6(container)) {\n        const lastIdx = container.childNodes.length - 1;\n        if (!start && offset) {\n          offset--;\n        }\n        container = container.childNodes[offset > lastIdx ? lastIdx : offset];\n      }\n      if (isText$a(container) && start && offset >= container.data.length) {\n        container = new DomTreeWalker(container, ed.getBody()).next() || container;\n      }\n      if (isText$a(container) && !start && offset === 0) {\n        container = new DomTreeWalker(container, ed.getBody()).prev() || container;\n      }\n      return container;\n    };\n    const normalizeTableSelection = (node, start) => {\n      const prop = start ? 'firstChild' : 'lastChild';\n      const childNode = node[prop];\n      if (isTableCellOrRow(node) && childNode) {\n        if (node.nodeName === 'TR') {\n          return childNode[prop] || childNode;\n        } else {\n          return childNode;\n        }\n      }\n      return node;\n    };\n    const wrap$1 = (dom, node, name, attrs) => {\n      var _a;\n      const wrapper = dom.create(name, attrs);\n      (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(wrapper, node);\n      wrapper.appendChild(node);\n      return wrapper;\n    };\n    const wrapWithSiblings = (dom, node, next, name, attrs) => {\n      const start = SugarElement.fromDom(node);\n      const wrapper = SugarElement.fromDom(dom.create(name, attrs));\n      const siblings = next ? nextSiblings(start) : prevSiblings(start);\n      append(wrapper, siblings);\n      if (next) {\n        before$3(start, wrapper);\n        prepend(wrapper, start);\n      } else {\n        after$4(start, wrapper);\n        append$1(wrapper, start);\n      }\n      return wrapper.dom;\n    };\n    const isColorFormatAndAnchor = (node, format) => format.links && node.nodeName === 'A';\n    const removeNode = (ed, node, format) => {\n      const parentNode = node.parentNode;\n      let rootBlockElm;\n      const dom = ed.dom;\n      const forcedRootBlock = getForcedRootBlock(ed);\n      if (isBlockFormat(format)) {\n        if (parentNode === dom.getRoot()) {\n          if (!format.list_block || !isEq$2(node, format.list_block)) {\n            each$e(from(node.childNodes), node => {\n              if (isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {\n                if (!rootBlockElm) {\n                  rootBlockElm = wrap$1(dom, node, forcedRootBlock);\n                  dom.setAttribs(rootBlockElm, getForcedRootBlockAttrs(ed));\n                } else {\n                  rootBlockElm.appendChild(node);\n                }\n              } else {\n                rootBlockElm = null;\n              }\n            });\n          }\n        }\n      }\n      if (isMixedFormat(format) && !isEq$2(format.inline, node)) {\n        return;\n      }\n      dom.remove(node, true);\n    };\n    const processFormatAttrOrStyle = (name, value, vars) => {\n      if (isNumber(name)) {\n        return {\n          name: value,\n          value: null\n        };\n      } else {\n        return {\n          name,\n          value: replaceVars(value, vars)\n        };\n      }\n    };\n    const removeEmptyStyleAttributeIfNeeded = (dom, elm) => {\n      if (dom.getAttrib(elm, 'style') === '') {\n        elm.removeAttribute('style');\n        elm.removeAttribute('data-mce-style');\n      }\n    };\n    const removeStyles = (dom, elm, format, vars, compareNode) => {\n      let stylesModified = false;\n      each$7(format.styles, (value, name) => {\n        const {\n          name: styleName,\n          value: styleValue\n        } = processFormatAttrOrStyle(name, value, vars);\n        const normalizedStyleValue = normalizeStyleValue(styleValue, styleName);\n        if (format.remove_similar || isNull(styleValue) || !isElement$6(compareNode) || isEq$2(getStyle(dom, compareNode, styleName), normalizedStyleValue)) {\n          dom.setStyle(elm, styleName, '');\n        }\n        stylesModified = true;\n      });\n      if (stylesModified) {\n        removeEmptyStyleAttributeIfNeeded(dom, elm);\n      }\n    };\n    const removeListStyleFormats = (editor, name, vars) => {\n      if (name === 'removeformat') {\n        each$e(getPartiallySelectedListItems(editor.selection), li => {\n          each$e(listItemStyles, name => editor.dom.setStyle(li, name, ''));\n          removeEmptyStyleAttributeIfNeeded(editor.dom, li);\n        });\n      } else {\n        getExpandedListItemFormat(editor.formatter, name).each(liFmt => {\n          each$e(getPartiallySelectedListItems(editor.selection), li => removeStyles(editor.dom, li, liFmt, vars, null));\n        });\n      }\n    };\n    const removeFormatInternal = (ed, format, vars, node, compareNode) => {\n      const dom = ed.dom;\n      const elementUtils = ElementUtils(ed);\n      const schema = ed.schema;\n      if (isInlineFormat(format) && isTransparentElementName(schema, format.inline) && isTransparentBlock(schema, node) && node.parentElement === ed.getBody()) {\n        removeNode(ed, node, format);\n        return removeResult.removed();\n      }\n      if (!format.ceFalseOverride && node && dom.getContentEditableParent(node) === 'false') {\n        return removeResult.keep();\n      }\n      if (node && !matchName(dom, node, format) && !isColorFormatAndAnchor(node, format)) {\n        return removeResult.keep();\n      }\n      const elm = node;\n      const preserveAttributes = format.preserve_attributes;\n      if (isInlineFormat(format) && format.remove === 'all' && isArray$1(preserveAttributes)) {\n        const attrsToPreserve = filter$5(dom.getAttribs(elm), attr => contains$2(preserveAttributes, attr.name.toLowerCase()));\n        dom.removeAllAttribs(elm);\n        each$e(attrsToPreserve, attr => dom.setAttrib(elm, attr.name, attr.value));\n        if (attrsToPreserve.length > 0) {\n          return removeResult.rename('span');\n        }\n      }\n      if (format.remove !== 'all') {\n        removeStyles(dom, elm, format, vars, compareNode);\n        each$7(format.attributes, (value, name) => {\n          const {\n            name: attrName,\n            value: attrValue\n          } = processFormatAttrOrStyle(name, value, vars);\n          if (format.remove_similar || isNull(attrValue) || !isElement$6(compareNode) || isEq$2(dom.getAttrib(compareNode, attrName), attrValue)) {\n            if (attrName === 'class') {\n              const currentValue = dom.getAttrib(elm, attrName);\n              if (currentValue) {\n                let valueOut = '';\n                each$e(currentValue.split(/\\s+/), cls => {\n                  if (/mce\\-\\w+/.test(cls)) {\n                    valueOut += (valueOut ? ' ' : '') + cls;\n                  }\n                });\n                if (valueOut) {\n                  dom.setAttrib(elm, attrName, valueOut);\n                  return;\n                }\n              }\n            }\n            if (MCE_ATTR_RE.test(attrName)) {\n              elm.removeAttribute('data-mce-' + attrName);\n            }\n            if (attrName === 'style' && matchNodeNames(['li'])(elm) && dom.getStyle(elm, 'list-style-type') === 'none') {\n              elm.removeAttribute(attrName);\n              dom.setStyle(elm, 'list-style-type', 'none');\n              return;\n            }\n            if (attrName === 'class') {\n              elm.removeAttribute('className');\n            }\n            elm.removeAttribute(attrName);\n          }\n        });\n        each$7(format.classes, value => {\n          value = replaceVars(value, vars);\n          if (!isElement$6(compareNode) || dom.hasClass(compareNode, value)) {\n            dom.removeClass(elm, value);\n          }\n        });\n        const attrs = dom.getAttribs(elm);\n        for (let i = 0; i < attrs.length; i++) {\n          const attrName = attrs[i].nodeName;\n          if (!elementUtils.isAttributeInternal(attrName)) {\n            return removeResult.keep();\n          }\n        }\n      }\n      if (format.remove !== 'none') {\n        removeNode(ed, elm, format);\n        return removeResult.removed();\n      }\n      return removeResult.keep();\n    };\n    const removeFormat$1 = (ed, format, vars, node, compareNode) => removeFormatInternal(ed, format, vars, node, compareNode).fold(never, newName => {\n      ed.dom.rename(node, newName);\n      return true;\n    }, always);\n    const findFormatRoot = (editor, container, name, vars, similar) => {\n      let formatRoot;\n      if (container.parentNode) {\n        each$e(getParents$2(editor.dom, container.parentNode).reverse(), parent => {\n          if (!formatRoot && isElement$6(parent) && parent.id !== '_start' && parent.id !== '_end') {\n            const format = matchNode(editor, parent, name, vars, similar);\n            if (format && format.split !== false) {\n              formatRoot = parent;\n            }\n          }\n        });\n      }\n      return formatRoot;\n    };\n    const removeFormatFromClone = (editor, format, vars, clone) => removeFormatInternal(editor, format, vars, clone, clone).fold(constant(clone), newName => {\n      const fragment = editor.dom.createFragment();\n      fragment.appendChild(clone);\n      return editor.dom.rename(clone, newName);\n    }, constant(null));\n    const wrapAndSplit = (editor, formatList, formatRoot, container, target, split, format, vars) => {\n      var _a, _b;\n      let lastClone;\n      let firstClone;\n      const dom = editor.dom;\n      if (formatRoot) {\n        const formatRootParent = formatRoot.parentNode;\n        for (let parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {\n          let clone = dom.clone(parent, false);\n          for (let i = 0; i < formatList.length; i++) {\n            clone = removeFormatFromClone(editor, formatList[i], vars, clone);\n            if (clone === null) {\n              break;\n            }\n          }\n          if (clone) {\n            if (lastClone) {\n              clone.appendChild(lastClone);\n            }\n            if (!firstClone) {\n              firstClone = clone;\n            }\n            lastClone = clone;\n          }\n        }\n        if (split && (!format.mixed || !dom.isBlock(formatRoot))) {\n          container = (_a = dom.split(formatRoot, container)) !== null && _a !== void 0 ? _a : container;\n        }\n        if (lastClone && firstClone) {\n          (_b = target.parentNode) === null || _b === void 0 ? void 0 : _b.insertBefore(lastClone, target);\n          firstClone.appendChild(target);\n          if (isInlineFormat(format)) {\n            mergeSiblings(editor, format, vars, lastClone);\n          }\n        }\n      }\n      return container;\n    };\n    const remove$2 = (ed, name, vars, node, similar) => {\n      const formatList = ed.formatter.get(name);\n      const format = formatList[0];\n      const dom = ed.dom;\n      const selection = ed.selection;\n      const splitToFormatRoot = container => {\n        const formatRoot = findFormatRoot(ed, container, name, vars, similar);\n        return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars);\n      };\n      const isRemoveBookmarkNode = node => isBookmarkNode$1(node) && isElement$6(node) && (node.id === '_start' || node.id === '_end');\n      const removeNodeFormat = node => exists(formatList, fmt => removeFormat$1(ed, fmt, vars, node, node));\n      const process = node => {\n        const children = from(node.childNodes);\n        const removed = removeNodeFormat(node);\n        const currentNodeMatches = removed || exists(formatList, f => matchName(dom, node, f));\n        const parentNode = node.parentNode;\n        if (!currentNodeMatches && isNonNullable(parentNode) && shouldExpandToSelector(format)) {\n          removeNodeFormat(parentNode);\n        }\n        if (format.deep) {\n          if (children.length) {\n            for (let i = 0; i < children.length; i++) {\n              process(children[i]);\n            }\n          }\n        }\n        const textDecorations = [\n          'underline',\n          'line-through',\n          'overline'\n        ];\n        each$e(textDecorations, decoration => {\n          if (isElement$6(node) && ed.dom.getStyle(node, 'text-decoration') === decoration && node.parentNode && getTextDecoration(dom, node.parentNode) === decoration) {\n            removeFormat$1(ed, {\n              deep: false,\n              exact: true,\n              inline: 'span',\n              styles: { textDecoration: decoration }\n            }, undefined, node);\n          }\n        });\n      };\n      const unwrap = start => {\n        const node = dom.get(start ? '_start' : '_end');\n        if (node) {\n          let out = node[start ? 'firstChild' : 'lastChild'];\n          if (isRemoveBookmarkNode(out)) {\n            out = out[start ? 'firstChild' : 'lastChild'];\n          }\n          if (isText$a(out) && out.data.length === 0) {\n            out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;\n          }\n          dom.remove(node, true);\n          return out;\n        } else {\n          return null;\n        }\n      };\n      const removeRngStyle = rng => {\n        let startContainer;\n        let endContainer;\n        let expandedRng = expandRng(dom, rng, formatList, rng.collapsed);\n        if (format.split) {\n          expandedRng = split(expandedRng);\n          startContainer = getContainer(ed, expandedRng, true);\n          endContainer = getContainer(ed, expandedRng);\n          if (startContainer !== endContainer) {\n            startContainer = normalizeTableSelection(startContainer, true);\n            endContainer = normalizeTableSelection(endContainer, false);\n            if (isChildOfInlineParent(dom, startContainer, endContainer)) {\n              const marker = Optional.from(startContainer.firstChild).getOr(startContainer);\n              splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', {\n                'id': '_start',\n                'data-mce-type': 'bookmark'\n              }));\n              unwrap(true);\n              return;\n            }\n            if (isChildOfInlineParent(dom, endContainer, startContainer)) {\n              const marker = Optional.from(endContainer.lastChild).getOr(endContainer);\n              splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', {\n                'id': '_end',\n                'data-mce-type': 'bookmark'\n              }));\n              unwrap(false);\n              return;\n            }\n            startContainer = wrap$1(dom, startContainer, 'span', {\n              'id': '_start',\n              'data-mce-type': 'bookmark'\n            });\n            endContainer = wrap$1(dom, endContainer, 'span', {\n              'id': '_end',\n              'data-mce-type': 'bookmark'\n            });\n            const newRng = dom.createRng();\n            newRng.setStartAfter(startContainer);\n            newRng.setEndBefore(endContainer);\n            walk$3(dom, newRng, nodes => {\n              each$e(nodes, n => {\n                if (!isBookmarkNode$1(n) && !isBookmarkNode$1(n.parentNode)) {\n                  splitToFormatRoot(n);\n                }\n              });\n            });\n            splitToFormatRoot(startContainer);\n            splitToFormatRoot(endContainer);\n            startContainer = unwrap(true);\n            endContainer = unwrap();\n          } else {\n            startContainer = endContainer = splitToFormatRoot(startContainer);\n          }\n          expandedRng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer;\n          expandedRng.startOffset = dom.nodeIndex(startContainer);\n          expandedRng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;\n          expandedRng.endOffset = dom.nodeIndex(endContainer) + 1;\n        }\n        walk$3(dom, expandedRng, nodes => {\n          each$e(nodes, process);\n        });\n      };\n      if (node) {\n        if (isNode(node)) {\n          const rng = dom.createRng();\n          rng.setStartBefore(node);\n          rng.setEndAfter(node);\n          removeRngStyle(rng);\n        } else {\n          removeRngStyle(node);\n        }\n        fireFormatRemove(ed, name, node, vars);\n        return;\n      }\n      if (!selection.isCollapsed() || !isInlineFormat(format) || getCellsFromEditor(ed).length) {\n        preserveSelection(ed, () => runOnRanges(ed, removeRngStyle), startNode => isInlineFormat(format) && match$2(ed, name, vars, startNode));\n        ed.nodeChanged();\n      } else {\n        removeCaretFormat(ed, name, vars, similar);\n      }\n      removeListStyleFormats(ed, name, vars);\n      fireFormatRemove(ed, name, node, vars);\n    };\n\n    const each$6 = Tools.each;\n    const mergeTextDecorationsAndColor = (dom, format, vars, node) => {\n      const processTextDecorationsAndColor = n => {\n        if (isElement$6(n) && isElement$6(n.parentNode) && isEditable$3(n)) {\n          const parentTextDecoration = getTextDecoration(dom, n.parentNode);\n          if (dom.getStyle(n, 'color') && parentTextDecoration) {\n            dom.setStyle(n, 'text-decoration', parentTextDecoration);\n          } else if (dom.getStyle(n, 'text-decoration') === parentTextDecoration) {\n            dom.setStyle(n, 'text-decoration', null);\n          }\n        }\n      };\n      if (format.styles && (format.styles.color || format.styles.textDecoration)) {\n        Tools.walk(node, processTextDecorationsAndColor, 'childNodes');\n        processTextDecorationsAndColor(node);\n      }\n    };\n    const mergeBackgroundColorAndFontSize = (dom, format, vars, node) => {\n      if (format.styles && format.styles.backgroundColor) {\n        const hasFontSize = hasStyle(dom, 'fontSize');\n        processChildElements(node, elm => hasFontSize(elm) && isEditable$3(elm), applyStyle(dom, 'backgroundColor', replaceVars(format.styles.backgroundColor, vars)));\n      }\n    };\n    const mergeSubSup = (dom, format, vars, node) => {\n      if (isInlineFormat(format) && (format.inline === 'sub' || format.inline === 'sup')) {\n        const hasFontSize = hasStyle(dom, 'fontSize');\n        processChildElements(node, elm => hasFontSize(elm) && isEditable$3(elm), applyStyle(dom, 'fontSize', ''));\n        const inverseTagDescendants = filter$5(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), isEditable$3);\n        dom.remove(inverseTagDescendants, true);\n      }\n    };\n    const mergeWithChildren = (editor, formatList, vars, node) => {\n      each$6(formatList, format => {\n        if (isInlineFormat(format)) {\n          each$6(editor.dom.select(format.inline, node), child => {\n            if (isElementNode(child)) {\n              removeFormat$1(editor, format, vars, child, format.exact ? child : null);\n            }\n          });\n        }\n        clearChildStyles(editor.dom, format, node);\n      });\n    };\n    const mergeWithParents = (editor, format, name, vars, node) => {\n      const parentNode = node.parentNode;\n      if (matchNode(editor, parentNode, name, vars)) {\n        if (removeFormat$1(editor, format, vars, node)) {\n          return;\n        }\n      }\n      if (format.merge_with_parents && parentNode) {\n        editor.dom.getParent(parentNode, parent => {\n          if (matchNode(editor, parent, name, vars)) {\n            removeFormat$1(editor, format, vars, node);\n            return true;\n          } else {\n            return false;\n          }\n        });\n      }\n    };\n\n    const each$5 = Tools.each;\n    const canFormatBR = (editor, format, node, parentName) => {\n      if (canFormatEmptyLines(editor) && isInlineFormat(format) && node.parentNode) {\n        const validBRParentElements = getTextRootBlockElements(editor.schema);\n        const hasCaretNodeSibling = sibling(SugarElement.fromDom(node), sibling => isCaretNode(sibling.dom));\n        return hasNonNullableKey(validBRParentElements, parentName) && isEmpty$2(SugarElement.fromDom(node.parentNode), false) && !hasCaretNodeSibling;\n      } else {\n        return false;\n      }\n    };\n    const applyStyles = (dom, elm, format, vars) => {\n      each$5(format.styles, (value, name) => {\n        dom.setStyle(elm, name, replaceVars(value, vars));\n      });\n      if (format.styles) {\n        const styleVal = dom.getAttrib(elm, 'style');\n        if (styleVal) {\n          dom.setAttrib(elm, 'data-mce-style', styleVal);\n        }\n      }\n    };\n    const applyFormat$1 = (ed, name, vars, node) => {\n      const formatList = ed.formatter.get(name);\n      const format = formatList[0];\n      const isCollapsed = !node && ed.selection.isCollapsed();\n      const dom = ed.dom;\n      const selection = ed.selection;\n      const setElementFormat = (elm, fmt = format) => {\n        if (isFunction(fmt.onformat)) {\n          fmt.onformat(elm, fmt, vars, node);\n        }\n        applyStyles(dom, elm, fmt, vars);\n        each$5(fmt.attributes, (value, name) => {\n          dom.setAttrib(elm, name, replaceVars(value, vars));\n        });\n        each$5(fmt.classes, value => {\n          const newValue = replaceVars(value, vars);\n          if (!dom.hasClass(elm, newValue)) {\n            dom.addClass(elm, newValue);\n          }\n        });\n      };\n      const applyNodeStyle = (formatList, node) => {\n        let found = false;\n        each$5(formatList, format => {\n          if (!isSelectorFormat(format)) {\n            return false;\n          }\n          if (dom.getContentEditable(node) === 'false' && !format.ceFalseOverride) {\n            return true;\n          }\n          if (isNonNullable(format.collapsed) && format.collapsed !== isCollapsed) {\n            return true;\n          }\n          if (dom.is(node, format.selector) && !isCaretNode(node)) {\n            setElementFormat(node, format);\n            found = true;\n            return false;\n          }\n          return true;\n        });\n        return found;\n      };\n      const createWrapElement = wrapName => {\n        if (isString(wrapName)) {\n          const wrapElm = dom.create(wrapName);\n          setElementFormat(wrapElm);\n          return wrapElm;\n        } else {\n          return null;\n        }\n      };\n      const applyRngStyle = (dom, rng, nodeSpecific) => {\n        const newWrappers = [];\n        let contentEditable = true;\n        const wrapName = format.inline || format.block;\n        const wrapElm = createWrapElement(wrapName);\n        const isMatchingWrappingBlock = node => isWrappingBlockFormat(format) && matchNode(ed, node, name, vars);\n        const canRenameBlock = (node, parentName, isEditableDescendant) => {\n          const isValidBlockFormatForNode = isNonWrappingBlockFormat(format) && isTextBlock$1(ed.schema, node) && isValid(ed, parentName, wrapName);\n          return isEditableDescendant && isValidBlockFormatForNode;\n        };\n        const canWrapNode = (node, parentName, isEditableDescendant, isWrappableNoneditableElm) => {\n          const nodeName = node.nodeName.toLowerCase();\n          const isValidWrapNode = isValid(ed, wrapName, nodeName) && isValid(ed, parentName, wrapName);\n          const isZwsp$1 = !nodeSpecific && isText$a(node) && isZwsp(node.data);\n          const isCaret = isCaretNode(node);\n          const isCorrectFormatForNode = !isInlineFormat(format) || !dom.isBlock(node);\n          return (isEditableDescendant || isWrappableNoneditableElm) && isValidWrapNode && !isZwsp$1 && !isCaret && isCorrectFormatForNode;\n        };\n        walk$3(dom, rng, nodes => {\n          let currentWrapElm;\n          const process = node => {\n            let hasContentEditableState = false;\n            let lastContentEditable = contentEditable;\n            let isWrappableNoneditableElm = false;\n            const parentNode = node.parentNode;\n            const parentName = parentNode.nodeName.toLowerCase();\n            const contentEditableValue = dom.getContentEditable(node);\n            if (isNonNullable(contentEditableValue)) {\n              lastContentEditable = contentEditable;\n              contentEditable = contentEditableValue === 'true';\n              hasContentEditableState = true;\n              isWrappableNoneditableElm = isWrappableNoneditable(ed, node);\n            }\n            const isEditableDescendant = contentEditable && !hasContentEditableState;\n            if (isBr$6(node) && !canFormatBR(ed, format, node, parentName)) {\n              currentWrapElm = null;\n              if (isBlockFormat(format)) {\n                dom.remove(node);\n              }\n              return;\n            }\n            if (isMatchingWrappingBlock(node)) {\n              currentWrapElm = null;\n              return;\n            }\n            if (canRenameBlock(node, parentName, isEditableDescendant)) {\n              const elm = dom.rename(node, wrapName);\n              setElementFormat(elm);\n              newWrappers.push(elm);\n              currentWrapElm = null;\n              return;\n            }\n            if (isSelectorFormat(format)) {\n              let found = applyNodeStyle(formatList, node);\n              if (!found && isNonNullable(parentNode) && shouldExpandToSelector(format)) {\n                found = applyNodeStyle(formatList, parentNode);\n              }\n              if (!isInlineFormat(format) || found) {\n                currentWrapElm = null;\n                return;\n              }\n            }\n            if (isNonNullable(wrapElm) && canWrapNode(node, parentName, isEditableDescendant, isWrappableNoneditableElm)) {\n              if (!currentWrapElm) {\n                currentWrapElm = dom.clone(wrapElm, false);\n                parentNode.insertBefore(currentWrapElm, node);\n                newWrappers.push(currentWrapElm);\n              }\n              if (isWrappableNoneditableElm && hasContentEditableState) {\n                contentEditable = lastContentEditable;\n              }\n              currentWrapElm.appendChild(node);\n            } else {\n              currentWrapElm = null;\n              each$e(from(node.childNodes), process);\n              if (hasContentEditableState) {\n                contentEditable = lastContentEditable;\n              }\n              currentWrapElm = null;\n            }\n          };\n          each$e(nodes, process);\n        });\n        if (format.links === true) {\n          each$e(newWrappers, node => {\n            const process = node => {\n              if (node.nodeName === 'A') {\n                setElementFormat(node, format);\n              }\n              each$e(from(node.childNodes), process);\n            };\n            process(node);\n          });\n        }\n        each$e(newWrappers, node => {\n          const getChildCount = node => {\n            let count = 0;\n            each$e(node.childNodes, node => {\n              if (!isEmptyTextNode$1(node) && !isBookmarkNode$1(node)) {\n                count++;\n              }\n            });\n            return count;\n          };\n          const mergeStyles = node => {\n            const childElement = find$2(node.childNodes, isElementNode$1).filter(child => dom.getContentEditable(child) !== 'false' && matchName(dom, child, format));\n            return childElement.map(child => {\n              const clone = dom.clone(child, false);\n              setElementFormat(clone);\n              dom.replace(clone, node, true);\n              dom.remove(child, true);\n              return clone;\n            }).getOr(node);\n          };\n          const childCount = getChildCount(node);\n          if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) {\n            dom.remove(node, true);\n            return;\n          }\n          if (isInlineFormat(format) || isBlockFormat(format) && format.wrapper) {\n            if (!format.exact && childCount === 1) {\n              node = mergeStyles(node);\n            }\n            mergeWithChildren(ed, formatList, vars, node);\n            mergeWithParents(ed, format, name, vars, node);\n            mergeBackgroundColorAndFontSize(dom, format, vars, node);\n            mergeTextDecorationsAndColor(dom, format, vars, node);\n            mergeSubSup(dom, format, vars, node);\n            mergeSiblings(ed, format, vars, node);\n          }\n        });\n      };\n      const targetNode = isNode(node) ? node : selection.getNode();\n      if (dom.getContentEditable(targetNode) === 'false' && !isWrappableNoneditable(ed, targetNode)) {\n        node = targetNode;\n        applyNodeStyle(formatList, node);\n        fireFormatApply(ed, name, node, vars);\n        return;\n      }\n      if (format) {\n        if (node) {\n          if (isNode(node)) {\n            if (!applyNodeStyle(formatList, node)) {\n              const rng = dom.createRng();\n              rng.setStartBefore(node);\n              rng.setEndAfter(node);\n              applyRngStyle(dom, expandRng(dom, rng, formatList), true);\n            }\n          } else {\n            applyRngStyle(dom, node, true);\n          }\n        } else {\n          if (!isCollapsed || !isInlineFormat(format) || getCellsFromEditor(ed).length) {\n            selection.setRng(normalize(selection.getRng()));\n            preserveSelection(ed, () => {\n              runOnRanges(ed, (selectionRng, fake) => {\n                const expandedRng = fake ? selectionRng : expandRng(dom, selectionRng, formatList);\n                applyRngStyle(dom, expandedRng, false);\n              });\n            }, always);\n            ed.nodeChanged();\n          } else {\n            applyCaretFormat(ed, name, vars);\n          }\n          getExpandedListItemFormat(ed.formatter, name).each(liFmt => {\n            each$e(getFullySelectedListItems(ed.selection), li => applyStyles(dom, li, liFmt, vars));\n          });\n        }\n        postProcess$1(name, ed);\n      }\n      fireFormatApply(ed, name, node, vars);\n    };\n\n    const hasVars = value => has$2(value, 'vars');\n    const setup$t = (registeredFormatListeners, editor) => {\n      registeredFormatListeners.set({});\n      editor.on('NodeChange', e => {\n        updateAndFireChangeCallbacks(editor, e.element, registeredFormatListeners.get());\n      });\n      editor.on('FormatApply FormatRemove', e => {\n        const element = Optional.from(e.node).map(nodeOrRange => isNode(nodeOrRange) ? nodeOrRange : nodeOrRange.startContainer).bind(node => isElement$6(node) ? Optional.some(node) : Optional.from(node.parentElement)).getOrThunk(() => fallbackElement(editor));\n        updateAndFireChangeCallbacks(editor, element, registeredFormatListeners.get());\n      });\n    };\n    const fallbackElement = editor => editor.selection.getStart();\n    const matchingNode = (editor, parents, format, similar, vars) => {\n      const isMatchingNode = node => {\n        const matchingFormat = editor.formatter.matchNode(node, format, vars !== null && vars !== void 0 ? vars : {}, similar);\n        return !isUndefined(matchingFormat);\n      };\n      const isUnableToMatch = node => {\n        if (matchesUnInheritedFormatSelector(editor, node, format)) {\n          return true;\n        } else {\n          if (!similar) {\n            return isNonNullable(editor.formatter.matchNode(node, format, vars, true));\n          } else {\n            return false;\n          }\n        }\n      };\n      return findUntil$1(parents, isMatchingNode, isUnableToMatch);\n    };\n    const getParents = (editor, elm) => {\n      const element = elm !== null && elm !== void 0 ? elm : fallbackElement(editor);\n      return filter$5(getParents$2(editor.dom, element), node => isElement$6(node) && !isBogus$2(node));\n    };\n    const updateAndFireChangeCallbacks = (editor, elm, registeredCallbacks) => {\n      const parents = getParents(editor, elm);\n      each$d(registeredCallbacks, (data, format) => {\n        const runIfChanged = spec => {\n          const match = matchingNode(editor, parents, format, spec.similar, hasVars(spec) ? spec.vars : undefined);\n          const isSet = match.isSome();\n          if (spec.state.get() !== isSet) {\n            spec.state.set(isSet);\n            const node = match.getOr(elm);\n            if (hasVars(spec)) {\n              spec.callback(isSet, {\n                node,\n                format,\n                parents\n              });\n            } else {\n              each$e(spec.callbacks, callback => callback(isSet, {\n                node,\n                format,\n                parents\n              }));\n            }\n          }\n        };\n        each$e([\n          data.withSimilar,\n          data.withoutSimilar\n        ], runIfChanged);\n        each$e(data.withVars, runIfChanged);\n      });\n    };\n    const addListeners = (editor, registeredFormatListeners, formats, callback, similar, vars) => {\n      const formatChangeItems = registeredFormatListeners.get();\n      each$e(formats.split(','), format => {\n        const group = get$a(formatChangeItems, format).getOrThunk(() => {\n          const base = {\n            withSimilar: {\n              state: Cell(false),\n              similar: true,\n              callbacks: []\n            },\n            withoutSimilar: {\n              state: Cell(false),\n              similar: false,\n              callbacks: []\n            },\n            withVars: []\n          };\n          formatChangeItems[format] = base;\n          return base;\n        });\n        const getCurrent = () => {\n          const parents = getParents(editor);\n          return matchingNode(editor, parents, format, similar, vars).isSome();\n        };\n        if (isUndefined(vars)) {\n          const toAppendTo = similar ? group.withSimilar : group.withoutSimilar;\n          toAppendTo.callbacks.push(callback);\n          if (toAppendTo.callbacks.length === 1) {\n            toAppendTo.state.set(getCurrent());\n          }\n        } else {\n          group.withVars.push({\n            state: Cell(getCurrent()),\n            similar,\n            vars,\n            callback\n          });\n        }\n      });\n      registeredFormatListeners.set(formatChangeItems);\n    };\n    const removeListeners = (registeredFormatListeners, formats, callback) => {\n      const formatChangeItems = registeredFormatListeners.get();\n      each$e(formats.split(','), format => get$a(formatChangeItems, format).each(group => {\n        formatChangeItems[format] = {\n          withSimilar: {\n            ...group.withSimilar,\n            callbacks: filter$5(group.withSimilar.callbacks, cb => cb !== callback)\n          },\n          withoutSimilar: {\n            ...group.withoutSimilar,\n            callbacks: filter$5(group.withoutSimilar.callbacks, cb => cb !== callback)\n          },\n          withVars: filter$5(group.withVars, item => item.callback !== callback)\n        };\n      }));\n      registeredFormatListeners.set(formatChangeItems);\n    };\n    const formatChangedInternal = (editor, registeredFormatListeners, formats, callback, similar, vars) => {\n      addListeners(editor, registeredFormatListeners, formats, callback, similar, vars);\n      return { unbind: () => removeListeners(registeredFormatListeners, formats, callback) };\n    };\n\n    const toggle = (editor, name, vars, node) => {\n      const fmt = editor.formatter.get(name);\n      if (fmt) {\n        if (match$2(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {\n          remove$2(editor, name, vars, node);\n        } else {\n          applyFormat$1(editor, name, vars, node);\n        }\n      }\n    };\n\n    function _typeof(obj) {\n      '@babel/helpers - typeof';\n      return _typeof = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (obj) {\n        return typeof obj;\n      } : function (obj) {\n        return obj && 'function' == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n      }, _typeof(obj);\n    }\n    function _setPrototypeOf(o, p) {\n      _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n        o.__proto__ = p;\n        return o;\n      };\n      return _setPrototypeOf(o, p);\n    }\n    function _isNativeReflectConstruct() {\n      if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n      if (Reflect.construct.sham)\n        return false;\n      if (typeof Proxy === 'function')\n        return true;\n      try {\n        Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {\n        }));\n        return true;\n      } catch (e) {\n        return false;\n      }\n    }\n    function _construct(Parent, args, Class) {\n      if (_isNativeReflectConstruct()) {\n        _construct = Reflect.construct;\n      } else {\n        _construct = function _construct(Parent, args, Class) {\n          var a = [null];\n          a.push.apply(a, args);\n          var Constructor = Function.bind.apply(Parent, a);\n          var instance = new Constructor();\n          if (Class)\n            _setPrototypeOf(instance, Class.prototype);\n          return instance;\n        };\n      }\n      return _construct.apply(null, arguments);\n    }\n    function _toConsumableArray(arr) {\n      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n    }\n    function _arrayWithoutHoles(arr) {\n      if (Array.isArray(arr))\n        return _arrayLikeToArray(arr);\n    }\n    function _iterableToArray(iter) {\n      if (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null || iter['@@iterator'] != null)\n        return Array.from(iter);\n    }\n    function _unsupportedIterableToArray(o, minLen) {\n      if (!o)\n        return;\n      if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n      var n = Object.prototype.toString.call(o).slice(8, -1);\n      if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n      if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n      if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n    }\n    function _arrayLikeToArray(arr, len) {\n      if (len == null || len > arr.length)\n        len = arr.length;\n      for (var i = 0, arr2 = new Array(len); i < len; i++)\n        arr2[i] = arr[i];\n      return arr2;\n    }\n    function _nonIterableSpread() {\n      throw new TypeError('Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    var freeze = Object.freeze, seal = Object.seal, create$8 = Object.create;\n    var _ref = typeof Reflect !== 'undefined' && Reflect, apply = _ref.apply, construct = _ref.construct;\n    if (!apply) {\n      apply = function apply(fun, thisValue, args) {\n        return fun.apply(thisValue, args);\n      };\n    }\n    if (!freeze) {\n      freeze = function freeze(x) {\n        return x;\n      };\n    }\n    if (!seal) {\n      seal = function seal(x) {\n        return x;\n      };\n    }\n    if (!construct) {\n      construct = function construct(Func, args) {\n        return _construct(Func, _toConsumableArray(args));\n      };\n    }\n    var arrayForEach = unapply(Array.prototype.forEach);\n    var arrayPop = unapply(Array.prototype.pop);\n    var arrayPush = unapply(Array.prototype.push);\n    var stringToLowerCase = unapply(String.prototype.toLowerCase);\n    var stringMatch = unapply(String.prototype.match);\n    var stringReplace = unapply(String.prototype.replace);\n    var stringIndexOf = unapply(String.prototype.indexOf);\n    var stringTrim = unapply(String.prototype.trim);\n    var regExpTest = unapply(RegExp.prototype.test);\n    var typeErrorCreate = unconstruct(TypeError);\n    function unapply(func) {\n      return function (thisArg) {\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        return apply(func, thisArg, args);\n      };\n    }\n    function unconstruct(func) {\n      return function () {\n        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n          args[_key2] = arguments[_key2];\n        }\n        return construct(func, args);\n      };\n    }\n    function addToSet(set, array) {\n      if (setPrototypeOf) {\n        setPrototypeOf(set, null);\n      }\n      var l = array.length;\n      while (l--) {\n        var element = array[l];\n        if (typeof element === 'string') {\n          var lcElement = stringToLowerCase(element);\n          if (lcElement !== element) {\n            if (!isFrozen(array)) {\n              array[l] = lcElement;\n            }\n            element = lcElement;\n          }\n        }\n        set[element] = true;\n      }\n      return set;\n    }\n    function clone(object) {\n      var newObject = create$8(null);\n      var property;\n      for (property in object) {\n        if (apply(hasOwnProperty, object, [property])) {\n          newObject[property] = object[property];\n        }\n      }\n      return newObject;\n    }\n    function lookupGetter(object, prop) {\n      while (object !== null) {\n        var desc = getOwnPropertyDescriptor(object, prop);\n        if (desc) {\n          if (desc.get) {\n            return unapply(desc.get);\n          }\n          if (typeof desc.value === 'function') {\n            return unapply(desc.value);\n          }\n        }\n        object = getPrototypeOf(object);\n      }\n      function fallbackValue(element) {\n        console.warn('fallback value for', element);\n        return null;\n      }\n      return fallbackValue;\n    }\n    var html$1 = freeze([\n      'a',\n      'abbr',\n      'acronym',\n      'address',\n      'area',\n      'article',\n      'aside',\n      'audio',\n      'b',\n      'bdi',\n      'bdo',\n      'big',\n      'blink',\n      'blockquote',\n      'body',\n      'br',\n      'button',\n      'canvas',\n      'caption',\n      'center',\n      'cite',\n      'code',\n      'col',\n      'colgroup',\n      'content',\n      'data',\n      'datalist',\n      'dd',\n      'decorator',\n      'del',\n      'details',\n      'dfn',\n      'dialog',\n      'dir',\n      'div',\n      'dl',\n      'dt',\n      'element',\n      'em',\n      'fieldset',\n      'figcaption',\n      'figure',\n      'font',\n      'footer',\n      'form',\n      'h1',\n      'h2',\n      'h3',\n      'h4',\n      'h5',\n      'h6',\n      'head',\n      'header',\n      'hgroup',\n      'hr',\n      'html',\n      'i',\n      'img',\n      'input',\n      'ins',\n      'kbd',\n      'label',\n      'legend',\n      'li',\n      'main',\n      'map',\n      'mark',\n      'marquee',\n      'menu',\n      'menuitem',\n      'meter',\n      'nav',\n      'nobr',\n      'ol',\n      'optgroup',\n      'option',\n      'output',\n      'p',\n      'picture',\n      'pre',\n      'progress',\n      'q',\n      'rp',\n      'rt',\n      'ruby',\n      's',\n      'samp',\n      'section',\n      'select',\n      'shadow',\n      'small',\n      'source',\n      'spacer',\n      'span',\n      'strike',\n      'strong',\n      'style',\n      'sub',\n      'summary',\n      'sup',\n      'table',\n      'tbody',\n      'td',\n      'template',\n      'textarea',\n      'tfoot',\n      'th',\n      'thead',\n      'time',\n      'tr',\n      'track',\n      'tt',\n      'u',\n      'ul',\n      'var',\n      'video',\n      'wbr'\n    ]);\n    var svg$1 = freeze([\n      'svg',\n      'a',\n      'altglyph',\n      'altglyphdef',\n      'altglyphitem',\n      'animatecolor',\n      'animatemotion',\n      'animatetransform',\n      'circle',\n      'clippath',\n      'defs',\n      'desc',\n      'ellipse',\n      'filter',\n      'font',\n      'g',\n      'glyph',\n      'glyphref',\n      'hkern',\n      'image',\n      'line',\n      'lineargradient',\n      'marker',\n      'mask',\n      'metadata',\n      'mpath',\n      'path',\n      'pattern',\n      'polygon',\n      'polyline',\n      'radialgradient',\n      'rect',\n      'stop',\n      'style',\n      'switch',\n      'symbol',\n      'text',\n      'textpath',\n      'title',\n      'tref',\n      'tspan',\n      'view',\n      'vkern'\n    ]);\n    var svgFilters = freeze([\n      'feBlend',\n      'feColorMatrix',\n      'feComponentTransfer',\n      'feComposite',\n      'feConvolveMatrix',\n      'feDiffuseLighting',\n      'feDisplacementMap',\n      'feDistantLight',\n      'feFlood',\n      'feFuncA',\n      'feFuncB',\n      'feFuncG',\n      'feFuncR',\n      'feGaussianBlur',\n      'feImage',\n      'feMerge',\n      'feMergeNode',\n      'feMorphology',\n      'feOffset',\n      'fePointLight',\n      'feSpecularLighting',\n      'feSpotLight',\n      'feTile',\n      'feTurbulence'\n    ]);\n    var svgDisallowed = freeze([\n      'animate',\n      'color-profile',\n      'cursor',\n      'discard',\n      'fedropshadow',\n      'font-face',\n      'font-face-format',\n      'font-face-name',\n      'font-face-src',\n      'font-face-uri',\n      'foreignobject',\n      'hatch',\n      'hatchpath',\n      'mesh',\n      'meshgradient',\n      'meshpatch',\n      'meshrow',\n      'missing-glyph',\n      'script',\n      'set',\n      'solidcolor',\n      'unknown',\n      'use'\n    ]);\n    var mathMl$1 = freeze([\n      'math',\n      'menclose',\n      'merror',\n      'mfenced',\n      'mfrac',\n      'mglyph',\n      'mi',\n      'mlabeledtr',\n      'mmultiscripts',\n      'mn',\n      'mo',\n      'mover',\n      'mpadded',\n      'mphantom',\n      'mroot',\n      'mrow',\n      'ms',\n      'mspace',\n      'msqrt',\n      'mstyle',\n      'msub',\n      'msup',\n      'msubsup',\n      'mtable',\n      'mtd',\n      'mtext',\n      'mtr',\n      'munder',\n      'munderover'\n    ]);\n    var mathMlDisallowed = freeze([\n      'maction',\n      'maligngroup',\n      'malignmark',\n      'mlongdiv',\n      'mscarries',\n      'mscarry',\n      'msgroup',\n      'mstack',\n      'msline',\n      'msrow',\n      'semantics',\n      'annotation',\n      'annotation-xml',\n      'mprescripts',\n      'none'\n    ]);\n    var text = freeze(['#text']);\n    var html = freeze([\n      'accept',\n      'action',\n      'align',\n      'alt',\n      'autocapitalize',\n      'autocomplete',\n      'autopictureinpicture',\n      'autoplay',\n      'background',\n      'bgcolor',\n      'border',\n      'capture',\n      'cellpadding',\n      'cellspacing',\n      'checked',\n      'cite',\n      'class',\n      'clear',\n      'color',\n      'cols',\n      'colspan',\n      'controls',\n      'controlslist',\n      'coords',\n      'crossorigin',\n      'datetime',\n      'decoding',\n      'default',\n      'dir',\n      'disabled',\n      'disablepictureinpicture',\n      'disableremoteplayback',\n      'download',\n      'draggable',\n      'enctype',\n      'enterkeyhint',\n      'face',\n      'for',\n      'headers',\n      'height',\n      'hidden',\n      'high',\n      'href',\n      'hreflang',\n      'id',\n      'inputmode',\n      'integrity',\n      'ismap',\n      'kind',\n      'label',\n      'lang',\n      'list',\n      'loading',\n      'loop',\n      'low',\n      'max',\n      'maxlength',\n      'media',\n      'method',\n      'min',\n      'minlength',\n      'multiple',\n      'muted',\n      'name',\n      'nonce',\n      'noshade',\n      'novalidate',\n      'nowrap',\n      'open',\n      'optimum',\n      'pattern',\n      'placeholder',\n      'playsinline',\n      'poster',\n      'preload',\n      'pubdate',\n      'radiogroup',\n      'readonly',\n      'rel',\n      'required',\n      'rev',\n      'reversed',\n      'role',\n      'rows',\n      'rowspan',\n      'spellcheck',\n      'scope',\n      'selected',\n      'shape',\n      'size',\n      'sizes',\n      'span',\n      'srclang',\n      'start',\n      'src',\n      'srcset',\n      'step',\n      'style',\n      'summary',\n      'tabindex',\n      'title',\n      'translate',\n      'type',\n      'usemap',\n      'valign',\n      'value',\n      'width',\n      'xmlns',\n      'slot'\n    ]);\n    var svg = freeze([\n      'accent-height',\n      'accumulate',\n      'additive',\n      'alignment-baseline',\n      'ascent',\n      'attributename',\n      'attributetype',\n      'azimuth',\n      'basefrequency',\n      'baseline-shift',\n      'begin',\n      'bias',\n      'by',\n      'class',\n      'clip',\n      'clippathunits',\n      'clip-path',\n      'clip-rule',\n      'color',\n      'color-interpolation',\n      'color-interpolation-filters',\n      'color-profile',\n      'color-rendering',\n      'cx',\n      'cy',\n      'd',\n      'dx',\n      'dy',\n      'diffuseconstant',\n      'direction',\n      'display',\n      'divisor',\n      'dur',\n      'edgemode',\n      'elevation',\n      'end',\n      'fill',\n      'fill-opacity',\n      'fill-rule',\n      'filter',\n      'filterunits',\n      'flood-color',\n      'flood-opacity',\n      'font-family',\n      'font-size',\n      'font-size-adjust',\n      'font-stretch',\n      'font-style',\n      'font-variant',\n      'font-weight',\n      'fx',\n      'fy',\n      'g1',\n      'g2',\n      'glyph-name',\n      'glyphref',\n      'gradientunits',\n      'gradienttransform',\n      'height',\n      'href',\n      'id',\n      'image-rendering',\n      'in',\n      'in2',\n      'k',\n      'k1',\n      'k2',\n      'k3',\n      'k4',\n      'kerning',\n      'keypoints',\n      'keysplines',\n      'keytimes',\n      'lang',\n      'lengthadjust',\n      'letter-spacing',\n      'kernelmatrix',\n      'kernelunitlength',\n      'lighting-color',\n      'local',\n      'marker-end',\n      'marker-mid',\n      'marker-start',\n      'markerheight',\n      'markerunits',\n      'markerwidth',\n      'maskcontentunits',\n      'maskunits',\n      'max',\n      'mask',\n      'media',\n      'method',\n      'mode',\n      'min',\n      'name',\n      'numoctaves',\n      'offset',\n      'operator',\n      'opacity',\n      'order',\n      'orient',\n      'orientation',\n      'origin',\n      'overflow',\n      'paint-order',\n      'path',\n      'pathlength',\n      'patterncontentunits',\n      'patterntransform',\n      'patternunits',\n      'points',\n      'preservealpha',\n      'preserveaspectratio',\n      'primitiveunits',\n      'r',\n      'rx',\n      'ry',\n      'radius',\n      'refx',\n      'refy',\n      'repeatcount',\n      'repeatdur',\n      'restart',\n      'result',\n      'rotate',\n      'scale',\n      'seed',\n      'shape-rendering',\n      'specularconstant',\n      'specularexponent',\n      'spreadmethod',\n      'startoffset',\n      'stddeviation',\n      'stitchtiles',\n      'stop-color',\n      'stop-opacity',\n      'stroke-dasharray',\n      'stroke-dashoffset',\n      'stroke-linecap',\n      'stroke-linejoin',\n      'stroke-miterlimit',\n      'stroke-opacity',\n      'stroke',\n      'stroke-width',\n      'style',\n      'surfacescale',\n      'systemlanguage',\n      'tabindex',\n      'targetx',\n      'targety',\n      'transform',\n      'transform-origin',\n      'text-anchor',\n      'text-decoration',\n      'text-rendering',\n      'textlength',\n      'type',\n      'u1',\n      'u2',\n      'unicode',\n      'values',\n      'viewbox',\n      'visibility',\n      'version',\n      'vert-adv-y',\n      'vert-origin-x',\n      'vert-origin-y',\n      'width',\n      'word-spacing',\n      'wrap',\n      'writing-mode',\n      'xchannelselector',\n      'ychannelselector',\n      'x',\n      'x1',\n      'x2',\n      'xmlns',\n      'y',\n      'y1',\n      'y2',\n      'z',\n      'zoomandpan'\n    ]);\n    var mathMl = freeze([\n      'accent',\n      'accentunder',\n      'align',\n      'bevelled',\n      'close',\n      'columnsalign',\n      'columnlines',\n      'columnspan',\n      'denomalign',\n      'depth',\n      'dir',\n      'display',\n      'displaystyle',\n      'encoding',\n      'fence',\n      'frame',\n      'height',\n      'href',\n      'id',\n      'largeop',\n      'length',\n      'linethickness',\n      'lspace',\n      'lquote',\n      'mathbackground',\n      'mathcolor',\n      'mathsize',\n      'mathvariant',\n      'maxsize',\n      'minsize',\n      'movablelimits',\n      'notation',\n      'numalign',\n      'open',\n      'rowalign',\n      'rowlines',\n      'rowspacing',\n      'rowspan',\n      'rspace',\n      'rquote',\n      'scriptlevel',\n      'scriptminsize',\n      'scriptsizemultiplier',\n      'selection',\n      'separator',\n      'separators',\n      'stretchy',\n      'subscriptshift',\n      'supscriptshift',\n      'symmetric',\n      'voffset',\n      'width',\n      'xmlns'\n    ]);\n    var xml = freeze([\n      'xlink:href',\n      'xml:id',\n      'xlink:title',\n      'xml:space',\n      'xmlns:xlink'\n    ]);\n    var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm);\n    var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n    var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/);\n    var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/);\n    var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i);\n    var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n    var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g);\n    var DOCTYPE_NAME = seal(/^html$/i);\n    var getGlobal = function getGlobal() {\n      return typeof window === 'undefined' ? null : window;\n    };\n    var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n      if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n        return null;\n      }\n      var suffix = null;\n      var ATTR_NAME = 'data-tt-policy-suffix';\n      if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n        suffix = document.currentScript.getAttribute(ATTR_NAME);\n      }\n      var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n      try {\n        return trustedTypes.createPolicy(policyName, {\n          createHTML: function createHTML(html) {\n            return html;\n          }\n        });\n      } catch (_) {\n        console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n        return null;\n      }\n    };\n    function createDOMPurify() {\n      var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n      var DOMPurify = function DOMPurify(root) {\n        return createDOMPurify(root);\n      };\n      DOMPurify.version = '2.3.8';\n      DOMPurify.removed = [];\n      if (!window || !window.document || window.document.nodeType !== 9) {\n        DOMPurify.isSupported = false;\n        return DOMPurify;\n      }\n      var originalDocument = window.document;\n      var document = window.document;\n      var DocumentFragment = window.DocumentFragment, HTMLTemplateElement = window.HTMLTemplateElement, Node = window.Node, Element = window.Element, NodeFilter = window.NodeFilter, _window$NamedNodeMap = window.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window.HTMLFormElement, DOMParser = window.DOMParser, trustedTypes = window.trustedTypes;\n      var ElementPrototype = Element.prototype;\n      var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n      var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n      var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n      var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n      if (typeof HTMLTemplateElement === 'function') {\n        var template = document.createElement('template');\n        if (template.content && template.content.ownerDocument) {\n          document = template.content.ownerDocument;\n        }\n      }\n      var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n      var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n      var _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;\n      var importNode = originalDocument.importNode;\n      var documentMode = {};\n      try {\n        documentMode = clone(document).documentMode ? document.documentMode : {};\n      } catch (_) {\n      }\n      var hooks = {};\n      DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n      var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n      var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n      var ALLOWED_TAGS = null;\n      var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n      var ALLOWED_ATTR = null;\n      var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n      var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n        tagNameCheck: {\n          writable: true,\n          configurable: false,\n          enumerable: true,\n          value: null\n        },\n        attributeNameCheck: {\n          writable: true,\n          configurable: false,\n          enumerable: true,\n          value: null\n        },\n        allowCustomizedBuiltInElements: {\n          writable: true,\n          configurable: false,\n          enumerable: true,\n          value: false\n        }\n      }));\n      var FORBID_TAGS = null;\n      var FORBID_ATTR = null;\n      var ALLOW_ARIA_ATTR = true;\n      var ALLOW_DATA_ATTR = true;\n      var ALLOW_UNKNOWN_PROTOCOLS = false;\n      var SAFE_FOR_TEMPLATES = false;\n      var WHOLE_DOCUMENT = false;\n      var SET_CONFIG = false;\n      var FORCE_BODY = false;\n      var RETURN_DOM = false;\n      var RETURN_DOM_FRAGMENT = false;\n      var RETURN_TRUSTED_TYPE = false;\n      var SANITIZE_DOM = true;\n      var KEEP_CONTENT = true;\n      var IN_PLACE = false;\n      var USE_PROFILES = {};\n      var FORBID_CONTENTS = null;\n      var DEFAULT_FORBID_CONTENTS = addToSet({}, [\n        'annotation-xml',\n        'audio',\n        'colgroup',\n        'desc',\n        'foreignobject',\n        'head',\n        'iframe',\n        'math',\n        'mi',\n        'mn',\n        'mo',\n        'ms',\n        'mtext',\n        'noembed',\n        'noframes',\n        'noscript',\n        'plaintext',\n        'script',\n        'style',\n        'svg',\n        'template',\n        'thead',\n        'title',\n        'video',\n        'xmp'\n      ]);\n      var DATA_URI_TAGS = null;\n      var DEFAULT_DATA_URI_TAGS = addToSet({}, [\n        'audio',\n        'video',\n        'img',\n        'source',\n        'image',\n        'track'\n      ]);\n      var URI_SAFE_ATTRIBUTES = null;\n      var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n        'alt',\n        'class',\n        'for',\n        'id',\n        'label',\n        'name',\n        'pattern',\n        'placeholder',\n        'role',\n        'summary',\n        'title',\n        'value',\n        'style',\n        'xmlns'\n      ]);\n      var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n      var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n      var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n      var NAMESPACE = HTML_NAMESPACE;\n      var IS_EMPTY_INPUT = false;\n      var PARSER_MEDIA_TYPE;\n      var SUPPORTED_PARSER_MEDIA_TYPES = [\n        'application/xhtml+xml',\n        'text/html'\n      ];\n      var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n      var transformCaseFunc;\n      var CONFIG = null;\n      var formElement = document.createElement('form');\n      var isRegexOrFunction = function isRegexOrFunction(testValue) {\n        return testValue instanceof RegExp || testValue instanceof Function;\n      };\n      var _parseConfig = function _parseConfig(cfg) {\n        if (CONFIG && CONFIG === cfg) {\n          return;\n        }\n        if (!cfg || _typeof(cfg) !== 'object') {\n          cfg = {};\n        }\n        cfg = clone(cfg);\n        ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n        ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n        URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n        DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n        FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n        FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n        FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n        USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n        ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;\n        ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;\n        ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;\n        SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;\n        WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;\n        RETURN_DOM = cfg.RETURN_DOM || false;\n        RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;\n        RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;\n        FORCE_BODY = cfg.FORCE_BODY || false;\n        SANITIZE_DOM = cfg.SANITIZE_DOM !== false;\n        KEEP_CONTENT = cfg.KEEP_CONTENT !== false;\n        IN_PLACE = cfg.IN_PLACE || false;\n        IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n        NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n        if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n          CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n        }\n        if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n          CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n        }\n        if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n          CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n        }\n        PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n        transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n          return x;\n        } : stringToLowerCase;\n        if (SAFE_FOR_TEMPLATES) {\n          ALLOW_DATA_ATTR = false;\n        }\n        if (RETURN_DOM_FRAGMENT) {\n          RETURN_DOM = true;\n        }\n        if (USE_PROFILES) {\n          ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n          ALLOWED_ATTR = [];\n          if (USE_PROFILES.html === true) {\n            addToSet(ALLOWED_TAGS, html$1);\n            addToSet(ALLOWED_ATTR, html);\n          }\n          if (USE_PROFILES.svg === true) {\n            addToSet(ALLOWED_TAGS, svg$1);\n            addToSet(ALLOWED_ATTR, svg);\n            addToSet(ALLOWED_ATTR, xml);\n          }\n          if (USE_PROFILES.svgFilters === true) {\n            addToSet(ALLOWED_TAGS, svgFilters);\n            addToSet(ALLOWED_ATTR, svg);\n            addToSet(ALLOWED_ATTR, xml);\n          }\n          if (USE_PROFILES.mathMl === true) {\n            addToSet(ALLOWED_TAGS, mathMl$1);\n            addToSet(ALLOWED_ATTR, mathMl);\n            addToSet(ALLOWED_ATTR, xml);\n          }\n        }\n        if (cfg.ADD_TAGS) {\n          if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n            ALLOWED_TAGS = clone(ALLOWED_TAGS);\n          }\n          addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n        }\n        if (cfg.ADD_ATTR) {\n          if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n            ALLOWED_ATTR = clone(ALLOWED_ATTR);\n          }\n          addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n        }\n        if (cfg.ADD_URI_SAFE_ATTR) {\n          addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n        }\n        if (cfg.FORBID_CONTENTS) {\n          if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n            FORBID_CONTENTS = clone(FORBID_CONTENTS);\n          }\n          addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n        }\n        if (KEEP_CONTENT) {\n          ALLOWED_TAGS['#text'] = true;\n        }\n        if (WHOLE_DOCUMENT) {\n          addToSet(ALLOWED_TAGS, [\n            'html',\n            'head',\n            'body'\n          ]);\n        }\n        if (ALLOWED_TAGS.table) {\n          addToSet(ALLOWED_TAGS, ['tbody']);\n          delete FORBID_TAGS.tbody;\n        }\n        if (freeze) {\n          freeze(cfg);\n        }\n        CONFIG = cfg;\n      };\n      var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n        'mi',\n        'mo',\n        'mn',\n        'ms',\n        'mtext'\n      ]);\n      var HTML_INTEGRATION_POINTS = addToSet({}, [\n        'foreignobject',\n        'desc',\n        'title',\n        'annotation-xml'\n      ]);\n      var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n        'title',\n        'style',\n        'font',\n        'a',\n        'script'\n      ]);\n      var ALL_SVG_TAGS = addToSet({}, svg$1);\n      addToSet(ALL_SVG_TAGS, svgFilters);\n      addToSet(ALL_SVG_TAGS, svgDisallowed);\n      var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n      addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n      var _checkValidNamespace = function _checkValidNamespace(element) {\n        var parent = getParentNode(element);\n        if (!parent || !parent.tagName) {\n          parent = {\n            namespaceURI: HTML_NAMESPACE,\n            tagName: 'template'\n          };\n        }\n        var tagName = stringToLowerCase(element.tagName);\n        var parentTagName = stringToLowerCase(parent.tagName);\n        if (element.namespaceURI === SVG_NAMESPACE) {\n          if (parent.namespaceURI === HTML_NAMESPACE) {\n            return tagName === 'svg';\n          }\n          if (parent.namespaceURI === MATHML_NAMESPACE) {\n            return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n          }\n          return Boolean(ALL_SVG_TAGS[tagName]);\n        }\n        if (element.namespaceURI === MATHML_NAMESPACE) {\n          if (parent.namespaceURI === HTML_NAMESPACE) {\n            return tagName === 'math';\n          }\n          if (parent.namespaceURI === SVG_NAMESPACE) {\n            return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n          }\n          return Boolean(ALL_MATHML_TAGS[tagName]);\n        }\n        if (element.namespaceURI === HTML_NAMESPACE) {\n          if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n            return false;\n          }\n          if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n            return false;\n          }\n          return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n        }\n        return false;\n      };\n      var _forceRemove = function _forceRemove(node) {\n        arrayPush(DOMPurify.removed, { element: node });\n        try {\n          node.parentNode.removeChild(node);\n        } catch (_) {\n          try {\n            node.outerHTML = emptyHTML;\n          } catch (_) {\n            node.remove();\n          }\n        }\n      };\n      var _removeAttribute = function _removeAttribute(name, node) {\n        try {\n          arrayPush(DOMPurify.removed, {\n            attribute: node.getAttributeNode(name),\n            from: node\n          });\n        } catch (_) {\n          arrayPush(DOMPurify.removed, {\n            attribute: null,\n            from: node\n          });\n        }\n        node.removeAttribute(name);\n        if (name === 'is' && !ALLOWED_ATTR[name]) {\n          if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n            try {\n              _forceRemove(node);\n            } catch (_) {\n            }\n          } else {\n            try {\n              node.setAttribute(name, '');\n            } catch (_) {\n            }\n          }\n        }\n      };\n      var _initDocument = function _initDocument(dirty) {\n        var doc;\n        var leadingWhitespace;\n        if (FORCE_BODY) {\n          dirty = '<remove></remove>' + dirty;\n        } else {\n          var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n          leadingWhitespace = matches && matches[0];\n        }\n        if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n          dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n        }\n        var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n        if (NAMESPACE === HTML_NAMESPACE) {\n          try {\n            doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n          } catch (_) {\n          }\n        }\n        if (!doc || !doc.documentElement) {\n          doc = implementation.createDocument(NAMESPACE, 'template', null);\n          try {\n            doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n          } catch (_) {\n          }\n        }\n        var body = doc.body || doc.documentElement;\n        if (dirty && leadingWhitespace) {\n          body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n        }\n        if (NAMESPACE === HTML_NAMESPACE) {\n          return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n        }\n        return WHOLE_DOCUMENT ? doc.documentElement : body;\n      };\n      var _createIterator = function _createIterator(root) {\n        return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n      };\n      var _isClobbered = function _isClobbered(elm) {\n        return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n      };\n      var _isNode = function _isNode(object) {\n        return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n      };\n      var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n        if (!hooks[entryPoint]) {\n          return;\n        }\n        arrayForEach(hooks[entryPoint], function (hook) {\n          hook.call(DOMPurify, currentNode, data, CONFIG);\n        });\n      };\n      var _sanitizeElements = function _sanitizeElements(currentNode) {\n        var content;\n        _executeHook('beforeSanitizeElements', currentNode, null);\n        if (_isClobbered(currentNode)) {\n          _forceRemove(currentNode);\n          return true;\n        }\n        if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n          _forceRemove(currentNode);\n          return true;\n        }\n        var tagName = transformCaseFunc(currentNode.nodeName);\n        _executeHook('uponSanitizeElement', currentNode, {\n          tagName: tagName,\n          allowedTags: ALLOWED_TAGS\n        });\n        if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n          _forceRemove(currentNode);\n          return true;\n        }\n        if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n          _forceRemove(currentNode);\n          return true;\n        }\n        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n          if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n            if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))\n              return false;\n            if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))\n              return false;\n          }\n          if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n            var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n            var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n            if (childNodes && parentNode) {\n              var childCount = childNodes.length;\n              for (var i = childCount - 1; i >= 0; --i) {\n                parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n              }\n            }\n          }\n          _forceRemove(currentNode);\n          return true;\n        }\n        if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n          _forceRemove(currentNode);\n          return true;\n        }\n        if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n          _forceRemove(currentNode);\n          return true;\n        }\n        if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n          content = currentNode.textContent;\n          content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n          content = stringReplace(content, ERB_EXPR$1, ' ');\n          if (currentNode.textContent !== content) {\n            arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n            currentNode.textContent = content;\n          }\n        }\n        _executeHook('afterSanitizeElements', currentNode, null);\n        return false;\n      };\n      var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n        if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n          return false;\n        }\n        if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName));\n        else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName));\n        else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n          if (_basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)));\n          else {\n            return false;\n          }\n        } else if (URI_SAFE_ATTRIBUTES[lcName]);\n        else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, '')));\n        else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]);\n        else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, '')));\n        else if (!value);\n        else {\n          return false;\n        }\n        return true;\n      };\n      var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n        return tagName.indexOf('-') > 0;\n      };\n      var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n        var attr;\n        var value;\n        var lcName;\n        var l;\n        _executeHook('beforeSanitizeAttributes', currentNode, null);\n        var attributes = currentNode.attributes;\n        if (!attributes) {\n          return;\n        }\n        var hookEvent = {\n          attrName: '',\n          attrValue: '',\n          keepAttr: true,\n          allowedAttributes: ALLOWED_ATTR\n        };\n        l = attributes.length;\n        while (l--) {\n          attr = attributes[l];\n          var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;\n          value = name === 'value' ? attr.value : stringTrim(attr.value);\n          lcName = transformCaseFunc(name);\n          var initValue = value;\n          hookEvent.attrName = lcName;\n          hookEvent.attrValue = value;\n          hookEvent.keepAttr = true;\n          hookEvent.forceKeepAttr = undefined;\n          _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n          value = hookEvent.attrValue;\n          if (hookEvent.forceKeepAttr) {\n            continue;\n          }\n          if (!hookEvent.keepAttr) {\n            _removeAttribute(name, currentNode);\n            continue;\n          }\n          if (regExpTest(/\\/>/i, value)) {\n            _removeAttribute(name, currentNode);\n            continue;\n          }\n          if (SAFE_FOR_TEMPLATES) {\n            value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n            value = stringReplace(value, ERB_EXPR$1, ' ');\n          }\n          var lcTag = transformCaseFunc(currentNode.nodeName);\n          if (!_isValidAttribute(lcTag, lcName, value)) {\n            _removeAttribute(name, currentNode);\n            continue;\n          }\n          if (value !== initValue) {\n            try {\n              if (namespaceURI) {\n                currentNode.setAttributeNS(namespaceURI, name, value);\n              } else {\n                currentNode.setAttribute(name, value);\n              }\n            } catch (_) {\n              _removeAttribute(name, currentNode);\n            }\n          }\n        }\n        _executeHook('afterSanitizeAttributes', currentNode, null);\n      };\n      var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n        var shadowNode;\n        var shadowIterator = _createIterator(fragment);\n        _executeHook('beforeSanitizeShadowDOM', fragment, null);\n        while (shadowNode = shadowIterator.nextNode()) {\n          _executeHook('uponSanitizeShadowNode', shadowNode, null);\n          if (_sanitizeElements(shadowNode)) {\n            continue;\n          }\n          if (shadowNode.content instanceof DocumentFragment) {\n            _sanitizeShadowDOM(shadowNode.content);\n          }\n          _sanitizeAttributes(shadowNode);\n        }\n        _executeHook('afterSanitizeShadowDOM', fragment, null);\n      };\n      DOMPurify.sanitize = function (dirty, cfg) {\n        var body;\n        var importedNode;\n        var currentNode;\n        var oldNode;\n        var returnNode;\n        IS_EMPTY_INPUT = !dirty;\n        if (IS_EMPTY_INPUT) {\n          dirty = '<!-->';\n        }\n        if (typeof dirty !== 'string' && !_isNode(dirty)) {\n          if (typeof dirty.toString !== 'function') {\n            throw typeErrorCreate('toString is not a function');\n          } else {\n            dirty = dirty.toString();\n            if (typeof dirty !== 'string') {\n              throw typeErrorCreate('dirty is not a string, aborting');\n            }\n          }\n        }\n        if (!DOMPurify.isSupported) {\n          if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n            if (typeof dirty === 'string') {\n              return window.toStaticHTML(dirty);\n            }\n            if (_isNode(dirty)) {\n              return window.toStaticHTML(dirty.outerHTML);\n            }\n          }\n          return dirty;\n        }\n        if (!SET_CONFIG) {\n          _parseConfig(cfg);\n        }\n        DOMPurify.removed = [];\n        if (typeof dirty === 'string') {\n          IN_PLACE = false;\n        }\n        if (IN_PLACE) {\n          if (dirty.nodeName) {\n            var tagName = transformCaseFunc(dirty.nodeName);\n            if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n              throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n            }\n          }\n        } else if (dirty instanceof Node) {\n          body = _initDocument('<!---->');\n          importedNode = body.ownerDocument.importNode(dirty, true);\n          if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n            body = importedNode;\n          } else if (importedNode.nodeName === 'HTML') {\n            body = importedNode;\n          } else {\n            body.appendChild(importedNode);\n          }\n        } else {\n          if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {\n            return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n          }\n          body = _initDocument(dirty);\n          if (!body) {\n            return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n          }\n        }\n        if (body && FORCE_BODY) {\n          _forceRemove(body.firstChild);\n        }\n        var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n        while (currentNode = nodeIterator.nextNode()) {\n          if (currentNode.nodeType === 3 && currentNode === oldNode) {\n            continue;\n          }\n          if (_sanitizeElements(currentNode)) {\n            continue;\n          }\n          if (currentNode.content instanceof DocumentFragment) {\n            _sanitizeShadowDOM(currentNode.content);\n          }\n          _sanitizeAttributes(currentNode);\n          oldNode = currentNode;\n        }\n        oldNode = null;\n        if (IN_PLACE) {\n          return dirty;\n        }\n        if (RETURN_DOM) {\n          if (RETURN_DOM_FRAGMENT) {\n            returnNode = createDocumentFragment.call(body.ownerDocument);\n            while (body.firstChild) {\n              returnNode.appendChild(body.firstChild);\n            }\n          } else {\n            returnNode = body;\n          }\n          if (ALLOWED_ATTR.shadowroot) {\n            returnNode = importNode.call(originalDocument, returnNode, true);\n          }\n          return returnNode;\n        }\n        var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n        if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n          serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n        }\n        if (SAFE_FOR_TEMPLATES) {\n          serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n          serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n        }\n        return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n      };\n      DOMPurify.setConfig = function (cfg) {\n        _parseConfig(cfg);\n        SET_CONFIG = true;\n      };\n      DOMPurify.clearConfig = function () {\n        CONFIG = null;\n        SET_CONFIG = false;\n      };\n      DOMPurify.isValidAttribute = function (tag, attr, value) {\n        if (!CONFIG) {\n          _parseConfig({});\n        }\n        var lcTag = transformCaseFunc(tag);\n        var lcName = transformCaseFunc(attr);\n        return _isValidAttribute(lcTag, lcName, value);\n      };\n      DOMPurify.addHook = function (entryPoint, hookFunction) {\n        if (typeof hookFunction !== 'function') {\n          return;\n        }\n        hooks[entryPoint] = hooks[entryPoint] || [];\n        arrayPush(hooks[entryPoint], hookFunction);\n      };\n      DOMPurify.removeHook = function (entryPoint) {\n        if (hooks[entryPoint]) {\n          return arrayPop(hooks[entryPoint]);\n        }\n      };\n      DOMPurify.removeHooks = function (entryPoint) {\n        if (hooks[entryPoint]) {\n          hooks[entryPoint] = [];\n        }\n      };\n      DOMPurify.removeAllHooks = function () {\n        hooks = {};\n      };\n      return DOMPurify;\n    }\n    var purify = createDOMPurify();\n\n    const explode$1 = Tools.explode;\n    const create$7 = () => {\n      const filters = {};\n      const addFilter = (name, callback) => {\n        each$e(explode$1(name), name => {\n          if (!has$2(filters, name)) {\n            filters[name] = {\n              name,\n              callbacks: []\n            };\n          }\n          filters[name].callbacks.push(callback);\n        });\n      };\n      const getFilters = () => values(filters);\n      const removeFilter = (name, callback) => {\n        each$e(explode$1(name), name => {\n          if (has$2(filters, name)) {\n            if (isNonNullable(callback)) {\n              const filter = filters[name];\n              const newCallbacks = filter$5(filter.callbacks, c => c !== callback);\n              if (newCallbacks.length > 0) {\n                filter.callbacks = newCallbacks;\n              } else {\n                delete filters[name];\n              }\n            } else {\n              delete filters[name];\n            }\n          }\n        });\n      };\n      return {\n        addFilter,\n        getFilters,\n        removeFilter\n      };\n    };\n\n    const removeAttrs = (node, names) => {\n      each$e(names, name => {\n        node.attr(name, null);\n      });\n    };\n    const addFontToSpansFilter = (domParser, styles, fontSizes) => {\n      domParser.addNodeFilter('font', nodes => {\n        each$e(nodes, node => {\n          const props = styles.parse(node.attr('style'));\n          const color = node.attr('color');\n          const face = node.attr('face');\n          const size = node.attr('size');\n          if (color) {\n            props.color = color;\n          }\n          if (face) {\n            props['font-family'] = face;\n          }\n          if (size) {\n            toInt(size).each(num => {\n              props['font-size'] = fontSizes[num - 1];\n            });\n          }\n          node.name = 'span';\n          node.attr('style', styles.serialize(props));\n          removeAttrs(node, [\n            'color',\n            'face',\n            'size'\n          ]);\n        });\n      });\n    };\n    const addStrikeFilter = (domParser, schema, styles) => {\n      domParser.addNodeFilter('strike', nodes => {\n        const convertToSTag = schema.type !== 'html4';\n        each$e(nodes, node => {\n          if (convertToSTag) {\n            node.name = 's';\n          } else {\n            const props = styles.parse(node.attr('style'));\n            props['text-decoration'] = 'line-through';\n            node.name = 'span';\n            node.attr('style', styles.serialize(props));\n          }\n        });\n      });\n    };\n    const addFilters = (domParser, settings, schema) => {\n      var _a;\n      const styles = Styles();\n      if (settings.convert_fonts_to_spans) {\n        addFontToSpansFilter(domParser, styles, Tools.explode((_a = settings.font_size_legacy_values) !== null && _a !== void 0 ? _a : ''));\n      }\n      addStrikeFilter(domParser, schema, styles);\n    };\n    const register$5 = (domParser, settings, schema) => {\n      if (settings.inline_styles) {\n        addFilters(domParser, settings, schema);\n      }\n    };\n\n    const blobUriToBlob = url => fetch(url).then(res => res.ok ? res.blob() : Promise.reject()).catch(() => Promise.reject(`Cannot convert ${ url } to Blob. Resource might not exist or is inaccessible.`));\n    const extractBase64Data = data => {\n      const matches = /([a-z0-9+\\/=\\s]+)/i.exec(data);\n      return matches ? matches[1] : '';\n    };\n    const parseDataUri = uri => {\n      const [type, ...rest] = uri.split(',');\n      const data = rest.join(',');\n      const matches = /data:([^/]+\\/[^;]+)(;.+)?/.exec(type);\n      if (matches) {\n        const base64Encoded = matches[2] === ';base64';\n        const extractedData = base64Encoded ? extractBase64Data(data) : decodeURIComponent(data);\n        return Optional.some({\n          type: matches[1],\n          data: extractedData,\n          base64Encoded\n        });\n      } else {\n        return Optional.none();\n      }\n    };\n    const buildBlob = (type, data, base64Encoded = true) => {\n      let str = data;\n      if (base64Encoded) {\n        try {\n          str = atob(data);\n        } catch (e) {\n          return Optional.none();\n        }\n      }\n      const arr = new Uint8Array(str.length);\n      for (let i = 0; i < arr.length; i++) {\n        arr[i] = str.charCodeAt(i);\n      }\n      return Optional.some(new Blob([arr], { type }));\n    };\n    const dataUriToBlob = uri => {\n      return new Promise((resolve, reject) => {\n        parseDataUri(uri).bind(({type, data, base64Encoded}) => buildBlob(type, data, base64Encoded)).fold(() => reject('Invalid data URI'), resolve);\n      });\n    };\n    const uriToBlob = url => {\n      if (startsWith(url, 'blob:')) {\n        return blobUriToBlob(url);\n      } else if (startsWith(url, 'data:')) {\n        return dataUriToBlob(url);\n      } else {\n        return Promise.reject('Unknown URI format');\n      }\n    };\n    const blobToDataUri = blob => {\n      return new Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.onloadend = () => {\n          resolve(reader.result);\n        };\n        reader.onerror = () => {\n          var _a;\n          reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n        };\n        reader.readAsDataURL(blob);\n      });\n    };\n\n    let count$1 = 0;\n    const uniqueId$1 = prefix => {\n      return (prefix || 'blobid') + count$1++;\n    };\n    const processDataUri = (dataUri, base64Only, generateBlobInfo) => {\n      return parseDataUri(dataUri).bind(({data, type, base64Encoded}) => {\n        if (base64Only && !base64Encoded) {\n          return Optional.none();\n        } else {\n          const base64 = base64Encoded ? data : btoa(data);\n          return generateBlobInfo(base64, type);\n        }\n      });\n    };\n    const createBlobInfo$1 = (blobCache, blob, base64) => {\n      const blobInfo = blobCache.create(uniqueId$1(), blob, base64);\n      blobCache.add(blobInfo);\n      return blobInfo;\n    };\n    const dataUriToBlobInfo = (blobCache, dataUri, base64Only = false) => {\n      return processDataUri(dataUri, base64Only, (base64, type) => Optional.from(blobCache.getByData(base64, type)).orThunk(() => buildBlob(type, base64).map(blob => createBlobInfo$1(blobCache, blob, base64))));\n    };\n    const imageToBlobInfo = (blobCache, imageSrc) => {\n      const invalidDataUri = () => Promise.reject('Invalid data URI');\n      if (startsWith(imageSrc, 'blob:')) {\n        const blobInfo = blobCache.getByUri(imageSrc);\n        if (isNonNullable(blobInfo)) {\n          return Promise.resolve(blobInfo);\n        } else {\n          return uriToBlob(imageSrc).then(blob => {\n            return blobToDataUri(blob).then(dataUri => {\n              return processDataUri(dataUri, false, base64 => {\n                return Optional.some(createBlobInfo$1(blobCache, blob, base64));\n              }).getOrThunk(invalidDataUri);\n            });\n          });\n        }\n      } else if (startsWith(imageSrc, 'data:')) {\n        return dataUriToBlobInfo(blobCache, imageSrc).fold(invalidDataUri, blobInfo => Promise.resolve(blobInfo));\n      } else {\n        return Promise.reject('Unknown image data format');\n      }\n    };\n\n    const isBogusImage = img => isNonNullable(img.attr('data-mce-bogus'));\n    const isInternalImageSource = img => img.attr('src') === Env.transparentSrc || isNonNullable(img.attr('data-mce-placeholder'));\n    const registerBase64ImageFilter = (parser, settings) => {\n      const {blob_cache: blobCache} = settings;\n      if (blobCache) {\n        const processImage = img => {\n          const inputSrc = img.attr('src');\n          if (isInternalImageSource(img) || isBogusImage(img) || isNullable(inputSrc)) {\n            return;\n          }\n          dataUriToBlobInfo(blobCache, inputSrc, true).each(blobInfo => {\n            img.attr('src', blobInfo.blobUri());\n          });\n        };\n        parser.addAttributeFilter('src', nodes => each$e(nodes, processImage));\n      }\n    };\n    const register$4 = (parser, settings) => {\n      const schema = parser.schema;\n      if (settings.remove_trailing_brs) {\n        parser.addNodeFilter('br', (nodes, _, args) => {\n          const blockElements = Tools.extend({}, schema.getBlockElements());\n          const nonEmptyElements = schema.getNonEmptyElements();\n          const whitespaceElements = schema.getWhitespaceElements();\n          blockElements.body = 1;\n          const isBlock = node => node.name in blockElements && isTransparentAstInline(schema, node);\n          for (let i = 0, l = nodes.length; i < l; i++) {\n            let node = nodes[i];\n            let parent = node.parent;\n            if (parent && blockElements[parent.name] && node === parent.lastChild) {\n              let prev = node.prev;\n              while (prev) {\n                const prevName = prev.name;\n                if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') {\n                  if (prevName === 'br') {\n                    node = null;\n                  }\n                  break;\n                }\n                prev = prev.prev;\n              }\n              if (node) {\n                node.remove();\n                if (isEmpty(schema, nonEmptyElements, whitespaceElements, parent)) {\n                  const elementRule = schema.getElementRule(parent.name);\n                  if (elementRule) {\n                    if (elementRule.removeEmpty) {\n                      parent.remove();\n                    } else if (elementRule.paddEmpty) {\n                      paddEmptyNode(args, isBlock, parent);\n                    }\n                  }\n                }\n              }\n            } else {\n              let lastParent = node;\n              while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) {\n                lastParent = parent;\n                if (blockElements[parent.name]) {\n                  break;\n                }\n                parent = parent.parent;\n              }\n              if (lastParent === parent) {\n                const textNode = new AstNode('#text', 3);\n                textNode.value = nbsp;\n                node.replace(textNode);\n              }\n            }\n          }\n        });\n      }\n      parser.addAttributeFilter('href', nodes => {\n        let i = nodes.length;\n        const appendRel = rel => {\n          const parts = rel.split(' ').filter(p => p.length > 0);\n          return parts.concat(['noopener']).sort().join(' ');\n        };\n        const addNoOpener = rel => {\n          const newRel = rel ? Tools.trim(rel) : '';\n          if (!/\\b(noopener)\\b/g.test(newRel)) {\n            return appendRel(newRel);\n          } else {\n            return newRel;\n          }\n        };\n        if (!settings.allow_unsafe_link_target) {\n          while (i--) {\n            const node = nodes[i];\n            if (node.name === 'a' && node.attr('target') === '_blank') {\n              node.attr('rel', addNoOpener(node.attr('rel')));\n            }\n          }\n        }\n      });\n      if (!settings.allow_html_in_named_anchor) {\n        parser.addAttributeFilter('id,name', nodes => {\n          let i = nodes.length, sibling, prevSibling, parent, node;\n          while (i--) {\n            node = nodes[i];\n            if (node.name === 'a' && node.firstChild && !node.attr('href')) {\n              parent = node.parent;\n              sibling = node.lastChild;\n              while (sibling && parent) {\n                prevSibling = sibling.prev;\n                parent.insert(sibling, node);\n                sibling = prevSibling;\n              }\n            }\n          }\n        });\n      }\n      if (settings.fix_list_elements) {\n        parser.addNodeFilter('ul,ol', nodes => {\n          let i = nodes.length, node, parentNode;\n          while (i--) {\n            node = nodes[i];\n            parentNode = node.parent;\n            if (parentNode && (parentNode.name === 'ul' || parentNode.name === 'ol')) {\n              if (node.prev && node.prev.name === 'li') {\n                node.prev.append(node);\n              } else {\n                const li = new AstNode('li', 1);\n                li.attr('style', 'list-style-type: none');\n                node.wrap(li);\n              }\n            }\n          }\n        });\n      }\n      const validClasses = schema.getValidClasses();\n      if (settings.validate && validClasses) {\n        parser.addAttributeFilter('class', nodes => {\n          var _a;\n          let i = nodes.length;\n          while (i--) {\n            const node = nodes[i];\n            const clazz = (_a = node.attr('class')) !== null && _a !== void 0 ? _a : '';\n            const classList = Tools.explode(clazz, ' ');\n            let classValue = '';\n            for (let ci = 0; ci < classList.length; ci++) {\n              const className = classList[ci];\n              let valid = false;\n              let validClassesMap = validClasses['*'];\n              if (validClassesMap && validClassesMap[className]) {\n                valid = true;\n              }\n              validClassesMap = validClasses[node.name];\n              if (!valid && validClassesMap && validClassesMap[className]) {\n                valid = true;\n              }\n              if (valid) {\n                if (classValue) {\n                  classValue += ' ';\n                }\n                classValue += className;\n              }\n            }\n            if (!classValue.length) {\n              classValue = null;\n            }\n            node.attr('class', classValue);\n          }\n        });\n      }\n      registerBase64ImageFilter(parser, settings);\n    };\n\n    const each$4 = Tools.each, trim = Tools.trim;\n    const queryParts = [\n      'source',\n      'protocol',\n      'authority',\n      'userInfo',\n      'user',\n      'password',\n      'host',\n      'port',\n      'relative',\n      'path',\n      'directory',\n      'file',\n      'query',\n      'anchor'\n    ];\n    const DEFAULT_PORTS = {\n      ftp: 21,\n      http: 80,\n      https: 443,\n      mailto: 25\n    };\n    const safeSvgDataUrlElements = [\n      'img',\n      'video'\n    ];\n    const blockSvgDataUris = (allowSvgDataUrls, tagName) => {\n      if (isNonNullable(allowSvgDataUrls)) {\n        return !allowSvgDataUrls;\n      } else {\n        return isNonNullable(tagName) ? !contains$2(safeSvgDataUrlElements, tagName) : true;\n      }\n    };\n    const decodeUri = encodedUri => {\n      try {\n        return decodeURIComponent(encodedUri);\n      } catch (ex) {\n        return unescape(encodedUri);\n      }\n    };\n    const isInvalidUri = (settings, uri, tagName) => {\n      const decodedUri = decodeUri(uri);\n      if (settings.allow_script_urls) {\n        return false;\n      } else if (/((java|vb)script|mhtml):/i.test(decodedUri)) {\n        return true;\n      } else if (settings.allow_html_data_urls) {\n        return false;\n      } else if (/^data:image\\//i.test(decodedUri)) {\n        return blockSvgDataUris(settings.allow_svg_data_urls, tagName) && /^data:image\\/svg\\+xml/i.test(decodedUri);\n      } else {\n        return /^data:/i.test(decodedUri);\n      }\n    };\n    class URI {\n      constructor(url, settings = {}) {\n        this.path = '';\n        this.directory = '';\n        url = trim(url);\n        this.settings = settings;\n        const baseUri = settings.base_uri;\n        const self = this;\n        if (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\n          self.source = url;\n          return;\n        }\n        const isProtocolRelative = url.indexOf('//') === 0;\n        if (url.indexOf('/') === 0 && !isProtocolRelative) {\n          url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\n        }\n        if (!/^[\\w\\-]*:?\\/\\//.test(url)) {\n          const baseUrl = baseUri ? baseUri.path : new URI(document.location.href).directory;\n          if ((baseUri === null || baseUri === void 0 ? void 0 : baseUri.protocol) === '') {\n            url = '//mce_host' + self.toAbsPath(baseUrl, url);\n          } else {\n            const match = /([^#?]*)([#?]?.*)/.exec(url);\n            if (match) {\n              url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2];\n            }\n          }\n        }\n        url = url.replace(/@@/g, '(mce_at)');\n        const urlMatch = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?(\\[[a-zA-Z0-9:.%]+\\]|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\n        if (urlMatch) {\n          each$4(queryParts, (v, i) => {\n            let part = urlMatch[i];\n            if (part) {\n              part = part.replace(/\\(mce_at\\)/g, '@@');\n            }\n            self[v] = part;\n          });\n        }\n        if (baseUri) {\n          if (!self.protocol) {\n            self.protocol = baseUri.protocol;\n          }\n          if (!self.userInfo) {\n            self.userInfo = baseUri.userInfo;\n          }\n          if (!self.port && self.host === 'mce_host') {\n            self.port = baseUri.port;\n          }\n          if (!self.host || self.host === 'mce_host') {\n            self.host = baseUri.host;\n          }\n          self.source = '';\n        }\n        if (isProtocolRelative) {\n          self.protocol = '';\n        }\n      }\n      static parseDataUri(uri) {\n        let type;\n        const uriComponents = decodeURIComponent(uri).split(',');\n        const matches = /data:([^;]+)/.exec(uriComponents[0]);\n        if (matches) {\n          type = matches[1];\n        }\n        return {\n          type,\n          data: uriComponents[1]\n        };\n      }\n      static isDomSafe(uri, context, options = {}) {\n        if (options.allow_script_urls) {\n          return true;\n        } else {\n          const decodedUri = Entities.decode(uri).replace(/[\\s\\u0000-\\u001F]+/g, '');\n          return !isInvalidUri(options, decodedUri, context);\n        }\n      }\n      static getDocumentBaseUrl(loc) {\n        var _a;\n        let baseUrl;\n        if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\n          baseUrl = (_a = loc.href) !== null && _a !== void 0 ? _a : '';\n        } else {\n          baseUrl = loc.protocol + '//' + loc.host + loc.pathname;\n        }\n        if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\n          baseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n          if (!/[\\/\\\\]$/.test(baseUrl)) {\n            baseUrl += '/';\n          }\n        }\n        return baseUrl;\n      }\n      setPath(path) {\n        const pathMatch = /^(.*?)\\/?(\\w+)?$/.exec(path);\n        if (pathMatch) {\n          this.path = pathMatch[0];\n          this.directory = pathMatch[1];\n          this.file = pathMatch[2];\n        }\n        this.source = '';\n        this.getURI();\n      }\n      toRelative(uri) {\n        if (uri === './') {\n          return uri;\n        }\n        const relativeUri = new URI(uri, { base_uri: this });\n        if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') {\n          return relativeUri.getURI();\n        }\n        const tu = this.getURI(), uu = relativeUri.getURI();\n        if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {\n          return tu;\n        }\n        let output = this.toRelPath(this.path, relativeUri.path);\n        if (relativeUri.query) {\n          output += '?' + relativeUri.query;\n        }\n        if (relativeUri.anchor) {\n          output += '#' + relativeUri.anchor;\n        }\n        return output;\n      }\n      toAbsolute(uri, noHost) {\n        const absoluteUri = new URI(uri, { base_uri: this });\n        return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri));\n      }\n      isSameOrigin(uri) {\n        if (this.host == uri.host && this.protocol == uri.protocol) {\n          if (this.port == uri.port) {\n            return true;\n          }\n          const defaultPort = this.protocol ? DEFAULT_PORTS[this.protocol] : null;\n          if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) {\n            return true;\n          }\n        }\n        return false;\n      }\n      toRelPath(base, path) {\n        let breakPoint = 0, out = '', i, l;\n        const normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/');\n        const items = path.split('/');\n        if (normalizedBase.length >= items.length) {\n          for (i = 0, l = normalizedBase.length; i < l; i++) {\n            if (i >= items.length || normalizedBase[i] !== items[i]) {\n              breakPoint = i + 1;\n              break;\n            }\n          }\n        }\n        if (normalizedBase.length < items.length) {\n          for (i = 0, l = items.length; i < l; i++) {\n            if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) {\n              breakPoint = i + 1;\n              break;\n            }\n          }\n        }\n        if (breakPoint === 1) {\n          return path;\n        }\n        for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) {\n          out += '../';\n        }\n        for (i = breakPoint - 1, l = items.length; i < l; i++) {\n          if (i !== breakPoint - 1) {\n            out += '/' + items[i];\n          } else {\n            out += items[i];\n          }\n        }\n        return out;\n      }\n      toAbsPath(base, path) {\n        let nb = 0;\n        const tr = /\\/$/.test(path) ? '/' : '';\n        const normalizedBase = base.split('/');\n        const normalizedPath = path.split('/');\n        const baseParts = [];\n        each$4(normalizedBase, k => {\n          if (k) {\n            baseParts.push(k);\n          }\n        });\n        const pathParts = [];\n        for (let i = normalizedPath.length - 1; i >= 0; i--) {\n          if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') {\n            continue;\n          }\n          if (normalizedPath[i] === '..') {\n            nb++;\n            continue;\n          }\n          if (nb > 0) {\n            nb--;\n            continue;\n          }\n          pathParts.push(normalizedPath[i]);\n        }\n        const i = baseParts.length - nb;\n        let outPath;\n        if (i <= 0) {\n          outPath = reverse(pathParts).join('/');\n        } else {\n          outPath = baseParts.slice(0, i).join('/') + '/' + reverse(pathParts).join('/');\n        }\n        if (outPath.indexOf('/') !== 0) {\n          outPath = '/' + outPath;\n        }\n        if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\n          outPath += tr;\n        }\n        return outPath;\n      }\n      getURI(noProtoHost = false) {\n        let s;\n        if (!this.source || noProtoHost) {\n          s = '';\n          if (!noProtoHost) {\n            if (this.protocol) {\n              s += this.protocol + '://';\n            } else {\n              s += '//';\n            }\n            if (this.userInfo) {\n              s += this.userInfo + '@';\n            }\n            if (this.host) {\n              s += this.host;\n            }\n            if (this.port) {\n              s += ':' + this.port;\n            }\n          }\n          if (this.path) {\n            s += this.path;\n          }\n          if (this.query) {\n            s += '?' + this.query;\n          }\n          if (this.anchor) {\n            s += '#' + this.anchor;\n          }\n          this.source = s;\n        }\n        return this.source;\n      }\n    }\n\n    const makeMap = Tools.makeMap, extend$1 = Tools.extend;\n    const basePurifyConfig = {\n      IN_PLACE: true,\n      ALLOW_UNKNOWN_PROTOCOLS: true,\n      ALLOWED_TAGS: [\n        '#comment',\n        '#cdata-section',\n        'body'\n      ],\n      ALLOWED_ATTR: []\n    };\n    const filteredUrlAttrs = Tools.makeMap('src,href,data,background,action,formaction,poster,xlink:href');\n    const internalElementAttr = 'data-mce-type';\n    const getPurifyConfig = (settings, mimeType) => {\n      const config = { ...basePurifyConfig };\n      config.PARSER_MEDIA_TYPE = mimeType;\n      if (settings.allow_script_urls) {\n        config.ALLOWED_URI_REGEXP = /.*/;\n      } else if (settings.allow_html_data_urls) {\n        config.ALLOWED_URI_REGEXP = /^(?!(\\w+script|mhtml):)/i;\n      }\n      return config;\n    };\n    const setupPurify = (settings, schema) => {\n      const purify$1 = purify();\n      const specialElements = schema.getSpecialElements();\n      const validate = settings.validate;\n      let uid = 0;\n      purify$1.addHook('uponSanitizeElement', (ele, evt) => {\n        var _a, _b, _c;\n        if (ele.nodeType === COMMENT && !settings.allow_conditional_comments && /^\\[if/i.test((_a = ele.nodeValue) !== null && _a !== void 0 ? _a : '')) {\n          ele.nodeValue = ' ' + ele.nodeValue;\n        }\n        const tagName = evt.tagName;\n        if (ele.nodeType !== ELEMENT || tagName === 'body') {\n          return;\n        }\n        const element = SugarElement.fromDom(ele);\n        const lcTagName = tagName.toLowerCase();\n        const isInternalElement = has$1(element, internalElementAttr);\n        const bogus = get$9(element, 'data-mce-bogus');\n        if (!isInternalElement && isString(bogus)) {\n          if (bogus === 'all') {\n            remove$6(element);\n          } else {\n            unwrap(element);\n          }\n          return;\n        }\n        const rule = schema.getElementRule(lcTagName);\n        if (validate && !rule) {\n          if (has$2(specialElements, lcTagName)) {\n            remove$6(element);\n          } else {\n            unwrap(element);\n          }\n          return;\n        } else {\n          evt.allowedTags[tagName] = true;\n        }\n        if (validate && rule && !isInternalElement) {\n          each$e((_b = rule.attributesForced) !== null && _b !== void 0 ? _b : [], attr => {\n            set$2(element, attr.name, attr.value === '{$uid}' ? `mce_${ uid++ }` : attr.value);\n          });\n          each$e((_c = rule.attributesDefault) !== null && _c !== void 0 ? _c : [], attr => {\n            if (!has$1(element, attr.name)) {\n              set$2(element, attr.name, attr.value === '{$uid}' ? `mce_${ uid++ }` : attr.value);\n            }\n          });\n          if (rule.attributesRequired && !exists(rule.attributesRequired, attr => has$1(element, attr))) {\n            unwrap(element);\n            return;\n          }\n          if (rule.removeEmptyAttrs && hasNone(element)) {\n            unwrap(element);\n            return;\n          }\n          if (rule.outputName && rule.outputName !== lcTagName) {\n            mutate(element, rule.outputName);\n          }\n        }\n      });\n      purify$1.addHook('uponSanitizeAttribute', (ele, evt) => {\n        const tagName = ele.tagName.toLowerCase();\n        const {attrName, attrValue} = evt;\n        evt.keepAttr = !validate || schema.isValid(tagName, attrName) || startsWith(attrName, 'data-') || startsWith(attrName, 'aria-');\n        if (attrName in filteredUrlAttrs && isInvalidUri(settings, attrValue, tagName)) {\n          evt.keepAttr = false;\n        }\n        if (evt.keepAttr) {\n          evt.allowedAttributes[attrName] = true;\n          if (attrName in schema.getBoolAttrs()) {\n            evt.attrValue = attrName;\n          }\n          if (settings.allow_svg_data_urls && startsWith(attrValue, 'data:image/svg+xml')) {\n            evt.forceKeepAttr = true;\n          }\n        } else if (ele.hasAttribute(internalElementAttr) && (attrName === 'id' || attrName === 'class' || attrName === 'style')) {\n          evt.forceKeepAttr = true;\n        }\n      });\n      return purify$1;\n    };\n    const transferChildren = (parent, nativeParent, specialElements) => {\n      const parentName = parent.name;\n      const isSpecial = parentName in specialElements && parentName !== 'title' && parentName !== 'textarea';\n      const childNodes = nativeParent.childNodes;\n      for (let ni = 0, nl = childNodes.length; ni < nl; ni++) {\n        const nativeChild = childNodes[ni];\n        const child = new AstNode(nativeChild.nodeName.toLowerCase(), nativeChild.nodeType);\n        if (isElement$6(nativeChild)) {\n          const attributes = nativeChild.attributes;\n          for (let ai = 0, al = attributes.length; ai < al; ai++) {\n            const attr = attributes[ai];\n            child.attr(attr.name, attr.value);\n          }\n        } else if (isText$a(nativeChild)) {\n          child.value = nativeChild.data;\n          if (isSpecial) {\n            child.raw = true;\n          }\n        } else if (isComment(nativeChild) || isCData(nativeChild) || isPi(nativeChild)) {\n          child.value = nativeChild.data;\n        }\n        transferChildren(child, nativeChild, specialElements);\n        parent.append(child);\n      }\n    };\n    const walkTree = (root, preprocessors, postprocessors) => {\n      const traverseOrder = [];\n      for (let node = root, lastNode = node; node; lastNode = node, node = node.walk()) {\n        const tempNode = node;\n        each$e(preprocessors, preprocess => preprocess(tempNode));\n        if (isNullable(tempNode.parent) && tempNode !== root) {\n          node = lastNode;\n        } else {\n          traverseOrder.push(tempNode);\n        }\n      }\n      for (let i = traverseOrder.length - 1; i >= 0; i--) {\n        const node = traverseOrder[i];\n        each$e(postprocessors, postprocess => postprocess(node));\n      }\n    };\n    const whitespaceCleaner = (root, schema, settings, args) => {\n      const validate = settings.validate;\n      const nonEmptyElements = schema.getNonEmptyElements();\n      const whitespaceElements = schema.getWhitespaceElements();\n      const blockElements = extend$1(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n      const textRootBlockElements = getTextRootBlockElements(schema);\n      const allWhiteSpaceRegExp = /[ \\t\\r\\n]+/g;\n      const startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n      const endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n      const hasWhitespaceParent = node => {\n        let tempNode = node.parent;\n        while (isNonNullable(tempNode)) {\n          if (tempNode.name in whitespaceElements) {\n            return true;\n          } else {\n            tempNode = tempNode.parent;\n          }\n        }\n        return false;\n      };\n      const isTextRootBlockEmpty = node => {\n        let tempNode = node;\n        while (isNonNullable(tempNode)) {\n          if (tempNode.name in textRootBlockElements) {\n            return isEmpty(schema, nonEmptyElements, whitespaceElements, tempNode);\n          } else {\n            tempNode = tempNode.parent;\n          }\n        }\n        return false;\n      };\n      const isBlock = node => node.name in blockElements && !isTransparentAstInline(schema, node);\n      const isAtEdgeOfBlock = (node, start) => {\n        const neighbour = start ? node.prev : node.next;\n        if (isNonNullable(neighbour) || isNullable(node.parent)) {\n          return false;\n        }\n        return isBlock(node.parent) && (node.parent !== root || args.isRootContent === true);\n      };\n      const preprocess = node => {\n        var _a;\n        if (node.type === 3) {\n          if (!hasWhitespaceParent(node)) {\n            let text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n            text = text.replace(allWhiteSpaceRegExp, ' ');\n            if (isLineBreakNode(node.prev, isBlock) || isAtEdgeOfBlock(node, true)) {\n              text = text.replace(startWhiteSpaceRegExp, '');\n            }\n            if (text.length === 0) {\n              node.remove();\n            } else {\n              node.value = text;\n            }\n          }\n        }\n      };\n      const postprocess = node => {\n        var _a;\n        if (node.type === 1) {\n          const elementRule = schema.getElementRule(node.name);\n          if (validate && elementRule) {\n            const isNodeEmpty = isEmpty(schema, nonEmptyElements, whitespaceElements, node);\n            if (elementRule.paddInEmptyBlock && isNodeEmpty && isTextRootBlockEmpty(node)) {\n              paddEmptyNode(args, isBlock, node);\n            } else if (elementRule.removeEmpty && isNodeEmpty) {\n              if (isBlock(node)) {\n                node.remove();\n              } else {\n                node.unwrap();\n              }\n            } else if (elementRule.paddEmpty && (isNodeEmpty || isPaddedWithNbsp(node))) {\n              paddEmptyNode(args, isBlock, node);\n            }\n          }\n        } else if (node.type === 3) {\n          if (!hasWhitespaceParent(node)) {\n            let text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n            if (node.next && isBlock(node.next) || isAtEdgeOfBlock(node, false)) {\n              text = text.replace(endWhiteSpaceRegExp, '');\n            }\n            if (text.length === 0) {\n              node.remove();\n            } else {\n              node.value = text;\n            }\n          }\n        }\n      };\n      return [\n        preprocess,\n        postprocess\n      ];\n    };\n    const getRootBlockName = (settings, args) => {\n      var _a;\n      const name = (_a = args.forced_root_block) !== null && _a !== void 0 ? _a : settings.forced_root_block;\n      if (name === false) {\n        return '';\n      } else if (name === true) {\n        return 'p';\n      } else {\n        return name;\n      }\n    };\n    const DomParser = (settings = {}, schema = Schema()) => {\n      const nodeFilterRegistry = create$7();\n      const attributeFilterRegistry = create$7();\n      const defaultedSettings = {\n        validate: true,\n        root_name: 'body',\n        ...settings\n      };\n      const parser = new DOMParser();\n      const purify = setupPurify(defaultedSettings, schema);\n      const parseAndSanitizeWithContext = (html, rootName, format = 'html') => {\n        const mimeType = format === 'xhtml' ? 'application/xhtml+xml' : 'text/html';\n        const isSpecialRoot = has$2(schema.getSpecialElements(), rootName.toLowerCase());\n        const content = isSpecialRoot ? `<${ rootName }>${ html }</${ rootName }>` : html;\n        const wrappedHtml = format === 'xhtml' ? `<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>${ content }</body></html>` : `<body>${ content }</body>`;\n        const body = parser.parseFromString(wrappedHtml, mimeType).body;\n        purify.sanitize(body, getPurifyConfig(defaultedSettings, mimeType));\n        purify.removed = [];\n        return isSpecialRoot ? body.firstChild : body;\n      };\n      const addNodeFilter = nodeFilterRegistry.addFilter;\n      const getNodeFilters = nodeFilterRegistry.getFilters;\n      const removeNodeFilter = nodeFilterRegistry.removeFilter;\n      const addAttributeFilter = attributeFilterRegistry.addFilter;\n      const getAttributeFilters = attributeFilterRegistry.getFilters;\n      const removeAttributeFilter = attributeFilterRegistry.removeFilter;\n      const findInvalidChildren = (node, invalidChildren) => {\n        if (isInvalid(schema, node)) {\n          invalidChildren.push(node);\n        }\n      };\n      const isWrappableNode = (blockElements, node) => {\n        const isInternalElement = isString(node.attr(internalElementAttr));\n        const isInlineElement = node.type === 1 && (!has$2(blockElements, node.name) && !isTransparentAstBlock(schema, node));\n        return node.type === 3 || isInlineElement && !isInternalElement;\n      };\n      const addRootBlocks = (rootNode, rootBlockName) => {\n        const blockElements = extend$1(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n        const startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n        const endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n        let node = rootNode.firstChild, rootBlockNode = null;\n        const trim = rootBlock => {\n          var _a, _b;\n          if (rootBlock) {\n            node = rootBlock.firstChild;\n            if (node && node.type === 3) {\n              node.value = (_a = node.value) === null || _a === void 0 ? void 0 : _a.replace(startWhiteSpaceRegExp, '');\n            }\n            node = rootBlock.lastChild;\n            if (node && node.type === 3) {\n              node.value = (_b = node.value) === null || _b === void 0 ? void 0 : _b.replace(endWhiteSpaceRegExp, '');\n            }\n          }\n        };\n        if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) {\n          return;\n        }\n        while (node) {\n          const next = node.next;\n          if (isWrappableNode(blockElements, node)) {\n            if (!rootBlockNode) {\n              rootBlockNode = new AstNode(rootBlockName, 1);\n              rootBlockNode.attr(defaultedSettings.forced_root_block_attrs);\n              rootNode.insert(rootBlockNode, node);\n              rootBlockNode.append(node);\n            } else {\n              rootBlockNode.append(node);\n            }\n          } else {\n            trim(rootBlockNode);\n            rootBlockNode = null;\n          }\n          node = next;\n        }\n        trim(rootBlockNode);\n      };\n      const parse = (html, args = {}) => {\n        var _a;\n        const validate = defaultedSettings.validate;\n        const rootName = (_a = args.context) !== null && _a !== void 0 ? _a : defaultedSettings.root_name;\n        const element = parseAndSanitizeWithContext(html, rootName, args.format);\n        updateChildren(schema, element);\n        const rootNode = new AstNode(rootName, 11);\n        transferChildren(rootNode, element, schema.getSpecialElements());\n        element.innerHTML = '';\n        const [whitespacePre, whitespacePost] = whitespaceCleaner(rootNode, schema, defaultedSettings, args);\n        const invalidChildren = [];\n        const invalidFinder = validate ? node => findInvalidChildren(node, invalidChildren) : noop;\n        const matches = {\n          nodes: {},\n          attributes: {}\n        };\n        const matchFinder = node => matchNode$1(getNodeFilters(), getAttributeFilters(), node, matches);\n        walkTree(rootNode, [\n          whitespacePre,\n          matchFinder\n        ], [\n          whitespacePost,\n          invalidFinder\n        ]);\n        invalidChildren.reverse();\n        if (validate && invalidChildren.length > 0) {\n          if (args.context) {\n            const {\n              pass: topLevelChildren,\n              fail: otherChildren\n            } = partition$2(invalidChildren, child => child.parent === rootNode);\n            cleanInvalidNodes(otherChildren, schema, matchFinder);\n            args.invalid = topLevelChildren.length > 0;\n          } else {\n            cleanInvalidNodes(invalidChildren, schema, matchFinder);\n          }\n        }\n        const rootBlockName = getRootBlockName(defaultedSettings, args);\n        if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) {\n          addRootBlocks(rootNode, rootBlockName);\n        }\n        if (!args.invalid) {\n          runFilters(matches, args);\n        }\n        return rootNode;\n      };\n      const exports = {\n        schema,\n        addAttributeFilter,\n        getAttributeFilters,\n        removeAttributeFilter,\n        addNodeFilter,\n        getNodeFilters,\n        removeNodeFilter,\n        parse\n      };\n      register$4(exports, defaultedSettings);\n      register$5(exports, defaultedSettings, schema);\n      return exports;\n    };\n\n    const serializeContent = content => isTreeNode(content) ? HtmlSerializer({ validate: false }).serialize(content) : content;\n    const withSerializedContent = (content, fireEvent) => {\n      const serializedContent = serializeContent(content);\n      const eventArgs = fireEvent(serializedContent);\n      if (eventArgs.isDefaultPrevented()) {\n        return eventArgs;\n      } else if (isTreeNode(content)) {\n        if (eventArgs.content !== serializedContent) {\n          const rootNode = DomParser({\n            validate: false,\n            forced_root_block: false\n          }).parse(eventArgs.content, { context: content.name });\n          return {\n            ...eventArgs,\n            content: rootNode\n          };\n        } else {\n          return {\n            ...eventArgs,\n            content\n          };\n        }\n      } else {\n        return eventArgs;\n      }\n    };\n    const preProcessGetContent = (editor, args) => {\n      if (args.no_events) {\n        return Result.value(args);\n      } else {\n        const eventArgs = fireBeforeGetContent(editor, args);\n        if (eventArgs.isDefaultPrevented()) {\n          return Result.error(fireGetContent(editor, {\n            content: '',\n            ...eventArgs\n          }).content);\n        } else {\n          return Result.value(eventArgs);\n        }\n      }\n    };\n    const postProcessGetContent = (editor, content, args) => {\n      if (args.no_events) {\n        return content;\n      } else {\n        const processedEventArgs = withSerializedContent(content, c => fireGetContent(editor, {\n          ...args,\n          content: c\n        }));\n        return processedEventArgs.content;\n      }\n    };\n    const preProcessSetContent = (editor, args) => {\n      if (args.no_events) {\n        return Result.value(args);\n      } else {\n        const processedEventArgs = withSerializedContent(args.content, content => fireBeforeSetContent(editor, {\n          ...args,\n          content\n        }));\n        if (processedEventArgs.isDefaultPrevented()) {\n          fireSetContent(editor, processedEventArgs);\n          return Result.error(undefined);\n        } else {\n          return Result.value(processedEventArgs);\n        }\n      }\n    };\n    const postProcessSetContent = (editor, content, args) => {\n      if (!args.no_events) {\n        fireSetContent(editor, {\n          ...args,\n          content\n        });\n      }\n    };\n\n    const tableModel = (element, width, rows) => ({\n      element,\n      width,\n      rows\n    });\n    const tableRow = (element, cells) => ({\n      element,\n      cells\n    });\n    const cellPosition = (x, y) => ({\n      x,\n      y\n    });\n    const getSpan = (td, key) => {\n      return getOpt(td, key).bind(toInt).getOr(1);\n    };\n    const fillout = (table, x, y, tr, td) => {\n      const rowspan = getSpan(td, 'rowspan');\n      const colspan = getSpan(td, 'colspan');\n      const rows = table.rows;\n      for (let y2 = y; y2 < y + rowspan; y2++) {\n        if (!rows[y2]) {\n          rows[y2] = tableRow(deep$1(tr), []);\n        }\n        for (let x2 = x; x2 < x + colspan; x2++) {\n          const cells = rows[y2].cells;\n          cells[x2] = y2 === y && x2 === x ? td : shallow$1(td);\n        }\n      }\n    };\n    const cellExists = (table, x, y) => {\n      const rows = table.rows;\n      const cells = rows[y] ? rows[y].cells : [];\n      return !!cells[x];\n    };\n    const skipCellsX = (table, x, y) => {\n      while (cellExists(table, x, y)) {\n        x++;\n      }\n      return x;\n    };\n    const getWidth = rows => {\n      return foldl(rows, (acc, row) => {\n        return row.cells.length > acc ? row.cells.length : acc;\n      }, 0);\n    };\n    const findElementPos = (table, element) => {\n      const rows = table.rows;\n      for (let y = 0; y < rows.length; y++) {\n        const cells = rows[y].cells;\n        for (let x = 0; x < cells.length; x++) {\n          if (eq(cells[x], element)) {\n            return Optional.some(cellPosition(x, y));\n          }\n        }\n      }\n      return Optional.none();\n    };\n    const extractRows = (table, sx, sy, ex, ey) => {\n      const newRows = [];\n      const rows = table.rows;\n      for (let y = sy; y <= ey; y++) {\n        const cells = rows[y].cells;\n        const slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1);\n        newRows.push(tableRow(rows[y].element, slice));\n      }\n      return newRows;\n    };\n    const subTable = (table, startPos, endPos) => {\n      const sx = startPos.x, sy = startPos.y;\n      const ex = endPos.x, ey = endPos.y;\n      const newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy);\n      return tableModel(table.element, getWidth(newRows), newRows);\n    };\n    const createDomTable = (table, rows) => {\n      const tableElement = shallow$1(table.element);\n      const tableBody = SugarElement.fromTag('tbody');\n      append(tableBody, rows);\n      append$1(tableElement, tableBody);\n      return tableElement;\n    };\n    const modelRowsToDomRows = table => {\n      return map$3(table.rows, row => {\n        const cells = map$3(row.cells, cell => {\n          const td = deep$1(cell);\n          remove$b(td, 'colspan');\n          remove$b(td, 'rowspan');\n          return td;\n        });\n        const tr = shallow$1(row.element);\n        append(tr, cells);\n        return tr;\n      });\n    };\n    const fromDom = tableElm => {\n      const table = tableModel(shallow$1(tableElm), 0, []);\n      each$e(descendants(tableElm, 'tr'), (tr, y) => {\n        each$e(descendants(tr, 'td,th'), (td, x) => {\n          fillout(table, skipCellsX(table, x, y), y, tr, td);\n        });\n      });\n      return tableModel(table.element, getWidth(table.rows), table.rows);\n    };\n    const toDom = table => {\n      return createDomTable(table, modelRowsToDomRows(table));\n    };\n    const subsection = (table, startElement, endElement) => {\n      return findElementPos(table, startElement).bind(startPos => {\n        return findElementPos(table, endElement).map(endPos => {\n          return subTable(table, startPos, endPos);\n        });\n      });\n    };\n\n    const findParentListContainer = parents => find$2(parents, elm => name(elm) === 'ul' || name(elm) === 'ol');\n    const getFullySelectedListWrappers = (parents, rng) => find$2(parents, elm => name(elm) === 'li' && hasAllContentsSelected(elm, rng)).fold(constant([]), _li => findParentListContainer(parents).map(listCont => {\n      const listElm = SugarElement.fromTag(name(listCont));\n      const listStyles = filter$4(getAllRaw(listCont), (_style, name) => startsWith(name, 'list-style'));\n      setAll(listElm, listStyles);\n      return [\n        SugarElement.fromTag('li'),\n        listElm\n      ];\n    }).getOr([]));\n    const wrap = (innerElm, elms) => {\n      const wrapped = foldl(elms, (acc, elm) => {\n        append$1(elm, acc);\n        return elm;\n      }, innerElm);\n      return elms.length > 0 ? fromElements([wrapped]) : wrapped;\n    };\n    const directListWrappers = commonAnchorContainer => {\n      if (isListItem$1(commonAnchorContainer)) {\n        return parent(commonAnchorContainer).filter(isList).fold(constant([]), listElm => [\n          commonAnchorContainer,\n          listElm\n        ]);\n      } else {\n        return isList(commonAnchorContainer) ? [commonAnchorContainer] : [];\n      }\n    };\n    const getWrapElements = (rootNode, rng) => {\n      const commonAnchorContainer = SugarElement.fromDom(rng.commonAncestorContainer);\n      const parents = parentsAndSelf(commonAnchorContainer, rootNode);\n      const wrapElements = filter$5(parents, isWrapElement);\n      const listWrappers = getFullySelectedListWrappers(parents, rng);\n      const allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));\n      return map$3(allWrappers, shallow$1);\n    };\n    const emptyFragment = () => fromElements([]);\n    const getFragmentFromRange = (rootNode, rng) => wrap(SugarElement.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng));\n    const getParentTable = (rootElm, cell) => ancestor$2(cell, 'table', curry(eq, rootElm));\n    const getTableFragment = (rootNode, selectedTableCells) => getParentTable(rootNode, selectedTableCells[0]).bind(tableElm => {\n      const firstCell = selectedTableCells[0];\n      const lastCell = selectedTableCells[selectedTableCells.length - 1];\n      const fullTableModel = fromDom(tableElm);\n      return subsection(fullTableModel, firstCell, lastCell).map(sectionedTableModel => fromElements([toDom(sectionedTableModel)]));\n    }).getOrThunk(emptyFragment);\n    const getSelectionFragment = (rootNode, ranges) => ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0]);\n    const read$3 = (rootNode, ranges) => {\n      const selectedCells = getCellsFromElementOrRanges(ranges, rootNode);\n      return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges);\n    };\n\n    const isCollapsibleWhitespace = (text, index) => index >= 0 && index < text.length && isWhiteSpace(text.charAt(index));\n    const getInnerText = bin => {\n      return trim$1(bin.innerText);\n    };\n    const getContextNodeName = parentBlockOpt => parentBlockOpt.map(block => block.nodeName).getOr('div').toLowerCase();\n    const getTextContent = editor => Optional.from(editor.selection.getRng()).map(rng => {\n      var _a;\n      const parentBlockOpt = Optional.from(editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock));\n      const body = editor.getBody();\n      const contextNodeName = getContextNodeName(parentBlockOpt);\n      const rangeContentClone = SugarElement.fromDom(rng.cloneContents());\n      cleanupBogusElements(rangeContentClone);\n      cleanupInputNames(rangeContentClone);\n      const bin = editor.dom.add(body, contextNodeName, {\n        'data-mce-bogus': 'all',\n        'style': 'overflow: hidden; opacity: 0;'\n      }, rangeContentClone.dom);\n      const text = getInnerText(bin);\n      const nonRenderedText = trim$1((_a = bin.textContent) !== null && _a !== void 0 ? _a : '');\n      editor.dom.remove(bin);\n      if (isCollapsibleWhitespace(nonRenderedText, 0) || isCollapsibleWhitespace(nonRenderedText, nonRenderedText.length - 1)) {\n        const parentBlock = parentBlockOpt.getOr(body);\n        const parentBlockText = getInnerText(parentBlock);\n        const textIndex = parentBlockText.indexOf(text);\n        if (textIndex === -1) {\n          return text;\n        } else {\n          const hasProceedingSpace = isCollapsibleWhitespace(parentBlockText, textIndex - 1);\n          const hasTrailingSpace = isCollapsibleWhitespace(parentBlockText, textIndex + text.length);\n          return (hasProceedingSpace ? ' ' : '') + text + (hasTrailingSpace ? ' ' : '');\n        }\n      } else {\n        return text;\n      }\n    }).getOr('');\n    const getSerializedContent = (editor, args) => {\n      const rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');\n      const sel = editor.selection.getSel();\n      const ranges = processRanges(editor, getRanges$1(sel));\n      const fragment = args.contextual ? read$3(SugarElement.fromDom(editor.getBody()), ranges).dom : rng.cloneContents();\n      if (fragment) {\n        tmpElm.appendChild(fragment);\n      }\n      return editor.selection.serializer.serialize(tmpElm, args);\n    };\n    const extractSelectedContent = (editor, args) => {\n      if (args.format === 'text') {\n        return getTextContent(editor);\n      } else {\n        const content = getSerializedContent(editor, args);\n        if (args.format === 'tree') {\n          return content;\n        } else {\n          return editor.selection.isCollapsed() ? '' : content;\n        }\n      }\n    };\n    const setupArgs$3 = (args, format) => ({\n      ...args,\n      format,\n      get: true,\n      selection: true,\n      getInner: true\n    });\n    const getSelectedContentInternal = (editor, format, args = {}) => {\n      const defaultedArgs = setupArgs$3(args, format);\n      return preProcessGetContent(editor, defaultedArgs).fold(identity, updatedArgs => {\n        const content = extractSelectedContent(editor, updatedArgs);\n        return postProcessGetContent(editor, content, updatedArgs);\n      });\n    };\n\n    const KEEP = 0, INSERT = 1, DELETE = 2;\n    const diff = (left, right) => {\n      const size = left.length + right.length + 2;\n      const vDown = new Array(size);\n      const vUp = new Array(size);\n      const snake = (start, end, diag) => {\n        return {\n          start,\n          end,\n          diag\n        };\n      };\n      const buildScript = (start1, end1, start2, end2, script) => {\n        const middle = getMiddleSnake(start1, end1, start2, end2);\n        if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) {\n          let i = start1;\n          let j = start2;\n          while (i < end1 || j < end2) {\n            if (i < end1 && j < end2 && left[i] === right[j]) {\n              script.push([\n                KEEP,\n                left[i]\n              ]);\n              ++i;\n              ++j;\n            } else {\n              if (end1 - start1 > end2 - start2) {\n                script.push([\n                  DELETE,\n                  left[i]\n                ]);\n                ++i;\n              } else {\n                script.push([\n                  INSERT,\n                  right[j]\n                ]);\n                ++j;\n              }\n            }\n          }\n        } else {\n          buildScript(start1, middle.start, start2, middle.start - middle.diag, script);\n          for (let i2 = middle.start; i2 < middle.end; ++i2) {\n            script.push([\n              KEEP,\n              left[i2]\n            ]);\n          }\n          buildScript(middle.end, end1, middle.end - middle.diag, end2, script);\n        }\n      };\n      const buildSnake = (start, diag, end1, end2) => {\n        let end = start;\n        while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) {\n          ++end;\n        }\n        return snake(start, end, diag);\n      };\n      const getMiddleSnake = (start1, end1, start2, end2) => {\n        const m = end1 - start1;\n        const n = end2 - start2;\n        if (m === 0 || n === 0) {\n          return null;\n        }\n        const delta = m - n;\n        const sum = n + m;\n        const offset = (sum % 2 === 0 ? sum : sum + 1) / 2;\n        vDown[1 + offset] = start1;\n        vUp[1 + offset] = end1 + 1;\n        let d, k, i, x, y;\n        for (d = 0; d <= offset; ++d) {\n          for (k = -d; k <= d; k += 2) {\n            i = k + offset;\n            if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) {\n              vDown[i] = vDown[i + 1];\n            } else {\n              vDown[i] = vDown[i - 1] + 1;\n            }\n            x = vDown[i];\n            y = x - start1 + start2 - k;\n            while (x < end1 && y < end2 && left[x] === right[y]) {\n              vDown[i] = ++x;\n              ++y;\n            }\n            if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) {\n              if (vUp[i - delta] <= vDown[i]) {\n                return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2);\n              }\n            }\n          }\n          for (k = delta - d; k <= delta + d; k += 2) {\n            i = k + offset - delta;\n            if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) {\n              vUp[i] = vUp[i + 1] - 1;\n            } else {\n              vUp[i] = vUp[i - 1];\n            }\n            x = vUp[i] - 1;\n            y = x - start1 + start2 - k;\n            while (x >= start1 && y >= start2 && left[x] === right[y]) {\n              vUp[i] = x--;\n              y--;\n            }\n            if (delta % 2 === 0 && -d <= k && k <= d) {\n              if (vUp[i] <= vDown[i + delta]) {\n                return buildSnake(vUp[i], k + start1 - start2, end1, end2);\n              }\n            }\n          }\n        }\n        return null;\n      };\n      const script = [];\n      buildScript(0, left.length, 0, right.length, script);\n      return script;\n    };\n\n    const getOuterHtml = elm => {\n      if (isElement$6(elm)) {\n        return elm.outerHTML;\n      } else if (isText$a(elm)) {\n        return Entities.encodeRaw(elm.data, false);\n      } else if (isComment(elm)) {\n        return '<!--' + elm.data + '-->';\n      }\n      return '';\n    };\n    const createFragment = html => {\n      let node;\n      const container = document.createElement('div');\n      const frag = document.createDocumentFragment();\n      if (html) {\n        container.innerHTML = html;\n      }\n      while (node = container.firstChild) {\n        frag.appendChild(node);\n      }\n      return frag;\n    };\n    const insertAt = (elm, html, index) => {\n      const fragment = createFragment(html);\n      if (elm.hasChildNodes() && index < elm.childNodes.length) {\n        const target = elm.childNodes[index];\n        elm.insertBefore(fragment, target);\n      } else {\n        elm.appendChild(fragment);\n      }\n    };\n    const removeAt = (elm, index) => {\n      if (elm.hasChildNodes() && index < elm.childNodes.length) {\n        const target = elm.childNodes[index];\n        elm.removeChild(target);\n      }\n    };\n    const applyDiff = (diff, elm) => {\n      let index = 0;\n      each$e(diff, action => {\n        if (action[0] === KEEP) {\n          index++;\n        } else if (action[0] === INSERT) {\n          insertAt(elm, action[1], index);\n          index++;\n        } else if (action[0] === DELETE) {\n          removeAt(elm, index);\n        }\n      });\n    };\n    const read$2 = elm => {\n      return filter$5(map$3(from(elm.childNodes), getOuterHtml), item => {\n        return item.length > 0;\n      });\n    };\n    const write = (fragments, elm) => {\n      const currentFragments = map$3(from(elm.childNodes), getOuterHtml);\n      applyDiff(diff(currentFragments, fragments), elm);\n      return elm;\n    };\n\n    const lazyTempDocument = cached(() => document.implementation.createHTMLDocument('undo'));\n    const hasIframes = html => {\n      return html.indexOf('</iframe>') !== -1;\n    };\n    const createFragmentedLevel = fragments => {\n      return {\n        type: 'fragmented',\n        fragments,\n        content: '',\n        bookmark: null,\n        beforeBookmark: null\n      };\n    };\n    const createCompleteLevel = content => {\n      return {\n        type: 'complete',\n        fragments: null,\n        content,\n        bookmark: null,\n        beforeBookmark: null\n      };\n    };\n    const createFromEditor = editor => {\n      const fragments = read$2(editor.getBody());\n      const trimmedFragments = bind$3(fragments, html => {\n        const trimmed = trimInternal(editor.serializer, html);\n        return trimmed.length > 0 ? [trimmed] : [];\n      });\n      const content = trimmedFragments.join('');\n      return hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content);\n    };\n    const applyToEditor = (editor, level, before) => {\n      const bookmark = before ? level.beforeBookmark : level.bookmark;\n      if (level.type === 'fragmented') {\n        write(level.fragments, editor.getBody());\n      } else {\n        editor.setContent(level.content, {\n          format: 'raw',\n          no_selection: isNonNullable(bookmark) && isPathBookmark(bookmark) ? !bookmark.isFakeCaret : true\n        });\n      }\n      if (bookmark) {\n        editor.selection.moveToBookmark(bookmark);\n        editor.selection.scrollIntoView();\n      }\n    };\n    const getLevelContent = level => {\n      return level.type === 'fragmented' ? level.fragments.join('') : level.content;\n    };\n    const getCleanLevelContent = level => {\n      const elm = SugarElement.fromTag('body', lazyTempDocument());\n      set(elm, getLevelContent(level));\n      each$e(descendants(elm, '*[data-mce-bogus]'), unwrap);\n      return get$6(elm);\n    };\n    const hasEqualContent = (level1, level2) => getLevelContent(level1) === getLevelContent(level2);\n    const hasEqualCleanedContent = (level1, level2) => getCleanLevelContent(level1) === getCleanLevelContent(level2);\n    const isEq$1 = (level1, level2) => {\n      if (!level1 || !level2) {\n        return false;\n      } else if (hasEqualContent(level1, level2)) {\n        return true;\n      } else {\n        return hasEqualCleanedContent(level1, level2);\n      }\n    };\n\n    const isUnlocked = locks => locks.get() === 0;\n\n    const setTyping = (undoManager, typing, locks) => {\n      if (isUnlocked(locks)) {\n        undoManager.typing = typing;\n      }\n    };\n    const endTyping = (undoManager, locks) => {\n      if (undoManager.typing) {\n        setTyping(undoManager, false, locks);\n        undoManager.add();\n      }\n    };\n    const endTypingLevelIgnoreLocks = undoManager => {\n      if (undoManager.typing) {\n        undoManager.typing = false;\n        undoManager.add();\n      }\n    };\n\n    const beforeChange$1 = (editor, locks, beforeBookmark) => {\n      if (isUnlocked(locks)) {\n        beforeBookmark.set(getUndoBookmark(editor.selection));\n      }\n    };\n    const addUndoLevel$1 = (editor, undoManager, index, locks, beforeBookmark, level, event) => {\n      const currentLevel = createFromEditor(editor);\n      const newLevel = Tools.extend(level || {}, currentLevel);\n      if (!isUnlocked(locks) || editor.removed) {\n        return null;\n      }\n      const lastLevel = undoManager.data[index.get()];\n      if (editor.dispatch('BeforeAddUndo', {\n          level: newLevel,\n          lastLevel,\n          originalEvent: event\n        }).isDefaultPrevented()) {\n        return null;\n      }\n      if (lastLevel && isEq$1(lastLevel, newLevel)) {\n        return null;\n      }\n      if (undoManager.data[index.get()]) {\n        beforeBookmark.get().each(bm => {\n          undoManager.data[index.get()].beforeBookmark = bm;\n        });\n      }\n      const customUndoRedoLevels = getCustomUndoRedoLevels(editor);\n      if (customUndoRedoLevels) {\n        if (undoManager.data.length > customUndoRedoLevels) {\n          for (let i = 0; i < undoManager.data.length - 1; i++) {\n            undoManager.data[i] = undoManager.data[i + 1];\n          }\n          undoManager.data.length--;\n          index.set(undoManager.data.length);\n        }\n      }\n      newLevel.bookmark = getUndoBookmark(editor.selection);\n      if (index.get() < undoManager.data.length - 1) {\n        undoManager.data.length = index.get() + 1;\n      }\n      undoManager.data.push(newLevel);\n      index.set(undoManager.data.length - 1);\n      const args = {\n        level: newLevel,\n        lastLevel,\n        originalEvent: event\n      };\n      if (index.get() > 0) {\n        editor.setDirty(true);\n        editor.dispatch('AddUndo', args);\n        editor.dispatch('change', args);\n      } else {\n        editor.dispatch('AddUndo', args);\n      }\n      return newLevel;\n    };\n    const clear$1 = (editor, undoManager, index) => {\n      undoManager.data = [];\n      index.set(0);\n      undoManager.typing = false;\n      editor.dispatch('ClearUndos');\n    };\n    const extra$1 = (editor, undoManager, index, callback1, callback2) => {\n      if (undoManager.transact(callback1)) {\n        const bookmark = undoManager.data[index.get()].bookmark;\n        const lastLevel = undoManager.data[index.get() - 1];\n        applyToEditor(editor, lastLevel, true);\n        if (undoManager.transact(callback2)) {\n          undoManager.data[index.get() - 1].beforeBookmark = bookmark;\n        }\n      }\n    };\n    const redo$1 = (editor, index, data) => {\n      let level;\n      if (index.get() < data.length - 1) {\n        index.set(index.get() + 1);\n        level = data[index.get()];\n        applyToEditor(editor, level, false);\n        editor.setDirty(true);\n        editor.dispatch('Redo', { level });\n      }\n      return level;\n    };\n    const undo$1 = (editor, undoManager, locks, index) => {\n      let level;\n      if (undoManager.typing) {\n        undoManager.add();\n        undoManager.typing = false;\n        setTyping(undoManager, false, locks);\n      }\n      if (index.get() > 0) {\n        index.set(index.get() - 1);\n        level = undoManager.data[index.get()];\n        applyToEditor(editor, level, true);\n        editor.setDirty(true);\n        editor.dispatch('Undo', { level });\n      }\n      return level;\n    };\n    const reset$1 = undoManager => {\n      undoManager.clear();\n      undoManager.add();\n    };\n    const hasUndo$1 = (editor, undoManager, index) => index.get() > 0 || undoManager.typing && undoManager.data[0] && !isEq$1(createFromEditor(editor), undoManager.data[0]);\n    const hasRedo$1 = (undoManager, index) => index.get() < undoManager.data.length - 1 && !undoManager.typing;\n    const transact$1 = (undoManager, locks, callback) => {\n      endTyping(undoManager, locks);\n      undoManager.beforeChange();\n      undoManager.ignore(callback);\n      return undoManager.add();\n    };\n    const ignore$1 = (locks, callback) => {\n      try {\n        locks.set(locks.get() + 1);\n        callback();\n      } finally {\n        locks.set(locks.get() - 1);\n      }\n    };\n\n    const addVisualInternal = (editor, elm) => {\n      const dom = editor.dom;\n      const scope = isNonNullable(elm) ? elm : editor.getBody();\n      each$e(dom.select('table,a', scope), matchedElm => {\n        switch (matchedElm.nodeName) {\n        case 'TABLE':\n          const cls = getVisualAidsTableClass(editor);\n          const value = dom.getAttrib(matchedElm, 'border');\n          if ((!value || value === '0') && editor.hasVisual) {\n            dom.addClass(matchedElm, cls);\n          } else {\n            dom.removeClass(matchedElm, cls);\n          }\n          break;\n        case 'A':\n          if (!dom.getAttrib(matchedElm, 'href')) {\n            const value = dom.getAttrib(matchedElm, 'name') || matchedElm.id;\n            const cls = getVisualAidsAnchorClass(editor);\n            if (value && editor.hasVisual) {\n              dom.addClass(matchedElm, cls);\n            } else {\n              dom.removeClass(matchedElm, cls);\n            }\n          }\n          break;\n        }\n      });\n      editor.dispatch('VisualAid', {\n        element: elm,\n        hasVisual: editor.hasVisual\n      });\n    };\n\n    const makePlainAdaptor = editor => ({\n      init: { bindEvents: noop },\n      undoManager: {\n        beforeChange: (locks, beforeBookmark) => beforeChange$1(editor, locks, beforeBookmark),\n        add: (undoManager, index, locks, beforeBookmark, level, event) => addUndoLevel$1(editor, undoManager, index, locks, beforeBookmark, level, event),\n        undo: (undoManager, locks, index) => undo$1(editor, undoManager, locks, index),\n        redo: (index, data) => redo$1(editor, index, data),\n        clear: (undoManager, index) => clear$1(editor, undoManager, index),\n        reset: undoManager => reset$1(undoManager),\n        hasUndo: (undoManager, index) => hasUndo$1(editor, undoManager, index),\n        hasRedo: (undoManager, index) => hasRedo$1(undoManager, index),\n        transact: (undoManager, locks, callback) => transact$1(undoManager, locks, callback),\n        ignore: (locks, callback) => ignore$1(locks, callback),\n        extra: (undoManager, index, callback1, callback2) => extra$1(editor, undoManager, index, callback1, callback2)\n      },\n      formatter: {\n        match: (name, vars, node, similar) => match$2(editor, name, vars, node, similar),\n        matchAll: (names, vars) => matchAll(editor, names, vars),\n        matchNode: (node, name, vars, similar) => matchNode(editor, node, name, vars, similar),\n        canApply: name => canApply(editor, name),\n        closest: names => closest$1(editor, names),\n        apply: (name, vars, node) => applyFormat$1(editor, name, vars, node),\n        remove: (name, vars, node, similar) => remove$2(editor, name, vars, node, similar),\n        toggle: (name, vars, node) => toggle(editor, name, vars, node),\n        formatChanged: (registeredFormatListeners, formats, callback, similar, vars) => formatChangedInternal(editor, registeredFormatListeners, formats, callback, similar, vars)\n      },\n      editor: {\n        getContent: args => getContentInternal(editor, args),\n        setContent: (content, args) => setContentInternal(editor, content, args),\n        insertContent: (value, details) => insertHtmlAtCaret(editor, value, details),\n        addVisual: elm => addVisualInternal(editor, elm)\n      },\n      selection: { getContent: (format, args) => getSelectedContentInternal(editor, format, args) },\n      autocompleter: {\n        addDecoration: range => create$9(editor, range),\n        removeDecoration: () => remove$3(editor, SugarElement.fromDom(editor.getBody()))\n      },\n      raw: { getModel: () => Optional.none() }\n    });\n    const makeRtcAdaptor = rtcEditor => {\n      const defaultVars = vars => isObject(vars) ? vars : {};\n      const {init, undoManager, formatter, editor, selection, autocompleter, raw} = rtcEditor;\n      return {\n        init: { bindEvents: init.bindEvents },\n        undoManager: {\n          beforeChange: undoManager.beforeChange,\n          add: undoManager.add,\n          undo: undoManager.undo,\n          redo: undoManager.redo,\n          clear: undoManager.clear,\n          reset: undoManager.reset,\n          hasUndo: undoManager.hasUndo,\n          hasRedo: undoManager.hasRedo,\n          transact: (_undoManager, _locks, fn) => undoManager.transact(fn),\n          ignore: (_locks, callback) => undoManager.ignore(callback),\n          extra: (_undoManager, _index, callback1, callback2) => undoManager.extra(callback1, callback2)\n        },\n        formatter: {\n          match: (name, vars, _node, similar) => formatter.match(name, defaultVars(vars), similar),\n          matchAll: formatter.matchAll,\n          matchNode: formatter.matchNode,\n          canApply: name => formatter.canApply(name),\n          closest: names => formatter.closest(names),\n          apply: (name, vars, _node) => formatter.apply(name, defaultVars(vars)),\n          remove: (name, vars, _node, _similar) => formatter.remove(name, defaultVars(vars)),\n          toggle: (name, vars, _node) => formatter.toggle(name, defaultVars(vars)),\n          formatChanged: (_rfl, formats, callback, similar, vars) => formatter.formatChanged(formats, callback, similar, vars)\n        },\n        editor: {\n          getContent: args => editor.getContent(args),\n          setContent: (content, args) => {\n            return {\n              content: editor.setContent(content, args),\n              html: ''\n            };\n          },\n          insertContent: (content, _details) => {\n            editor.insertContent(content);\n            return '';\n          },\n          addVisual: editor.addVisual\n        },\n        selection: { getContent: (_format, args) => selection.getContent(args) },\n        autocompleter: {\n          addDecoration: autocompleter.addDecoration,\n          removeDecoration: autocompleter.removeDecoration\n        },\n        raw: { getModel: () => Optional.some(raw.getRawModel()) }\n      };\n    };\n    const makeNoopAdaptor = () => {\n      const nul = constant(null);\n      const empty = constant('');\n      return {\n        init: { bindEvents: noop },\n        undoManager: {\n          beforeChange: noop,\n          add: nul,\n          undo: nul,\n          redo: nul,\n          clear: noop,\n          reset: noop,\n          hasUndo: never,\n          hasRedo: never,\n          transact: nul,\n          ignore: noop,\n          extra: noop\n        },\n        formatter: {\n          match: never,\n          matchAll: constant([]),\n          matchNode: constant(undefined),\n          canApply: never,\n          closest: empty,\n          apply: noop,\n          remove: noop,\n          toggle: noop,\n          formatChanged: constant({ unbind: noop })\n        },\n        editor: {\n          getContent: empty,\n          setContent: constant({\n            content: '',\n            html: ''\n          }),\n          insertContent: constant(''),\n          addVisual: noop\n        },\n        selection: { getContent: empty },\n        autocompleter: {\n          addDecoration: noop,\n          removeDecoration: noop\n        },\n        raw: { getModel: constant(Optional.none()) }\n      };\n    };\n    const isRtc = editor => has$2(editor.plugins, 'rtc');\n    const getRtcSetup = editor => get$a(editor.plugins, 'rtc').bind(rtcPlugin => Optional.from(rtcPlugin.setup));\n    const setup$s = editor => {\n      const editorCast = editor;\n      return getRtcSetup(editor).fold(() => {\n        editorCast.rtcInstance = makePlainAdaptor(editor);\n        return Optional.none();\n      }, setup => {\n        editorCast.rtcInstance = makeNoopAdaptor();\n        return Optional.some(() => setup().then(rtcEditor => {\n          editorCast.rtcInstance = makeRtcAdaptor(rtcEditor);\n          return rtcEditor.rtc.isRemote;\n        }));\n      });\n    };\n    const getRtcInstanceWithFallback = editor => editor.rtcInstance ? editor.rtcInstance : makePlainAdaptor(editor);\n    const getRtcInstanceWithError = editor => {\n      const rtcInstance = editor.rtcInstance;\n      if (!rtcInstance) {\n        throw new Error('Failed to get RTC instance not yet initialized.');\n      } else {\n        return rtcInstance;\n      }\n    };\n    const beforeChange = (editor, locks, beforeBookmark) => {\n      getRtcInstanceWithError(editor).undoManager.beforeChange(locks, beforeBookmark);\n    };\n    const addUndoLevel = (editor, undoManager, index, locks, beforeBookmark, level, event) => getRtcInstanceWithError(editor).undoManager.add(undoManager, index, locks, beforeBookmark, level, event);\n    const undo = (editor, undoManager, locks, index) => getRtcInstanceWithError(editor).undoManager.undo(undoManager, locks, index);\n    const redo = (editor, index, data) => getRtcInstanceWithError(editor).undoManager.redo(index, data);\n    const clear = (editor, undoManager, index) => {\n      getRtcInstanceWithError(editor).undoManager.clear(undoManager, index);\n    };\n    const reset = (editor, undoManager) => {\n      getRtcInstanceWithError(editor).undoManager.reset(undoManager);\n    };\n    const hasUndo = (editor, undoManager, index) => getRtcInstanceWithError(editor).undoManager.hasUndo(undoManager, index);\n    const hasRedo = (editor, undoManager, index) => getRtcInstanceWithError(editor).undoManager.hasRedo(undoManager, index);\n    const transact = (editor, undoManager, locks, callback) => getRtcInstanceWithError(editor).undoManager.transact(undoManager, locks, callback);\n    const ignore = (editor, locks, callback) => {\n      getRtcInstanceWithError(editor).undoManager.ignore(locks, callback);\n    };\n    const extra = (editor, undoManager, index, callback1, callback2) => {\n      getRtcInstanceWithError(editor).undoManager.extra(undoManager, index, callback1, callback2);\n    };\n    const matchFormat = (editor, name, vars, node, similar) => getRtcInstanceWithError(editor).formatter.match(name, vars, node, similar);\n    const matchAllFormats = (editor, names, vars) => getRtcInstanceWithError(editor).formatter.matchAll(names, vars);\n    const matchNodeFormat = (editor, node, name, vars, similar) => getRtcInstanceWithError(editor).formatter.matchNode(node, name, vars, similar);\n    const canApplyFormat = (editor, name) => getRtcInstanceWithError(editor).formatter.canApply(name);\n    const closestFormat = (editor, names) => getRtcInstanceWithError(editor).formatter.closest(names);\n    const applyFormat = (editor, name, vars, node) => {\n      getRtcInstanceWithError(editor).formatter.apply(name, vars, node);\n    };\n    const removeFormat = (editor, name, vars, node, similar) => {\n      getRtcInstanceWithError(editor).formatter.remove(name, vars, node, similar);\n    };\n    const toggleFormat = (editor, name, vars, node) => {\n      getRtcInstanceWithError(editor).formatter.toggle(name, vars, node);\n    };\n    const formatChanged = (editor, registeredFormatListeners, formats, callback, similar, vars) => getRtcInstanceWithError(editor).formatter.formatChanged(registeredFormatListeners, formats, callback, similar, vars);\n    const getContent$2 = (editor, args) => getRtcInstanceWithFallback(editor).editor.getContent(args);\n    const setContent$2 = (editor, content, args) => getRtcInstanceWithFallback(editor).editor.setContent(content, args);\n    const insertContent$1 = (editor, value, details) => getRtcInstanceWithFallback(editor).editor.insertContent(value, details);\n    const getSelectedContent = (editor, format, args) => getRtcInstanceWithError(editor).selection.getContent(format, args);\n    const addVisual$1 = (editor, elm) => getRtcInstanceWithError(editor).editor.addVisual(elm);\n    const bindEvents = editor => getRtcInstanceWithError(editor).init.bindEvents();\n    const addAutocompleterDecoration = (editor, range) => getRtcInstanceWithError(editor).autocompleter.addDecoration(range);\n    const removeAutocompleterDecoration = editor => getRtcInstanceWithError(editor).autocompleter.removeDecoration();\n\n    const getContent$1 = (editor, args = {}) => {\n      const format = args.format ? args.format : 'html';\n      return getSelectedContent(editor, format, args);\n    };\n\n    const removeEmpty = text => {\n      if (text.dom.length === 0) {\n        remove$6(text);\n        return Optional.none();\n      } else {\n        return Optional.some(text);\n      }\n    };\n    const walkPastBookmark = (node, start) => node.filter(elm => BookmarkManager.isBookmarkNode(elm.dom)).bind(start ? nextSibling : prevSibling);\n    const merge$1 = (outer, inner, rng, start) => {\n      const outerElm = outer.dom;\n      const innerElm = inner.dom;\n      const oldLength = start ? outerElm.length : innerElm.length;\n      if (start) {\n        mergeTextNodes(outerElm, innerElm, false, !start);\n        rng.setStart(innerElm, oldLength);\n      } else {\n        mergeTextNodes(innerElm, outerElm, false, !start);\n        rng.setEnd(innerElm, oldLength);\n      }\n    };\n    const normalizeTextIfRequired = (inner, start) => {\n      parent(inner).each(root => {\n        const text = inner.dom;\n        if (start && needsToBeNbspLeft(root, CaretPosition(text, 0))) {\n          normalizeWhitespaceAfter(text, 0);\n        } else if (!start && needsToBeNbspRight(root, CaretPosition(text, text.length))) {\n          normalizeWhitespaceBefore(text, text.length);\n        }\n      });\n    };\n    const mergeAndNormalizeText = (outerNode, innerNode, rng, start) => {\n      outerNode.bind(outer => {\n        const normalizer = start ? normalizeWhitespaceBefore : normalizeWhitespaceAfter;\n        normalizer(outer.dom, start ? outer.dom.length : 0);\n        return innerNode.filter(isText$b).map(inner => merge$1(outer, inner, rng, start));\n      }).orThunk(() => {\n        const innerTextNode = walkPastBookmark(innerNode, start).or(innerNode).filter(isText$b);\n        return innerTextNode.map(inner => normalizeTextIfRequired(inner, start));\n      });\n    };\n    const rngSetContent = (rng, fragment) => {\n      const firstChild = Optional.from(fragment.firstChild).map(SugarElement.fromDom);\n      const lastChild = Optional.from(fragment.lastChild).map(SugarElement.fromDom);\n      rng.deleteContents();\n      rng.insertNode(fragment);\n      const prevText = firstChild.bind(prevSibling).filter(isText$b).bind(removeEmpty);\n      const nextText = lastChild.bind(nextSibling).filter(isText$b).bind(removeEmpty);\n      mergeAndNormalizeText(prevText, firstChild, rng, true);\n      mergeAndNormalizeText(nextText, lastChild, rng, false);\n      rng.collapse(false);\n    };\n    const setupArgs$2 = (args, content) => ({\n      format: 'html',\n      ...args,\n      set: true,\n      selection: true,\n      content\n    });\n    const cleanContent = (editor, args) => {\n      if (args.format !== 'raw') {\n        const rng = editor.selection.getRng();\n        const contextBlock = editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock);\n        const contextArgs = contextBlock ? { context: contextBlock.nodeName.toLowerCase() } : {};\n        const node = editor.parser.parse(args.content, {\n          forced_root_block: false,\n          ...contextArgs,\n          ...args\n        });\n        return HtmlSerializer({ validate: false }, editor.schema).serialize(node);\n      } else {\n        return args.content;\n      }\n    };\n    const setContent$1 = (editor, content, args = {}) => {\n      const defaultedArgs = setupArgs$2(args, content);\n      preProcessSetContent(editor, defaultedArgs).each(updatedArgs => {\n        const cleanedContent = cleanContent(editor, updatedArgs);\n        const rng = editor.selection.getRng();\n        rngSetContent(rng, rng.createContextualFragment(cleanedContent));\n        editor.selection.setRng(rng);\n        scrollRangeIntoView(editor, rng);\n        postProcessSetContent(editor, cleanedContent, updatedArgs);\n      });\n    };\n\n    const deleteFromCallbackMap = (callbackMap, selector, callback) => {\n      if (has$2(callbackMap, selector)) {\n        const newCallbacks = filter$5(callbackMap[selector], cb => cb !== callback);\n        if (newCallbacks.length === 0) {\n          delete callbackMap[selector];\n        } else {\n          callbackMap[selector] = newCallbacks;\n        }\n      }\n    };\n    var SelectorChanged = (dom, editor) => {\n      let selectorChangedData;\n      let currentSelectors;\n      const findMatchingNode = (selector, nodes) => find$2(nodes, node => dom.is(node, selector));\n      const getParents = elem => dom.getParents(elem, undefined, dom.getRoot());\n      const setup = () => {\n        selectorChangedData = {};\n        currentSelectors = {};\n        editor.on('NodeChange', e => {\n          const node = e.element;\n          const parents = getParents(node);\n          const matchedSelectors = {};\n          each$d(selectorChangedData, (callbacks, selector) => {\n            findMatchingNode(selector, parents).each(node => {\n              if (!currentSelectors[selector]) {\n                each$e(callbacks, callback => {\n                  callback(true, {\n                    node,\n                    selector,\n                    parents\n                  });\n                });\n                currentSelectors[selector] = callbacks;\n              }\n              matchedSelectors[selector] = callbacks;\n            });\n          });\n          each$d(currentSelectors, (callbacks, selector) => {\n            if (!matchedSelectors[selector]) {\n              delete currentSelectors[selector];\n              each$e(callbacks, callback => {\n                callback(false, {\n                  node,\n                  selector,\n                  parents\n                });\n              });\n            }\n          });\n        });\n      };\n      return {\n        selectorChangedWithUnbind: (selector, callback) => {\n          if (!selectorChangedData) {\n            setup();\n          }\n          if (!selectorChangedData[selector]) {\n            selectorChangedData[selector] = [];\n          }\n          selectorChangedData[selector].push(callback);\n          findMatchingNode(selector, getParents(editor.selection.getStart())).each(() => {\n            currentSelectors[selector] = selectorChangedData[selector];\n          });\n          return {\n            unbind: () => {\n              deleteFromCallbackMap(selectorChangedData, selector, callback);\n              deleteFromCallbackMap(currentSelectors, selector, callback);\n            }\n          };\n        }\n      };\n    };\n\n    const isAttachedToDom = node => {\n      return !!(node && node.ownerDocument) && contains(SugarElement.fromDom(node.ownerDocument), SugarElement.fromDom(node));\n    };\n    const isValidRange = rng => {\n      if (!rng) {\n        return false;\n      } else {\n        return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);\n      }\n    };\n    const EditorSelection = (dom, win, serializer, editor) => {\n      let selectedRange;\n      let explicitRange;\n      const {selectorChangedWithUnbind} = SelectorChanged(dom, editor);\n      const setCursorLocation = (node, offset) => {\n        const rng = dom.createRng();\n        if (isNonNullable(node) && isNonNullable(offset)) {\n          rng.setStart(node, offset);\n          rng.setEnd(node, offset);\n          setRng(rng);\n          collapse(false);\n        } else {\n          moveEndPoint(dom, rng, editor.getBody(), true);\n          setRng(rng);\n        }\n      };\n      const getContent = args => getContent$1(editor, args);\n      const setContent = (content, args) => setContent$1(editor, content, args);\n      const getStart$1 = real => getStart(editor.getBody(), getRng$1(), real);\n      const getEnd = real => getEnd$1(editor.getBody(), getRng$1(), real);\n      const getBookmark = (type, normalized) => bookmarkManager.getBookmark(type, normalized);\n      const moveToBookmark = bookmark => bookmarkManager.moveToBookmark(bookmark);\n      const select$1 = (node, content) => {\n        select(dom, node, content).each(setRng);\n        return node;\n      };\n      const isCollapsed = () => {\n        const rng = getRng$1(), sel = getSel();\n        if (!rng || rng.item) {\n          return false;\n        }\n        if (rng.compareEndPoints) {\n          return rng.compareEndPoints('StartToEnd', rng) === 0;\n        }\n        return !sel || rng.collapsed;\n      };\n      const collapse = toStart => {\n        const rng = getRng$1();\n        rng.collapse(!!toStart);\n        setRng(rng);\n      };\n      const getSel = () => win.getSelection ? win.getSelection() : win.document.selection;\n      const getRng$1 = () => {\n        let rng;\n        const tryCompareBoundaryPoints = (how, sourceRange, destinationRange) => {\n          try {\n            return sourceRange.compareBoundaryPoints(how, destinationRange);\n          } catch (ex) {\n            return -1;\n          }\n        };\n        const doc = win.document;\n        if (isNonNullable(editor.bookmark) && !hasFocus(editor)) {\n          const bookmark = getRng(editor);\n          if (bookmark.isSome()) {\n            return bookmark.map(r => processRanges(editor, [r])[0]).getOr(doc.createRange());\n          }\n        }\n        try {\n          const selection = getSel();\n          if (selection && !isRestrictedNode(selection.anchorNode)) {\n            if (selection.rangeCount > 0) {\n              rng = selection.getRangeAt(0);\n            } else {\n              rng = doc.createRange();\n            }\n            rng = processRanges(editor, [rng])[0];\n          }\n        } catch (ex) {\n        }\n        if (!rng) {\n          rng = doc.createRange();\n        }\n        if (isDocument$1(rng.startContainer) && rng.collapsed) {\n          const elm = dom.getRoot();\n          rng.setStart(elm, 0);\n          rng.setEnd(elm, 0);\n        }\n        if (selectedRange && explicitRange) {\n          if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) {\n            rng = explicitRange;\n          } else {\n            selectedRange = null;\n            explicitRange = null;\n          }\n        }\n        return rng;\n      };\n      const setRng = (rng, forward) => {\n        if (!isValidRange(rng)) {\n          return;\n        }\n        const sel = getSel();\n        const evt = editor.dispatch('SetSelectionRange', {\n          range: rng,\n          forward\n        });\n        rng = evt.range;\n        if (sel) {\n          explicitRange = rng;\n          try {\n            sel.removeAllRanges();\n            sel.addRange(rng);\n          } catch (ex) {\n          }\n          if (forward === false && sel.extend) {\n            sel.collapse(rng.endContainer, rng.endOffset);\n            sel.extend(rng.startContainer, rng.startOffset);\n          }\n          selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n        }\n        if (!rng.collapsed && rng.startContainer === rng.endContainer && (sel === null || sel === void 0 ? void 0 : sel.setBaseAndExtent)) {\n          if (rng.endOffset - rng.startOffset < 2) {\n            if (rng.startContainer.hasChildNodes()) {\n              const node = rng.startContainer.childNodes[rng.startOffset];\n              if (node && node.nodeName === 'IMG') {\n                sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset);\n                if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) {\n                  sel.setBaseAndExtent(node, 0, node, 1);\n                }\n              }\n            }\n          }\n        }\n        editor.dispatch('AfterSetSelectionRange', {\n          range: rng,\n          forward\n        });\n      };\n      const setNode = elm => {\n        setContent(dom.getOuterHTML(elm));\n        return elm;\n      };\n      const getNode$1 = () => getNode(editor.getBody(), getRng$1());\n      const getSelectedBlocks$1 = (startElm, endElm) => getSelectedBlocks(dom, getRng$1(), startElm, endElm);\n      const isForward = () => {\n        const sel = getSel();\n        const anchorNode = sel === null || sel === void 0 ? void 0 : sel.anchorNode;\n        const focusNode = sel === null || sel === void 0 ? void 0 : sel.focusNode;\n        if (!sel || !anchorNode || !focusNode || isRestrictedNode(anchorNode) || isRestrictedNode(focusNode)) {\n          return true;\n        }\n        const anchorRange = dom.createRng();\n        const focusRange = dom.createRng();\n        try {\n          anchorRange.setStart(anchorNode, sel.anchorOffset);\n          anchorRange.collapse(true);\n          focusRange.setStart(focusNode, sel.focusOffset);\n          focusRange.collapse(true);\n        } catch (e) {\n          return true;\n        }\n        return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;\n      };\n      const normalize = () => {\n        const rng = getRng$1();\n        const sel = getSel();\n        if (!hasMultipleRanges(sel) && hasAnyRanges(editor)) {\n          const normRng = normalize$2(dom, rng);\n          normRng.each(normRng => {\n            setRng(normRng, isForward());\n          });\n          return normRng.getOr(rng);\n        }\n        return rng;\n      };\n      const selectorChanged = (selector, callback) => {\n        selectorChangedWithUnbind(selector, callback);\n        return exports;\n      };\n      const getScrollContainer = () => {\n        let scrollContainer;\n        let node = dom.getRoot();\n        while (node && node.nodeName !== 'BODY') {\n          if (node.scrollHeight > node.clientHeight) {\n            scrollContainer = node;\n            break;\n          }\n          node = node.parentNode;\n        }\n        return scrollContainer;\n      };\n      const scrollIntoView = (elm, alignToTop) => {\n        if (isNonNullable(elm)) {\n          scrollElementIntoView(editor, elm, alignToTop);\n        } else {\n          scrollRangeIntoView(editor, getRng$1(), alignToTop);\n        }\n      };\n      const placeCaretAt = (clientX, clientY) => setRng(fromPoint(clientX, clientY, editor.getDoc()));\n      const getBoundingClientRect = () => {\n        const rng = getRng$1();\n        return rng.collapsed ? CaretPosition.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();\n      };\n      const destroy = () => {\n        win = selectedRange = explicitRange = null;\n        controlSelection.destroy();\n      };\n      const expand = (options = { type: 'word' }) => setRng(RangeUtils(dom).expand(getRng$1(), options));\n      const exports = {\n        dom,\n        win,\n        serializer,\n        editor,\n        expand,\n        collapse,\n        setCursorLocation,\n        getContent,\n        setContent,\n        getBookmark,\n        moveToBookmark,\n        select: select$1,\n        isCollapsed,\n        isForward,\n        setNode,\n        getNode: getNode$1,\n        getSel,\n        setRng,\n        getRng: getRng$1,\n        getStart: getStart$1,\n        getEnd,\n        getSelectedBlocks: getSelectedBlocks$1,\n        normalize,\n        selectorChanged,\n        selectorChangedWithUnbind,\n        getScrollContainer,\n        scrollIntoView,\n        placeCaretAt,\n        getBoundingClientRect,\n        destroy\n      };\n      const bookmarkManager = BookmarkManager(exports);\n      const controlSelection = ControlSelection(exports, editor);\n      exports.bookmarkManager = bookmarkManager;\n      exports.controlSelection = controlSelection;\n      return exports;\n    };\n\n    const register$3 = (htmlParser, settings, dom) => {\n      htmlParser.addAttributeFilter('data-mce-tabindex', (nodes, name) => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          node.attr('tabindex', node.attr('data-mce-tabindex'));\n          node.attr(name, null);\n        }\n      });\n      htmlParser.addAttributeFilter('src,href,style', (nodes, name) => {\n        const internalName = 'data-mce-' + name;\n        const urlConverter = settings.url_converter;\n        const urlConverterScope = settings.url_converter_scope;\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          let value = node.attr(internalName);\n          if (value !== undefined) {\n            node.attr(name, value.length > 0 ? value : null);\n            node.attr(internalName, null);\n          } else {\n            value = node.attr(name);\n            if (name === 'style') {\n              value = dom.serializeStyle(dom.parseStyle(value), node.name);\n            } else if (urlConverter) {\n              value = urlConverter.call(urlConverterScope, value, name, node.name);\n            }\n            node.attr(name, value.length > 0 ? value : null);\n          }\n        }\n      });\n      htmlParser.addAttributeFilter('class', nodes => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          let value = node.attr('class');\n          if (value) {\n            value = value.replace(/(?:^|\\s)mce-item-\\w+(?!\\S)/g, '');\n            node.attr('class', value.length > 0 ? value : null);\n          }\n        }\n      });\n      htmlParser.addAttributeFilter('data-mce-type', (nodes, name, args) => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          if (node.attr('data-mce-type') === 'bookmark' && !args.cleanup) {\n            const hasChildren = Optional.from(node.firstChild).exists(firstChild => {\n              var _a;\n              return !isZwsp((_a = firstChild.value) !== null && _a !== void 0 ? _a : '');\n            });\n            if (hasChildren) {\n              node.unwrap();\n            } else {\n              node.remove();\n            }\n          }\n        }\n      });\n      htmlParser.addNodeFilter('noscript', nodes => {\n        var _a;\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i].firstChild;\n          if (node) {\n            node.value = Entities.decode((_a = node.value) !== null && _a !== void 0 ? _a : '');\n          }\n        }\n      });\n      htmlParser.addNodeFilter('script,style', (nodes, name) => {\n        var _a;\n        const trim = value => {\n          return value.replace(/(<!--\\[CDATA\\[|\\]\\]-->)/g, '\\n').replace(/^[\\r\\n]*|[\\r\\n]*$/g, '').replace(/^\\s*((<!--)?(\\s*\\/\\/)?\\s*<!\\[CDATA\\[|(<!--\\s*)?\\/\\*\\s*<!\\[CDATA\\[\\s*\\*\\/|(\\/\\/)?\\s*<!--|\\/\\*\\s*<!--\\s*\\*\\/)\\s*[\\r\\n]*/gi, '').replace(/\\s*(\\/\\*\\s*\\]\\]>\\s*\\*\\/(-->)?|\\s*\\/\\/\\s*\\]\\]>(-->)?|\\/\\/\\s*(-->)?|\\]\\]>|\\/\\*\\s*-->\\s*\\*\\/|\\s*-->\\s*)\\s*$/g, '');\n        };\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          const firstChild = node.firstChild;\n          const value = (_a = firstChild === null || firstChild === void 0 ? void 0 : firstChild.value) !== null && _a !== void 0 ? _a : '';\n          if (name === 'script') {\n            const type = node.attr('type');\n            if (type) {\n              node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\\-/, ''));\n            }\n            if (settings.element_format === 'xhtml' && firstChild && value.length > 0) {\n              firstChild.value = '// <![CDATA[\\n' + trim(value) + '\\n// ]]>';\n            }\n          } else {\n            if (settings.element_format === 'xhtml' && firstChild && value.length > 0) {\n              firstChild.value = '<!--\\n' + trim(value) + '\\n-->';\n            }\n          }\n        }\n      });\n      htmlParser.addNodeFilter('#comment', nodes => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          const value = node.value;\n          if (settings.preserve_cdata && (value === null || value === void 0 ? void 0 : value.indexOf('[CDATA[')) === 0) {\n            node.name = '#cdata';\n            node.type = 4;\n            node.value = dom.decode(value.replace(/^\\[CDATA\\[|\\]\\]$/g, ''));\n          } else if ((value === null || value === void 0 ? void 0 : value.indexOf('mce:protected ')) === 0) {\n            node.name = '#text';\n            node.type = 3;\n            node.raw = true;\n            node.value = unescape(value).substr(14);\n          }\n        }\n      });\n      htmlParser.addNodeFilter('xml:namespace,input', (nodes, name) => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          if (node.type === 7) {\n            node.remove();\n          } else if (node.type === 1) {\n            if (name === 'input' && !node.attr('type')) {\n              node.attr('type', 'text');\n            }\n          }\n        }\n      });\n      htmlParser.addAttributeFilter('data-mce-type', nodes => {\n        each$e(nodes, node => {\n          if (node.attr('data-mce-type') === 'format-caret') {\n            if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {\n              node.remove();\n            } else {\n              node.unwrap();\n            }\n          }\n        });\n      });\n      htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,data-mce-block,' + 'data-mce-type,data-mce-resize,data-mce-placeholder', (nodes, name) => {\n        let i = nodes.length;\n        while (i--) {\n          nodes[i].attr(name, null);\n        }\n      });\n    };\n    const trimTrailingBr = rootNode => {\n      const isBr = node => {\n        return (node === null || node === void 0 ? void 0 : node.name) === 'br';\n      };\n      const brNode1 = rootNode.lastChild;\n      if (isBr(brNode1)) {\n        const brNode2 = brNode1.prev;\n        if (isBr(brNode2)) {\n          brNode1.remove();\n          brNode2.remove();\n        }\n      }\n    };\n\n    const preProcess$1 = (editor, node, args) => {\n      let oldDoc;\n      const dom = editor.dom;\n      let clonedNode = node.cloneNode(true);\n      const impl = document.implementation;\n      if (impl.createHTMLDocument) {\n        const doc = impl.createHTMLDocument('');\n        Tools.each(clonedNode.nodeName === 'BODY' ? clonedNode.childNodes : [clonedNode], node => {\n          doc.body.appendChild(doc.importNode(node, true));\n        });\n        if (clonedNode.nodeName !== 'BODY') {\n          clonedNode = doc.body.firstChild;\n        } else {\n          clonedNode = doc.body;\n        }\n        oldDoc = dom.doc;\n        dom.doc = doc;\n      }\n      firePreProcess(editor, {\n        ...args,\n        node: clonedNode\n      });\n      if (oldDoc) {\n        dom.doc = oldDoc;\n      }\n      return clonedNode;\n    };\n    const shouldFireEvent = (editor, args) => {\n      return isNonNullable(editor) && editor.hasEventListeners('PreProcess') && !args.no_events;\n    };\n    const process$1 = (editor, node, args) => {\n      return shouldFireEvent(editor, args) ? preProcess$1(editor, node, args) : node;\n    };\n\n    const addTempAttr = (htmlParser, tempAttrs, name) => {\n      if (Tools.inArray(tempAttrs, name) === -1) {\n        htmlParser.addAttributeFilter(name, (nodes, name) => {\n          let i = nodes.length;\n          while (i--) {\n            nodes[i].attr(name, null);\n          }\n        });\n        tempAttrs.push(name);\n      }\n    };\n    const postProcess = (editor, args, content) => {\n      if (!args.no_events && editor) {\n        const outArgs = firePostProcess(editor, {\n          ...args,\n          content\n        });\n        return outArgs.content;\n      } else {\n        return content;\n      }\n    };\n    const getHtmlFromNode = (dom, node, args) => {\n      const html = trim$1(args.getInner ? node.innerHTML : dom.getOuterHTML(node));\n      return args.selection || isWsPreserveElement(SugarElement.fromDom(node)) ? html : Tools.trim(html);\n    };\n    const parseHtml = (htmlParser, html, args) => {\n      const parserArgs = args.selection ? {\n        forced_root_block: false,\n        ...args\n      } : args;\n      const rootNode = htmlParser.parse(html, parserArgs);\n      trimTrailingBr(rootNode);\n      return rootNode;\n    };\n    const serializeNode = (settings, schema, node) => {\n      const htmlSerializer = HtmlSerializer(settings, schema);\n      return htmlSerializer.serialize(node);\n    };\n    const toHtml = (editor, settings, schema, rootNode, args) => {\n      const content = serializeNode(settings, schema, rootNode);\n      return postProcess(editor, args, content);\n    };\n    const DomSerializerImpl = (settings, editor) => {\n      const tempAttrs = ['data-mce-selected'];\n      const dom = editor && editor.dom ? editor.dom : DOMUtils.DOM;\n      const schema = editor && editor.schema ? editor.schema : Schema(settings);\n      settings.entity_encoding = settings.entity_encoding || 'named';\n      settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true;\n      const htmlParser = DomParser(settings, schema);\n      register$3(htmlParser, settings, dom);\n      const serialize = (node, parserArgs = {}) => {\n        const args = {\n          format: 'html',\n          ...parserArgs\n        };\n        const targetNode = process$1(editor, node, args);\n        const html = getHtmlFromNode(dom, targetNode, args);\n        const rootNode = parseHtml(htmlParser, html, args);\n        return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args);\n      };\n      return {\n        schema,\n        addNodeFilter: htmlParser.addNodeFilter,\n        addAttributeFilter: htmlParser.addAttributeFilter,\n        serialize: serialize,\n        addRules: schema.addValidElements,\n        setRules: schema.setValidElements,\n        addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),\n        getTempAttrs: constant(tempAttrs),\n        getNodeFilters: htmlParser.getNodeFilters,\n        getAttributeFilters: htmlParser.getAttributeFilters,\n        removeNodeFilter: htmlParser.removeNodeFilter,\n        removeAttributeFilter: htmlParser.removeAttributeFilter\n      };\n    };\n\n    const DomSerializer = (settings, editor) => {\n      const domSerializer = DomSerializerImpl(settings, editor);\n      return {\n        schema: domSerializer.schema,\n        addNodeFilter: domSerializer.addNodeFilter,\n        addAttributeFilter: domSerializer.addAttributeFilter,\n        serialize: domSerializer.serialize,\n        addRules: domSerializer.addRules,\n        setRules: domSerializer.setRules,\n        addTempAttr: domSerializer.addTempAttr,\n        getTempAttrs: domSerializer.getTempAttrs,\n        getNodeFilters: domSerializer.getNodeFilters,\n        getAttributeFilters: domSerializer.getAttributeFilters,\n        removeNodeFilter: domSerializer.removeNodeFilter,\n        removeAttributeFilter: domSerializer.removeAttributeFilter\n      };\n    };\n\n    const defaultFormat$1 = 'html';\n    const setupArgs$1 = (args, format) => ({\n      ...args,\n      format,\n      get: true,\n      getInner: true\n    });\n    const getContent = (editor, args = {}) => {\n      const format = args.format ? args.format : defaultFormat$1;\n      const defaultedArgs = setupArgs$1(args, format);\n      return preProcessGetContent(editor, defaultedArgs).fold(identity, updatedArgs => {\n        const content = getContent$2(editor, updatedArgs);\n        return postProcessGetContent(editor, content, updatedArgs);\n      });\n    };\n\n    const defaultFormat = 'html';\n    const setupArgs = (args, content) => ({\n      format: defaultFormat,\n      ...args,\n      set: true,\n      content\n    });\n    const setContent = (editor, content, args = {}) => {\n      const defaultedArgs = setupArgs(args, content);\n      return preProcessSetContent(editor, defaultedArgs).map(updatedArgs => {\n        const result = setContent$2(editor, updatedArgs.content, updatedArgs);\n        postProcessSetContent(editor, result.html, updatedArgs);\n        return result.content;\n      }).getOr(content);\n    };\n\n    const removedOptions = ('autoresize_on_init,content_editable_state,padd_empty_with_br,block_elements,' + 'boolean_attributes,editor_deselector,editor_selector,elements,file_browser_callback_types,filepicker_validator_handler,' + 'force_hex_style_colors,force_p_newlines,gecko_spellcheck,images_dataimg_filter,media_scripts,mode,move_caret_before_on_enter_elements,' + 'non_empty_elements,self_closing_elements,short_ended_elements,special,spellchecker_select_languages,spellchecker_whitelist,' + 'tab_focus,tabfocus_elements,table_responsive_width,text_block_elements,text_inline_elements,toolbar_drawer,types,validate,whitespace_elements,' + 'paste_enable_default_filters,paste_filter_drop,paste_word_valid_elements,paste_retain_style_properties,paste_convert_word_fake_lists').split(',');\n    const removedPlugins = 'bbcode,colorpicker,contextmenu,fullpage,legacyoutput,spellchecker,textcolor'.split(',');\n    const getRemovedOptions = options => {\n      const settingNames = filter$5(removedOptions, setting => has$2(options, setting));\n      const forcedRootBlock = options.forced_root_block;\n      if (forcedRootBlock === false || forcedRootBlock === '') {\n        settingNames.push('forced_root_block (false only)');\n      }\n      return sort(settingNames);\n    };\n    const getRemovedPlugins = options => {\n      const plugins = Tools.makeMap(options.plugins, ' ');\n      const hasPlugin = plugin => has$2(plugins, plugin);\n      const pluginNames = filter$5(removedPlugins, hasPlugin);\n      return sort(pluginNames);\n    };\n    const logRemovedWarnings = (rawOptions, normalizedOptions) => {\n      const removedOptions = getRemovedOptions(rawOptions);\n      const removedPlugins = getRemovedPlugins(normalizedOptions);\n      const hasRemovedPlugins = removedPlugins.length > 0;\n      const hasRemovedOptions = removedOptions.length > 0;\n      const isLegacyMobileTheme = normalizedOptions.theme === 'mobile';\n      if (hasRemovedPlugins || hasRemovedOptions || isLegacyMobileTheme) {\n        const listJoiner = '\\n- ';\n        const themesMessage = isLegacyMobileTheme ? `\\n\\nThemes:${ listJoiner }mobile` : '';\n        const pluginsMessage = hasRemovedPlugins ? `\\n\\nPlugins:${ listJoiner }${ removedPlugins.join(listJoiner) }` : '';\n        const optionsMessage = hasRemovedOptions ? `\\n\\nOptions:${ listJoiner }${ removedOptions.join(listJoiner) }` : '';\n        console.warn('The following deprecated features are currently enabled and have been removed in TinyMCE 6.0. These features will no longer work and should be removed from the TinyMCE configuration. ' + 'See https://www.tiny.cloud/docs/tinymce/6/migration-from-5x/ for more information.' + themesMessage + pluginsMessage + optionsMessage);\n      }\n    };\n    const logWarnings = (rawOptions, normalizedOptions) => {\n      logRemovedWarnings(rawOptions, normalizedOptions);\n    };\n\n    const DOM$8 = DOMUtils.DOM;\n    const restoreOriginalStyles = editor => {\n      DOM$8.setStyle(editor.id, 'display', editor.orgDisplay);\n    };\n    const safeDestroy = x => Optional.from(x).each(x => x.destroy());\n    const clearDomReferences = editor => {\n      const ed = editor;\n      ed.contentAreaContainer = ed.formElement = ed.container = ed.editorContainer = null;\n      ed.bodyElement = ed.contentDocument = ed.contentWindow = null;\n      ed.iframeElement = ed.targetElm = null;\n      const selection = editor.selection;\n      if (selection) {\n        const dom = selection.dom;\n        ed.selection = selection.win = selection.dom = dom.doc = null;\n      }\n    };\n    const restoreForm = editor => {\n      const form = editor.formElement;\n      if (form) {\n        if (form._mceOldSubmit) {\n          form.submit = form._mceOldSubmit;\n          delete form._mceOldSubmit;\n        }\n        DOM$8.unbind(form, 'submit reset', editor.formEventDelegate);\n      }\n    };\n    const remove$1 = editor => {\n      if (!editor.removed) {\n        const {_selectionOverrides, editorUpload} = editor;\n        const body = editor.getBody();\n        const element = editor.getElement();\n        if (body) {\n          editor.save({ is_removing: true });\n        }\n        editor.removed = true;\n        editor.unbindAllNativeEvents();\n        if (editor.hasHiddenInput && isNonNullable(element === null || element === void 0 ? void 0 : element.nextSibling)) {\n          DOM$8.remove(element.nextSibling);\n        }\n        fireRemove(editor);\n        editor.editorManager.remove(editor);\n        if (!editor.inline && body) {\n          restoreOriginalStyles(editor);\n        }\n        fireDetach(editor);\n        DOM$8.remove(editor.getContainer());\n        safeDestroy(_selectionOverrides);\n        safeDestroy(editorUpload);\n        editor.destroy();\n      }\n    };\n    const destroy = (editor, automatic) => {\n      const {selection, dom} = editor;\n      if (editor.destroyed) {\n        return;\n      }\n      if (!automatic && !editor.removed) {\n        editor.remove();\n        return;\n      }\n      if (!automatic) {\n        editor.editorManager.off('beforeunload', editor._beforeUnload);\n        if (editor.theme && editor.theme.destroy) {\n          editor.theme.destroy();\n        }\n        safeDestroy(selection);\n        safeDestroy(dom);\n      }\n      restoreForm(editor);\n      clearDomReferences(editor);\n      editor.destroyed = true;\n    };\n\n    const CreateIconManager = () => {\n      const lookup = {};\n      const add = (id, iconPack) => {\n        lookup[id] = iconPack;\n      };\n      const get = id => {\n        if (lookup[id]) {\n          return lookup[id];\n        } else {\n          return { icons: {} };\n        }\n      };\n      const has = id => has$2(lookup, id);\n      return {\n        add,\n        get,\n        has\n      };\n    };\n    const IconManager = CreateIconManager();\n\n    const ModelManager = AddOnManager.ModelManager;\n\n    const getProp = (propName, elm) => {\n      const rawElm = elm.dom;\n      return rawElm[propName];\n    };\n    const getComputedSizeProp = (propName, elm) => parseInt(get$7(elm, propName), 10);\n    const getClientWidth = curry(getProp, 'clientWidth');\n    const getClientHeight = curry(getProp, 'clientHeight');\n    const getMarginTop = curry(getComputedSizeProp, 'margin-top');\n    const getMarginLeft = curry(getComputedSizeProp, 'margin-left');\n    const getBoundingClientRect = elm => elm.dom.getBoundingClientRect();\n    const isInsideElementContentArea = (bodyElm, clientX, clientY) => {\n      const clientWidth = getClientWidth(bodyElm);\n      const clientHeight = getClientHeight(bodyElm);\n      return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight;\n    };\n    const transpose = (inline, elm, clientX, clientY) => {\n      const clientRect = getBoundingClientRect(elm);\n      const deltaX = inline ? clientRect.left + elm.dom.clientLeft + getMarginLeft(elm) : 0;\n      const deltaY = inline ? clientRect.top + elm.dom.clientTop + getMarginTop(elm) : 0;\n      const x = clientX - deltaX;\n      const y = clientY - deltaY;\n      return {\n        x,\n        y\n      };\n    };\n    const isXYInContentArea = (editor, clientX, clientY) => {\n      const bodyElm = SugarElement.fromDom(editor.getBody());\n      const targetElm = editor.inline ? bodyElm : documentElement(bodyElm);\n      const transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);\n      return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);\n    };\n    const fromDomSafe = node => Optional.from(node).map(SugarElement.fromDom);\n    const isEditorAttachedToDom = editor => {\n      const rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();\n      return fromDomSafe(rawContainer).map(inBody).getOr(false);\n    };\n\n    var NotificationManagerImpl = () => {\n      const unimplemented = () => {\n        throw new Error('Theme did not provide a NotificationManager implementation.');\n      };\n      return {\n        open: unimplemented,\n        close: unimplemented,\n        getArgs: unimplemented\n      };\n    };\n\n    const NotificationManager = editor => {\n      const notifications = [];\n      const getImplementation = () => {\n        const theme = editor.theme;\n        return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl();\n      };\n      const getTopNotification = () => {\n        return Optional.from(notifications[0]);\n      };\n      const isEqual = (a, b) => {\n        return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;\n      };\n      const reposition = () => {\n        each$e(notifications, notification => {\n          notification.reposition();\n        });\n      };\n      const addNotification = notification => {\n        notifications.push(notification);\n      };\n      const closeNotification = notification => {\n        findIndex$2(notifications, otherNotification => {\n          return otherNotification === notification;\n        }).each(index => {\n          notifications.splice(index, 1);\n        });\n      };\n      const open = (spec, fireEvent = true) => {\n        if (editor.removed || !isEditorAttachedToDom(editor)) {\n          return {};\n        }\n        if (fireEvent) {\n          editor.dispatch('BeforeOpenNotification', { notification: spec });\n        }\n        return find$2(notifications, notification => {\n          return isEqual(getImplementation().getArgs(notification), spec);\n        }).getOrThunk(() => {\n          editor.editorManager.setActive(editor);\n          const notification = getImplementation().open(spec, () => {\n            closeNotification(notification);\n            reposition();\n            getTopNotification().fold(() => editor.focus(), top => focus$1(SugarElement.fromDom(top.getEl())));\n          });\n          addNotification(notification);\n          reposition();\n          editor.dispatch('OpenNotification', { notification: { ...notification } });\n          return notification;\n        });\n      };\n      const close = () => {\n        getTopNotification().each(notification => {\n          getImplementation().close(notification);\n          closeNotification(notification);\n          reposition();\n        });\n      };\n      const getNotifications = constant(notifications);\n      const registerEvents = editor => {\n        editor.on('SkinLoaded', () => {\n          const serviceMessage = getServiceMessage(editor);\n          if (serviceMessage) {\n            open({\n              text: serviceMessage,\n              type: 'warning',\n              timeout: 0\n            }, false);\n          }\n          reposition();\n        });\n        editor.on('show ResizeEditor ResizeWindow NodeChange', () => {\n          requestAnimationFrame(reposition);\n        });\n        editor.on('remove', () => {\n          each$e(notifications.slice(), notification => {\n            getImplementation().close(notification);\n          });\n        });\n      };\n      registerEvents(editor);\n      return {\n        open,\n        close,\n        getNotifications\n      };\n    };\n\n    const PluginManager = AddOnManager.PluginManager;\n\n    const ThemeManager = AddOnManager.ThemeManager;\n\n    var WindowManagerImpl = () => {\n      const unimplemented = () => {\n        throw new Error('Theme did not provide a WindowManager implementation.');\n      };\n      return {\n        open: unimplemented,\n        openUrl: unimplemented,\n        alert: unimplemented,\n        confirm: unimplemented,\n        close: unimplemented\n      };\n    };\n\n    const WindowManager = editor => {\n      let dialogs = [];\n      const getImplementation = () => {\n        const theme = editor.theme;\n        return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl();\n      };\n      const funcBind = (scope, f) => {\n        return (...args) => {\n          return f ? f.apply(scope, args) : undefined;\n        };\n      };\n      const fireOpenEvent = dialog => {\n        editor.dispatch('OpenWindow', { dialog });\n      };\n      const fireCloseEvent = dialog => {\n        editor.dispatch('CloseWindow', { dialog });\n      };\n      const addDialog = dialog => {\n        dialogs.push(dialog);\n        fireOpenEvent(dialog);\n      };\n      const closeDialog = dialog => {\n        fireCloseEvent(dialog);\n        dialogs = filter$5(dialogs, otherDialog => {\n          return otherDialog !== dialog;\n        });\n        if (dialogs.length === 0) {\n          editor.focus();\n        }\n      };\n      const getTopDialog = () => {\n        return Optional.from(dialogs[dialogs.length - 1]);\n      };\n      const storeSelectionAndOpenDialog = openDialog => {\n        editor.editorManager.setActive(editor);\n        store(editor);\n        editor.ui.show();\n        const dialog = openDialog();\n        addDialog(dialog);\n        return dialog;\n      };\n      const open = (args, params) => {\n        return storeSelectionAndOpenDialog(() => getImplementation().open(args, params, closeDialog));\n      };\n      const openUrl = args => {\n        return storeSelectionAndOpenDialog(() => getImplementation().openUrl(args, closeDialog));\n      };\n      const alert = (message, callback, scope) => {\n        const windowManagerImpl = getImplementation();\n        windowManagerImpl.alert(message, funcBind(scope ? scope : windowManagerImpl, callback));\n      };\n      const confirm = (message, callback, scope) => {\n        const windowManagerImpl = getImplementation();\n        windowManagerImpl.confirm(message, funcBind(scope ? scope : windowManagerImpl, callback));\n      };\n      const close = () => {\n        getTopDialog().each(dialog => {\n          getImplementation().close(dialog);\n          closeDialog(dialog);\n        });\n      };\n      editor.on('remove', () => {\n        each$e(dialogs, dialog => {\n          getImplementation().close(dialog);\n        });\n      });\n      return {\n        open,\n        openUrl,\n        alert,\n        confirm,\n        close\n      };\n    };\n\n    const displayNotification = (editor, message) => {\n      editor.notificationManager.open({\n        type: 'error',\n        text: message\n      });\n    };\n    const displayError = (editor, message) => {\n      if (editor._skinLoaded) {\n        displayNotification(editor, message);\n      } else {\n        editor.on('SkinLoaded', () => {\n          displayNotification(editor, message);\n        });\n      }\n    };\n    const uploadError = (editor, message) => {\n      displayError(editor, I18n.translate([\n        'Failed to upload image: {0}',\n        message\n      ]));\n    };\n    const logError = (editor, errorType, msg) => {\n      fireError(editor, errorType, { message: msg });\n      console.error(msg);\n    };\n    const createLoadError = (type, url, name) => name ? `Failed to load ${ type }: ${ name } from url ${ url }` : `Failed to load ${ type } url: ${ url }`;\n    const pluginLoadError = (editor, url, name) => {\n      logError(editor, 'PluginLoadError', createLoadError('plugin', url, name));\n    };\n    const iconsLoadError = (editor, url, name) => {\n      logError(editor, 'IconsLoadError', createLoadError('icons', url, name));\n    };\n    const languageLoadError = (editor, url, name) => {\n      logError(editor, 'LanguageLoadError', createLoadError('language', url, name));\n    };\n    const themeLoadError = (editor, url, name) => {\n      logError(editor, 'ThemeLoadError', createLoadError('theme', url, name));\n    };\n    const modelLoadError = (editor, url, name) => {\n      logError(editor, 'ModelLoadError', createLoadError('model', url, name));\n    };\n    const pluginInitError = (editor, name, err) => {\n      const message = I18n.translate([\n        'Failed to initialize plugin: {0}',\n        name\n      ]);\n      fireError(editor, 'PluginLoadError', { message });\n      initError(message, err);\n      displayError(editor, message);\n    };\n    const initError = (message, ...x) => {\n      const console = window.console;\n      if (console) {\n        if (console.error) {\n          console.error(message, ...x);\n        } else {\n          console.log(message, ...x);\n        }\n      }\n    };\n\n    const isContentCssSkinName = url => /^[a-z0-9\\-]+$/i.test(url);\n    const getContentCssUrls = editor => {\n      return transformToUrls(editor, getContentCss(editor));\n    };\n    const getFontCssUrls = editor => {\n      return transformToUrls(editor, getFontCss(editor));\n    };\n    const transformToUrls = (editor, cssLinks) => {\n      const skinUrl = editor.editorManager.baseURL + '/skins/content';\n      const suffix = editor.editorManager.suffix;\n      const contentCssFile = `content${ suffix }.css`;\n      return map$3(cssLinks, url => {\n        if (isContentCssSkinName(url) && !editor.inline) {\n          return `${ skinUrl }/${ url }/${ contentCssFile }`;\n        } else {\n          return editor.documentBaseURI.toAbsolute(url);\n        }\n      });\n    };\n    const appendContentCssFromSettings = editor => {\n      editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor), getFontCssUrls(editor));\n    };\n\n    const filter$1 = always;\n    const bind$1 = (element, event, handler) => bind$2(element, event, filter$1, handler);\n\n    const getAllImages = elm => {\n      return elm ? from(elm.getElementsByTagName('img')) : [];\n    };\n    const ImageScanner = (uploadStatus, blobCache) => {\n      const cachedPromises = {};\n      const findAll = (elm, predicate = always) => {\n        const images = filter$5(getAllImages(elm), img => {\n          const src = img.src;\n          if (img.hasAttribute('data-mce-bogus')) {\n            return false;\n          }\n          if (img.hasAttribute('data-mce-placeholder')) {\n            return false;\n          }\n          if (!src || src === Env.transparentSrc) {\n            return false;\n          }\n          if (startsWith(src, 'blob:')) {\n            return !uploadStatus.isUploaded(src) && predicate(img);\n          }\n          if (startsWith(src, 'data:')) {\n            return predicate(img);\n          }\n          return false;\n        });\n        const promises = map$3(images, img => {\n          const imageSrc = img.src;\n          if (has$2(cachedPromises, imageSrc)) {\n            return cachedPromises[imageSrc].then(imageInfo => {\n              if (isString(imageInfo)) {\n                return imageInfo;\n              } else {\n                return {\n                  image: img,\n                  blobInfo: imageInfo.blobInfo\n                };\n              }\n            });\n          } else {\n            const newPromise = imageToBlobInfo(blobCache, imageSrc).then(blobInfo => {\n              delete cachedPromises[imageSrc];\n              return {\n                image: img,\n                blobInfo\n              };\n            }).catch(error => {\n              delete cachedPromises[imageSrc];\n              return error;\n            });\n            cachedPromises[imageSrc] = newPromise;\n            return newPromise;\n          }\n        });\n        return Promise.all(promises);\n      };\n      return { findAll };\n    };\n\n    const UploadStatus = () => {\n      const PENDING = 1, UPLOADED = 2;\n      let blobUriStatuses = {};\n      const createStatus = (status, resultUri) => {\n        return {\n          status,\n          resultUri\n        };\n      };\n      const hasBlobUri = blobUri => {\n        return blobUri in blobUriStatuses;\n      };\n      const getResultUri = blobUri => {\n        const result = blobUriStatuses[blobUri];\n        return result ? result.resultUri : null;\n      };\n      const isPending = blobUri => {\n        return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;\n      };\n      const isUploaded = blobUri => {\n        return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;\n      };\n      const markPending = blobUri => {\n        blobUriStatuses[blobUri] = createStatus(PENDING, null);\n      };\n      const markUploaded = (blobUri, resultUri) => {\n        blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);\n      };\n      const removeFailed = blobUri => {\n        delete blobUriStatuses[blobUri];\n      };\n      const destroy = () => {\n        blobUriStatuses = {};\n      };\n      return {\n        hasBlobUri,\n        getResultUri,\n        isPending,\n        isUploaded,\n        markPending,\n        markUploaded,\n        removeFailed,\n        destroy\n      };\n    };\n\n    let count = 0;\n    const seed = () => {\n      const rnd = () => {\n        return Math.round(Math.random() * 4294967295).toString(36);\n      };\n      const now = new Date().getTime();\n      return 's' + now.toString(36) + rnd() + rnd() + rnd();\n    };\n    const uuid = prefix => {\n      return prefix + count++ + seed();\n    };\n\n    const BlobCache = () => {\n      let cache = [];\n      const mimeToExt = mime => {\n        const mimes = {\n          'image/jpeg': 'jpg',\n          'image/jpg': 'jpg',\n          'image/gif': 'gif',\n          'image/png': 'png',\n          'image/apng': 'apng',\n          'image/avif': 'avif',\n          'image/svg+xml': 'svg',\n          'image/webp': 'webp',\n          'image/bmp': 'bmp',\n          'image/tiff': 'tiff'\n        };\n        return mimes[mime.toLowerCase()] || 'dat';\n      };\n      const create = (o, blob, base64, name, filename) => {\n        if (isString(o)) {\n          const id = o;\n          return toBlobInfo({\n            id,\n            name,\n            filename,\n            blob: blob,\n            base64: base64\n          });\n        } else if (isObject(o)) {\n          return toBlobInfo(o);\n        } else {\n          throw new Error('Unknown input type');\n        }\n      };\n      const toBlobInfo = o => {\n        if (!o.blob || !o.base64) {\n          throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');\n        }\n        const id = o.id || uuid('blobid');\n        const name = o.name || id;\n        const blob = o.blob;\n        return {\n          id: constant(id),\n          name: constant(name),\n          filename: constant(o.filename || name + '.' + mimeToExt(blob.type)),\n          blob: constant(blob),\n          base64: constant(o.base64),\n          blobUri: constant(o.blobUri || URL.createObjectURL(blob)),\n          uri: constant(o.uri)\n        };\n      };\n      const add = blobInfo => {\n        if (!get(blobInfo.id())) {\n          cache.push(blobInfo);\n        }\n      };\n      const findFirst = predicate => find$2(cache, predicate).getOrUndefined();\n      const get = id => findFirst(cachedBlobInfo => cachedBlobInfo.id() === id);\n      const getByUri = blobUri => findFirst(blobInfo => blobInfo.blobUri() === blobUri);\n      const getByData = (base64, type) => findFirst(blobInfo => blobInfo.base64() === base64 && blobInfo.blob().type === type);\n      const removeByUri = blobUri => {\n        cache = filter$5(cache, blobInfo => {\n          if (blobInfo.blobUri() === blobUri) {\n            URL.revokeObjectURL(blobInfo.blobUri());\n            return false;\n          }\n          return true;\n        });\n      };\n      const destroy = () => {\n        each$e(cache, cachedBlobInfo => {\n          URL.revokeObjectURL(cachedBlobInfo.blobUri());\n        });\n        cache = [];\n      };\n      return {\n        create,\n        add,\n        get,\n        getByUri,\n        getByData,\n        findFirst,\n        removeByUri,\n        destroy\n      };\n    };\n\n    const Uploader = (uploadStatus, settings) => {\n      const pendingPromises = {};\n      const pathJoin = (path1, path2) => {\n        if (path1) {\n          return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n        }\n        return path2;\n      };\n      const defaultHandler = (blobInfo, progress) => new Promise((success, failure) => {\n        const xhr = new XMLHttpRequest();\n        xhr.open('POST', settings.url);\n        xhr.withCredentials = settings.credentials;\n        xhr.upload.onprogress = e => {\n          progress(e.loaded / e.total * 100);\n        };\n        xhr.onerror = () => {\n          failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n        };\n        xhr.onload = () => {\n          if (xhr.status < 200 || xhr.status >= 300) {\n            failure('HTTP Error: ' + xhr.status);\n            return;\n          }\n          const json = JSON.parse(xhr.responseText);\n          if (!json || !isString(json.location)) {\n            failure('Invalid JSON: ' + xhr.responseText);\n            return;\n          }\n          success(pathJoin(settings.basePath, json.location));\n        };\n        const formData = new FormData();\n        formData.append('file', blobInfo.blob(), blobInfo.filename());\n        xhr.send(formData);\n      });\n      const uploadHandler = isFunction(settings.handler) ? settings.handler : defaultHandler;\n      const noUpload = () => new Promise(resolve => {\n        resolve([]);\n      });\n      const handlerSuccess = (blobInfo, url) => ({\n        url,\n        blobInfo,\n        status: true\n      });\n      const handlerFailure = (blobInfo, error) => ({\n        url: '',\n        blobInfo,\n        status: false,\n        error\n      });\n      const resolvePending = (blobUri, result) => {\n        Tools.each(pendingPromises[blobUri], resolve => {\n          resolve(result);\n        });\n        delete pendingPromises[blobUri];\n      };\n      const uploadBlobInfo = (blobInfo, handler, openNotification) => {\n        uploadStatus.markPending(blobInfo.blobUri());\n        return new Promise(resolve => {\n          let notification;\n          let progress;\n          try {\n            const closeNotification = () => {\n              if (notification) {\n                notification.close();\n                progress = noop;\n              }\n            };\n            const success = url => {\n              closeNotification();\n              uploadStatus.markUploaded(blobInfo.blobUri(), url);\n              resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));\n              resolve(handlerSuccess(blobInfo, url));\n            };\n            const failure = error => {\n              closeNotification();\n              uploadStatus.removeFailed(blobInfo.blobUri());\n              resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));\n              resolve(handlerFailure(blobInfo, error));\n            };\n            progress = percent => {\n              if (percent < 0 || percent > 100) {\n                return;\n              }\n              Optional.from(notification).orThunk(() => Optional.from(openNotification).map(apply$1)).each(n => {\n                notification = n;\n                n.progressBar.value(percent);\n              });\n            };\n            handler(blobInfo, progress).then(success, err => {\n              failure(isString(err) ? { message: err } : err);\n            });\n          } catch (ex) {\n            resolve(handlerFailure(blobInfo, ex));\n          }\n        });\n      };\n      const isDefaultHandler = handler => handler === defaultHandler;\n      const pendingUploadBlobInfo = blobInfo => {\n        const blobUri = blobInfo.blobUri();\n        return new Promise(resolve => {\n          pendingPromises[blobUri] = pendingPromises[blobUri] || [];\n          pendingPromises[blobUri].push(resolve);\n        });\n      };\n      const uploadBlobs = (blobInfos, openNotification) => {\n        blobInfos = Tools.grep(blobInfos, blobInfo => !uploadStatus.isUploaded(blobInfo.blobUri()));\n        return Promise.all(Tools.map(blobInfos, blobInfo => uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, uploadHandler, openNotification)));\n      };\n      const upload = (blobInfos, openNotification) => !settings.url && isDefaultHandler(uploadHandler) ? noUpload() : uploadBlobs(blobInfos, openNotification);\n      return { upload };\n    };\n\n    const openNotification = editor => () => editor.notificationManager.open({\n      text: editor.translate('Image uploading...'),\n      type: 'info',\n      timeout: -1,\n      progressBar: true\n    });\n    const createUploader = (editor, uploadStatus) => Uploader(uploadStatus, {\n      url: getImageUploadUrl(editor),\n      basePath: getImageUploadBasePath(editor),\n      credentials: getImagesUploadCredentials(editor),\n      handler: getImagesUploadHandler(editor)\n    });\n    const ImageUploader = editor => {\n      const uploadStatus = UploadStatus();\n      const uploader = createUploader(editor, uploadStatus);\n      return { upload: (blobInfos, showNotification = true) => uploader.upload(blobInfos, showNotification ? openNotification(editor) : undefined) };\n    };\n\n    const EditorUpload = editor => {\n      const blobCache = BlobCache();\n      let uploader, imageScanner;\n      const uploadStatus = UploadStatus();\n      const urlFilters = [];\n      const aliveGuard = callback => {\n        return result => {\n          if (editor.selection) {\n            return callback(result);\n          }\n          return [];\n        };\n      };\n      const cacheInvalidator = url => url + (url.indexOf('?') === -1 ? '?' : '&') + new Date().getTime();\n      const replaceString = (content, search, replace) => {\n        let index = 0;\n        do {\n          index = content.indexOf(search, index);\n          if (index !== -1) {\n            content = content.substring(0, index) + replace + content.substr(index + search.length);\n            index += replace.length - search.length + 1;\n          }\n        } while (index !== -1);\n        return content;\n      };\n      const replaceImageUrl = (content, targetUrl, replacementUrl) => {\n        const replacementString = `src=\"${ replacementUrl }\"${ replacementUrl === Env.transparentSrc ? ' data-mce-placeholder=\"1\"' : '' }`;\n        content = replaceString(content, `src=\"${ targetUrl }\"`, replacementString);\n        content = replaceString(content, 'data-mce-src=\"' + targetUrl + '\"', 'data-mce-src=\"' + replacementUrl + '\"');\n        return content;\n      };\n      const replaceUrlInUndoStack = (targetUrl, replacementUrl) => {\n        each$e(editor.undoManager.data, level => {\n          if (level.type === 'fragmented') {\n            level.fragments = map$3(level.fragments, fragment => replaceImageUrl(fragment, targetUrl, replacementUrl));\n          } else {\n            level.content = replaceImageUrl(level.content, targetUrl, replacementUrl);\n          }\n        });\n      };\n      const replaceImageUriInView = (image, resultUri) => {\n        const src = editor.convertURL(resultUri, 'src');\n        replaceUrlInUndoStack(image.src, resultUri);\n        setAll$1(SugarElement.fromDom(image), {\n          'src': shouldReuseFileName(editor) ? cacheInvalidator(resultUri) : resultUri,\n          'data-mce-src': src\n        });\n      };\n      const uploadImages = () => {\n        if (!uploader) {\n          uploader = createUploader(editor, uploadStatus);\n        }\n        return scanForImages().then(aliveGuard(imageInfos => {\n          const blobInfos = map$3(imageInfos, imageInfo => imageInfo.blobInfo);\n          return uploader.upload(blobInfos, openNotification(editor)).then(aliveGuard(result => {\n            const imagesToRemove = [];\n            let shouldDispatchChange = false;\n            const filteredResult = map$3(result, (uploadInfo, index) => {\n              const {blobInfo, image} = imageInfos[index];\n              let removed = false;\n              if (uploadInfo.status && shouldReplaceBlobUris(editor)) {\n                if (uploadInfo.url && !contains$1(image.src, uploadInfo.url)) {\n                  shouldDispatchChange = true;\n                }\n                blobCache.removeByUri(image.src);\n                if (isRtc(editor)) ; else {\n                  replaceImageUriInView(image, uploadInfo.url);\n                }\n              } else if (uploadInfo.error) {\n                if (uploadInfo.error.remove) {\n                  replaceUrlInUndoStack(image.src, Env.transparentSrc);\n                  imagesToRemove.push(image);\n                  removed = true;\n                }\n                uploadError(editor, uploadInfo.error.message);\n              }\n              return {\n                element: image,\n                status: uploadInfo.status,\n                uploadUri: uploadInfo.url,\n                blobInfo,\n                removed\n              };\n            });\n            if (imagesToRemove.length > 0 && !isRtc(editor)) {\n              editor.undoManager.transact(() => {\n                each$e(imagesToRemove, element => {\n                  editor.dom.remove(element);\n                  blobCache.removeByUri(element.src);\n                });\n              });\n            } else if (shouldDispatchChange) {\n              editor.undoManager.dispatchChange();\n            }\n            return filteredResult;\n          }));\n        }));\n      };\n      const uploadImagesAuto = () => isAutomaticUploadsEnabled(editor) ? uploadImages() : Promise.resolve([]);\n      const isValidDataUriImage = imgElm => forall(urlFilters, filter => filter(imgElm));\n      const addFilter = filter => {\n        urlFilters.push(filter);\n      };\n      const scanForImages = () => {\n        if (!imageScanner) {\n          imageScanner = ImageScanner(uploadStatus, blobCache);\n        }\n        return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(result => {\n          const filteredResult = filter$5(result, resultItem => {\n            if (isString(resultItem)) {\n              displayError(editor, resultItem);\n              return false;\n            } else {\n              return true;\n            }\n          });\n          if (isRtc(editor)) ; else {\n            each$e(filteredResult, resultItem => {\n              replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());\n              resultItem.image.src = resultItem.blobInfo.blobUri();\n              resultItem.image.removeAttribute('data-mce-src');\n            });\n          }\n          return filteredResult;\n        }));\n      };\n      const destroy = () => {\n        blobCache.destroy();\n        uploadStatus.destroy();\n        imageScanner = uploader = null;\n      };\n      const replaceBlobUris = content => {\n        return content.replace(/src=\"(blob:[^\"]+)\"/g, (match, blobUri) => {\n          const resultUri = uploadStatus.getResultUri(blobUri);\n          if (resultUri) {\n            return 'src=\"' + resultUri + '\"';\n          }\n          let blobInfo = blobCache.getByUri(blobUri);\n          if (!blobInfo) {\n            blobInfo = foldl(editor.editorManager.get(), (result, editor) => {\n              return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);\n            }, undefined);\n          }\n          if (blobInfo) {\n            const blob = blobInfo.blob();\n            return 'src=\"data:' + blob.type + ';base64,' + blobInfo.base64() + '\"';\n          }\n          return match;\n        });\n      };\n      editor.on('SetContent', () => {\n        if (isAutomaticUploadsEnabled(editor)) {\n          uploadImagesAuto();\n        } else {\n          scanForImages();\n        }\n      });\n      editor.on('RawSaveContent', e => {\n        e.content = replaceBlobUris(e.content);\n      });\n      editor.on('GetContent', e => {\n        if (e.source_view || e.format === 'raw' || e.format === 'tree') {\n          return;\n        }\n        e.content = replaceBlobUris(e.content);\n      });\n      editor.on('PostRender', () => {\n        editor.parser.addNodeFilter('img', images => {\n          each$e(images, img => {\n            const src = img.attr('src');\n            if (!src || blobCache.getByUri(src)) {\n              return;\n            }\n            const resultUri = uploadStatus.getResultUri(src);\n            if (resultUri) {\n              img.attr('src', resultUri);\n            }\n          });\n        });\n      });\n      return {\n        blobCache,\n        addFilter,\n        uploadImages,\n        uploadImagesAuto,\n        scanForImages,\n        destroy\n      };\n    };\n\n    const get$1 = editor => {\n      const dom = editor.dom;\n      const schemaType = editor.schema.type;\n      const formats = {\n        valigntop: [{\n            selector: 'td,th',\n            styles: { verticalAlign: 'top' }\n          }],\n        valignmiddle: [{\n            selector: 'td,th',\n            styles: { verticalAlign: 'middle' }\n          }],\n        valignbottom: [{\n            selector: 'td,th',\n            styles: { verticalAlign: 'bottom' }\n          }],\n        alignleft: [\n          {\n            selector: 'figure.image',\n            collapsed: false,\n            classes: 'align-left',\n            ceFalseOverride: true,\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n            styles: { textAlign: 'left' },\n            inherit: false,\n            preview: false\n          },\n          {\n            selector: 'img,audio,video',\n            collapsed: false,\n            styles: { float: 'left' },\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'table',\n            collapsed: false,\n            styles: {\n              marginLeft: '0px',\n              marginRight: 'auto'\n            },\n            onformat: table => {\n              dom.setStyle(table, 'float', null);\n            },\n            preview: 'font-family font-size'\n          },\n          {\n            selector: '.mce-preview-object,[data-ephox-embed-iri]',\n            ceFalseOverride: true,\n            styles: { float: 'left' }\n          }\n        ],\n        aligncenter: [\n          {\n            selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n            styles: { textAlign: 'center' },\n            inherit: false,\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'figure.image',\n            collapsed: false,\n            classes: 'align-center',\n            ceFalseOverride: true,\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'img,audio,video',\n            collapsed: false,\n            styles: {\n              display: 'block',\n              marginLeft: 'auto',\n              marginRight: 'auto'\n            },\n            preview: false\n          },\n          {\n            selector: 'table',\n            collapsed: false,\n            styles: {\n              marginLeft: 'auto',\n              marginRight: 'auto'\n            },\n            preview: 'font-family font-size'\n          },\n          {\n            selector: '.mce-preview-object',\n            ceFalseOverride: true,\n            styles: {\n              display: 'table',\n              marginLeft: 'auto',\n              marginRight: 'auto'\n            },\n            preview: false\n          },\n          {\n            selector: '[data-ephox-embed-iri]',\n            ceFalseOverride: true,\n            styles: {\n              marginLeft: 'auto',\n              marginRight: 'auto'\n            },\n            preview: false\n          }\n        ],\n        alignright: [\n          {\n            selector: 'figure.image',\n            collapsed: false,\n            classes: 'align-right',\n            ceFalseOverride: true,\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n            styles: { textAlign: 'right' },\n            inherit: false,\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'img,audio,video',\n            collapsed: false,\n            styles: { float: 'right' },\n            preview: 'font-family font-size'\n          },\n          {\n            selector: 'table',\n            collapsed: false,\n            styles: {\n              marginRight: '0px',\n              marginLeft: 'auto'\n            },\n            onformat: table => {\n              dom.setStyle(table, 'float', null);\n            },\n            preview: 'font-family font-size'\n          },\n          {\n            selector: '.mce-preview-object,[data-ephox-embed-iri]',\n            ceFalseOverride: true,\n            styles: { float: 'right' },\n            preview: false\n          }\n        ],\n        alignjustify: [{\n            selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n            styles: { textAlign: 'justify' },\n            inherit: false,\n            preview: 'font-family font-size'\n          }],\n        bold: [\n          {\n            inline: 'strong',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          },\n          {\n            inline: 'span',\n            styles: { fontWeight: 'bold' }\n          },\n          {\n            inline: 'b',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          }\n        ],\n        italic: [\n          {\n            inline: 'em',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          },\n          {\n            inline: 'span',\n            styles: { fontStyle: 'italic' }\n          },\n          {\n            inline: 'i',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          }\n        ],\n        underline: [\n          {\n            inline: 'span',\n            styles: { textDecoration: 'underline' },\n            exact: true\n          },\n          {\n            inline: 'u',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          }\n        ],\n        strikethrough: (() => {\n          const span = {\n            inline: 'span',\n            styles: { textDecoration: 'line-through' },\n            exact: true\n          };\n          const strike = {\n            inline: 'strike',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          };\n          const s = {\n            inline: 's',\n            remove: 'all',\n            preserve_attributes: [\n              'class',\n              'style'\n            ]\n          };\n          return schemaType !== 'html4' ? [\n            s,\n            span,\n            strike\n          ] : [\n            span,\n            s,\n            strike\n          ];\n        })(),\n        forecolor: {\n          inline: 'span',\n          styles: { color: '%value' },\n          links: true,\n          remove_similar: true,\n          clear_child_styles: true\n        },\n        hilitecolor: {\n          inline: 'span',\n          styles: { backgroundColor: '%value' },\n          links: true,\n          remove_similar: true,\n          clear_child_styles: true\n        },\n        fontname: {\n          inline: 'span',\n          toggle: false,\n          styles: { fontFamily: '%value' },\n          clear_child_styles: true\n        },\n        fontsize: {\n          inline: 'span',\n          toggle: false,\n          styles: { fontSize: '%value' },\n          clear_child_styles: true\n        },\n        lineheight: {\n          selector: 'h1,h2,h3,h4,h5,h6,p,li,td,th,div',\n          styles: { lineHeight: '%value' }\n        },\n        fontsize_class: {\n          inline: 'span',\n          attributes: { class: '%value' }\n        },\n        blockquote: {\n          block: 'blockquote',\n          wrapper: true,\n          remove: 'all'\n        },\n        subscript: { inline: 'sub' },\n        superscript: { inline: 'sup' },\n        code: { inline: 'code' },\n        link: {\n          inline: 'a',\n          selector: 'a',\n          remove: 'all',\n          split: true,\n          deep: true,\n          onmatch: (node, _fmt, _itemName) => {\n            return isElement$6(node) && node.hasAttribute('href');\n          },\n          onformat: (elm, _fmt, vars) => {\n            Tools.each(vars, (value, key) => {\n              dom.setAttrib(elm, key, value);\n            });\n          }\n        },\n        lang: {\n          inline: 'span',\n          clear_child_styles: true,\n          remove_similar: true,\n          attributes: {\n            'lang': '%value',\n            'data-mce-lang': vars => {\n              var _a;\n              return (_a = vars === null || vars === void 0 ? void 0 : vars.customValue) !== null && _a !== void 0 ? _a : null;\n            }\n          }\n        },\n        removeformat: [\n          {\n            selector: 'b,strong,em,i,font,u,strike,s,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins,small',\n            remove: 'all',\n            split: true,\n            expand: false,\n            block_expand: true,\n            deep: true\n          },\n          {\n            selector: 'span',\n            attributes: [\n              'style',\n              'class'\n            ],\n            remove: 'empty',\n            split: true,\n            expand: false,\n            deep: true\n          },\n          {\n            selector: '*',\n            attributes: [\n              'style',\n              'class'\n            ],\n            split: false,\n            expand: false,\n            deep: true\n          }\n        ]\n      };\n      Tools.each('p h1 h2 h3 h4 h5 h6 div address pre dt dd samp'.split(/\\s/), name => {\n        formats[name] = {\n          block: name,\n          remove: 'all'\n        };\n      });\n      return formats;\n    };\n\n    const genericBase = {\n      remove_similar: true,\n      inherit: false\n    };\n    const cellBase = {\n      selector: 'td,th',\n      ...genericBase\n    };\n    const cellFormats = {\n      tablecellbackgroundcolor: {\n        styles: { backgroundColor: '%value' },\n        ...cellBase\n      },\n      tablecellverticalalign: {\n        styles: { 'vertical-align': '%value' },\n        ...cellBase\n      },\n      tablecellbordercolor: {\n        styles: { borderColor: '%value' },\n        ...cellBase\n      },\n      tablecellclass: {\n        classes: ['%value'],\n        ...cellBase\n      },\n      tableclass: {\n        selector: 'table',\n        classes: ['%value'],\n        ...genericBase\n      },\n      tablecellborderstyle: {\n        styles: { borderStyle: '%value' },\n        ...cellBase\n      },\n      tablecellborderwidth: {\n        styles: { borderWidth: '%value' },\n        ...cellBase\n      }\n    };\n    const get = constant(cellFormats);\n\n    const FormatRegistry = editor => {\n      const formats = {};\n      const get$2 = name => isNonNullable(name) ? formats[name] : formats;\n      const has = name => has$2(formats, name);\n      const register = (name, format) => {\n        if (name) {\n          if (!isString(name)) {\n            each$d(name, (format, name) => {\n              register(name, format);\n            });\n          } else {\n            if (!isArray$1(format)) {\n              format = [format];\n            }\n            each$e(format, format => {\n              if (isUndefined(format.deep)) {\n                format.deep = !isSelectorFormat(format);\n              }\n              if (isUndefined(format.split)) {\n                format.split = !isSelectorFormat(format) || isInlineFormat(format);\n              }\n              if (isUndefined(format.remove) && isSelectorFormat(format) && !isInlineFormat(format)) {\n                format.remove = 'none';\n              }\n              if (isSelectorFormat(format) && isInlineFormat(format)) {\n                format.mixed = true;\n                format.block_expand = true;\n              }\n              if (isString(format.classes)) {\n                format.classes = format.classes.split(/\\s+/);\n              }\n            });\n            formats[name] = format;\n          }\n        }\n      };\n      const unregister = name => {\n        if (name && formats[name]) {\n          delete formats[name];\n        }\n        return formats;\n      };\n      register(get$1(editor));\n      register(get());\n      register(getFormats(editor));\n      return {\n        get: get$2,\n        has,\n        register,\n        unregister\n      };\n    };\n\n    const each$3 = Tools.each;\n    const dom = DOMUtils.DOM;\n    const isPreviewItem = item => isNonNullable(item) && isObject(item);\n    const parsedSelectorToHtml = (ancestry, editor) => {\n      const schema = editor && editor.schema || Schema({});\n      const decorate = (elm, item) => {\n        if (item.classes.length > 0) {\n          dom.addClass(elm, item.classes.join(' '));\n        }\n        dom.setAttribs(elm, item.attrs);\n      };\n      const createElement = sItem => {\n        const item = isString(sItem) ? {\n          name: sItem,\n          classes: [],\n          attrs: {}\n        } : sItem;\n        const elm = dom.create(item.name);\n        decorate(elm, item);\n        return elm;\n      };\n      const getRequiredParent = (elm, candidate) => {\n        const elmRule = schema.getElementRule(elm.nodeName.toLowerCase());\n        const parentsRequired = elmRule === null || elmRule === void 0 ? void 0 : elmRule.parentsRequired;\n        if (parentsRequired && parentsRequired.length) {\n          return candidate && contains$2(parentsRequired, candidate) ? candidate : parentsRequired[0];\n        } else {\n          return false;\n        }\n      };\n      const wrapInHtml = (elm, ancestors, siblings) => {\n        let parentCandidate;\n        const ancestor = ancestors[0];\n        const ancestorName = isPreviewItem(ancestor) ? ancestor.name : undefined;\n        const parentRequired = getRequiredParent(elm, ancestorName);\n        if (parentRequired) {\n          if (ancestorName === parentRequired) {\n            parentCandidate = ancestor;\n            ancestors = ancestors.slice(1);\n          } else {\n            parentCandidate = parentRequired;\n          }\n        } else if (ancestor) {\n          parentCandidate = ancestor;\n          ancestors = ancestors.slice(1);\n        } else if (!siblings) {\n          return elm;\n        }\n        const parent = parentCandidate ? createElement(parentCandidate) : dom.create('div');\n        parent.appendChild(elm);\n        if (siblings) {\n          Tools.each(siblings, sibling => {\n            const siblingElm = createElement(sibling);\n            parent.insertBefore(siblingElm, elm);\n          });\n        }\n        const parentSiblings = isPreviewItem(parentCandidate) ? parentCandidate.siblings : undefined;\n        return wrapInHtml(parent, ancestors, parentSiblings);\n      };\n      const fragment = dom.create('div');\n      if (ancestry.length > 0) {\n        const item = ancestry[0];\n        const elm = createElement(item);\n        const siblings = isPreviewItem(item) ? item.siblings : undefined;\n        fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), siblings));\n      }\n      return fragment;\n    };\n    const parseSelectorItem = item => {\n      item = Tools.trim(item);\n      let tagName = 'div';\n      const obj = {\n        name: tagName,\n        classes: [],\n        attrs: {},\n        selector: item\n      };\n      if (item !== '*') {\n        tagName = item.replace(/(?:([#\\.]|::?)([\\w\\-]+)|(\\[)([^\\]]+)\\]?)/g, ($0, $1, $2, $3, $4) => {\n          switch ($1) {\n          case '#':\n            obj.attrs.id = $2;\n            break;\n          case '.':\n            obj.classes.push($2);\n            break;\n          case ':':\n            if (Tools.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {\n              obj.attrs[$2] = $2;\n            }\n            break;\n          }\n          if ($3 === '[') {\n            const m = $4.match(/([\\w\\-]+)(?:\\=\\\"([^\\\"]+))?/);\n            if (m) {\n              obj.attrs[m[1]] = m[2];\n            }\n          }\n          return '';\n        });\n      }\n      obj.name = tagName || 'div';\n      return obj;\n    };\n    const parseSelector = selector => {\n      if (!isString(selector)) {\n        return [];\n      }\n      selector = selector.split(/\\s*,\\s*/)[0];\n      selector = selector.replace(/\\s*(~\\+|~|\\+|>)\\s*/g, '$1');\n      return Tools.map(selector.split(/(?:>|\\s+(?![^\\[\\]]+\\]))/), item => {\n        const siblings = Tools.map(item.split(/(?:~\\+|~|\\+)/), parseSelectorItem);\n        const obj = siblings.pop();\n        if (siblings.length) {\n          obj.siblings = siblings;\n        }\n        return obj;\n      }).reverse();\n    };\n    const getCssText = (editor, format) => {\n      let previewCss = '';\n      let previewStyles = getPreviewStyles(editor);\n      if (previewStyles === '') {\n        return '';\n      }\n      const removeVars = val => {\n        return isString(val) ? val.replace(/%(\\w+)/g, '') : '';\n      };\n      const getComputedStyle = (name, elm) => {\n        return dom.getStyle(elm !== null && elm !== void 0 ? elm : editor.getBody(), name, true);\n      };\n      if (isString(format)) {\n        const formats = editor.formatter.get(format);\n        if (!formats) {\n          return '';\n        }\n        format = formats[0];\n      }\n      if ('preview' in format) {\n        const preview = format.preview;\n        if (preview === false) {\n          return '';\n        } else {\n          previewStyles = preview || previewStyles;\n        }\n      }\n      let name = format.block || format.inline || 'span';\n      let previewFrag;\n      const items = parseSelector(format.selector);\n      if (items.length > 0) {\n        if (!items[0].name) {\n          items[0].name = name;\n        }\n        name = format.selector;\n        previewFrag = parsedSelectorToHtml(items, editor);\n      } else {\n        previewFrag = parsedSelectorToHtml([name], editor);\n      }\n      const previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;\n      each$3(format.styles, (value, name) => {\n        const newValue = removeVars(value);\n        if (newValue) {\n          dom.setStyle(previewElm, name, newValue);\n        }\n      });\n      each$3(format.attributes, (value, name) => {\n        const newValue = removeVars(value);\n        if (newValue) {\n          dom.setAttrib(previewElm, name, newValue);\n        }\n      });\n      each$3(format.classes, value => {\n        const newValue = removeVars(value);\n        if (!dom.hasClass(previewElm, newValue)) {\n          dom.addClass(previewElm, newValue);\n        }\n      });\n      editor.dispatch('PreviewFormats');\n      dom.setStyles(previewFrag, {\n        position: 'absolute',\n        left: -65535\n      });\n      editor.getBody().appendChild(previewFrag);\n      const rawParentFontSize = getComputedStyle('fontSize');\n      const parentFontSize = /px$/.test(rawParentFontSize) ? parseInt(rawParentFontSize, 10) : 0;\n      each$3(previewStyles.split(' '), name => {\n        let value = getComputedStyle(name, previewElm);\n        if (name === 'background-color' && /transparent|rgba\\s*\\([^)]+,\\s*0\\)/.test(value)) {\n          value = getComputedStyle(name);\n          if (rgbaToHexString(value).toLowerCase() === '#ffffff') {\n            return;\n          }\n        }\n        if (name === 'color') {\n          if (rgbaToHexString(value).toLowerCase() === '#000000') {\n            return;\n          }\n        }\n        if (name === 'font-size') {\n          if (/em|%$/.test(value)) {\n            if (parentFontSize === 0) {\n              return;\n            }\n            const numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1);\n            value = numValue * parentFontSize + 'px';\n          }\n        }\n        if (name === 'border' && value) {\n          previewCss += 'padding:0 2px;';\n        }\n        previewCss += name + ':' + value + ';';\n      });\n      editor.dispatch('AfterPreviewFormats');\n      dom.remove(previewFrag);\n      return previewCss;\n    };\n\n    const setup$r = editor => {\n      editor.addShortcut('meta+b', '', 'Bold');\n      editor.addShortcut('meta+i', '', 'Italic');\n      editor.addShortcut('meta+u', '', 'Underline');\n      for (let i = 1; i <= 6; i++) {\n        editor.addShortcut('access+' + i, '', [\n          'FormatBlock',\n          false,\n          'h' + i\n        ]);\n      }\n      editor.addShortcut('access+7', '', [\n        'FormatBlock',\n        false,\n        'p'\n      ]);\n      editor.addShortcut('access+8', '', [\n        'FormatBlock',\n        false,\n        'div'\n      ]);\n      editor.addShortcut('access+9', '', [\n        'FormatBlock',\n        false,\n        'address'\n      ]);\n    };\n\n    const Formatter = editor => {\n      const formats = FormatRegistry(editor);\n      const formatChangeState = Cell({});\n      setup$r(editor);\n      setup$u(editor);\n      if (!isRtc(editor)) {\n        setup$t(formatChangeState, editor);\n      }\n      return {\n        get: formats.get,\n        has: formats.has,\n        register: formats.register,\n        unregister: formats.unregister,\n        apply: (name, vars, node) => {\n          applyFormat(editor, name, vars, node);\n        },\n        remove: (name, vars, node, similar) => {\n          removeFormat(editor, name, vars, node, similar);\n        },\n        toggle: (name, vars, node) => {\n          toggleFormat(editor, name, vars, node);\n        },\n        match: (name, vars, node, similar) => matchFormat(editor, name, vars, node, similar),\n        closest: names => closestFormat(editor, names),\n        matchAll: (names, vars) => matchAllFormats(editor, names, vars),\n        matchNode: (node, name, vars, similar) => matchNodeFormat(editor, node, name, vars, similar),\n        canApply: name => canApplyFormat(editor, name),\n        formatChanged: (formats, callback, similar, vars) => formatChanged(editor, formatChangeState, formats, callback, similar, vars),\n        getCssText: curry(getCssText, editor)\n      };\n    };\n\n    const shouldIgnoreCommand = cmd => {\n      switch (cmd.toLowerCase()) {\n      case 'undo':\n      case 'redo':\n      case 'mcefocus':\n        return true;\n      default:\n        return false;\n      }\n    };\n    const registerEvents = (editor, undoManager, locks) => {\n      const isFirstTypedCharacter = Cell(false);\n      const addNonTypingUndoLevel = e => {\n        setTyping(undoManager, false, locks);\n        undoManager.add({}, e);\n      };\n      editor.on('init', () => {\n        undoManager.add();\n      });\n      editor.on('BeforeExecCommand', e => {\n        const cmd = e.command;\n        if (!shouldIgnoreCommand(cmd)) {\n          endTyping(undoManager, locks);\n          undoManager.beforeChange();\n        }\n      });\n      editor.on('ExecCommand', e => {\n        const cmd = e.command;\n        if (!shouldIgnoreCommand(cmd)) {\n          addNonTypingUndoLevel(e);\n        }\n      });\n      editor.on('ObjectResizeStart cut', () => {\n        undoManager.beforeChange();\n      });\n      editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\n      editor.on('dragend', addNonTypingUndoLevel);\n      editor.on('keyup', e => {\n        const keyCode = e.keyCode;\n        if (e.isDefaultPrevented()) {\n          return;\n        }\n        if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey) {\n          addNonTypingUndoLevel();\n          editor.nodeChanged();\n        }\n        if (keyCode === 46 || keyCode === 8) {\n          editor.nodeChanged();\n        }\n        if (isFirstTypedCharacter.get() && undoManager.typing && !isEq$1(createFromEditor(editor), undoManager.data[0])) {\n          if (!editor.isDirty()) {\n            editor.setDirty(true);\n          }\n          editor.dispatch('TypingUndo');\n          isFirstTypedCharacter.set(false);\n          editor.nodeChanged();\n        }\n      });\n      editor.on('keydown', e => {\n        const keyCode = e.keyCode;\n        if (e.isDefaultPrevented()) {\n          return;\n        }\n        if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) {\n          if (undoManager.typing) {\n            addNonTypingUndoLevel(e);\n          }\n          return;\n        }\n        const modKey = e.ctrlKey && !e.altKey || e.metaKey;\n        if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !undoManager.typing && !modKey) {\n          undoManager.beforeChange();\n          setTyping(undoManager, true, locks);\n          undoManager.add({}, e);\n          isFirstTypedCharacter.set(true);\n        }\n      });\n      editor.on('mousedown', e => {\n        if (undoManager.typing) {\n          addNonTypingUndoLevel(e);\n        }\n      });\n      const isInsertReplacementText = event => event.inputType === 'insertReplacementText';\n      const isInsertTextDataNull = event => event.inputType === 'insertText' && event.data === null;\n      const isInsertFromPasteOrDrop = event => event.inputType === 'insertFromPaste' || event.inputType === 'insertFromDrop';\n      editor.on('input', e => {\n        if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e) || isInsertFromPasteOrDrop(e))) {\n          addNonTypingUndoLevel(e);\n        }\n      });\n      editor.on('AddUndo Undo Redo ClearUndos', e => {\n        if (!e.isDefaultPrevented()) {\n          editor.nodeChanged();\n        }\n      });\n    };\n    const addKeyboardShortcuts = editor => {\n      editor.addShortcut('meta+z', '', 'Undo');\n      editor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\n    };\n\n    const UndoManager = editor => {\n      const beforeBookmark = value$2();\n      const locks = Cell(0);\n      const index = Cell(0);\n      const undoManager = {\n        data: [],\n        typing: false,\n        beforeChange: () => {\n          beforeChange(editor, locks, beforeBookmark);\n        },\n        add: (level, event) => {\n          return addUndoLevel(editor, undoManager, index, locks, beforeBookmark, level, event);\n        },\n        dispatchChange: () => {\n          editor.setDirty(true);\n          const level = createFromEditor(editor);\n          level.bookmark = getUndoBookmark(editor.selection);\n          editor.dispatch('change', {\n            level,\n            lastLevel: get$b(undoManager.data, index.get()).getOrUndefined()\n          });\n        },\n        undo: () => {\n          return undo(editor, undoManager, locks, index);\n        },\n        redo: () => {\n          return redo(editor, index, undoManager.data);\n        },\n        clear: () => {\n          clear(editor, undoManager, index);\n        },\n        reset: () => {\n          reset(editor, undoManager);\n        },\n        hasUndo: () => {\n          return hasUndo(editor, undoManager, index);\n        },\n        hasRedo: () => {\n          return hasRedo(editor, undoManager, index);\n        },\n        transact: callback => {\n          return transact(editor, undoManager, locks, callback);\n        },\n        ignore: callback => {\n          ignore(editor, locks, callback);\n        },\n        extra: (callback1, callback2) => {\n          extra(editor, undoManager, index, callback1, callback2);\n        }\n      };\n      if (!isRtc(editor)) {\n        registerEvents(editor, undoManager, locks);\n      }\n      addKeyboardShortcuts(editor);\n      return undoManager;\n    };\n\n    const nonTypingKeycodes = [\n      9,\n      27,\n      VK.HOME,\n      VK.END,\n      19,\n      20,\n      44,\n      144,\n      145,\n      33,\n      34,\n      45,\n      16,\n      17,\n      18,\n      91,\n      92,\n      93,\n      VK.DOWN,\n      VK.UP,\n      VK.LEFT,\n      VK.RIGHT\n    ].concat(Env.browser.isFirefox() ? [224] : []);\n    const placeholderAttr = 'data-mce-placeholder';\n    const isKeyboardEvent = e => e.type === 'keydown' || e.type === 'keyup';\n    const isDeleteEvent = e => {\n      const keyCode = e.keyCode;\n      return keyCode === VK.BACKSPACE || keyCode === VK.DELETE;\n    };\n    const isNonTypingKeyboardEvent = e => {\n      if (isKeyboardEvent(e)) {\n        const keyCode = e.keyCode;\n        return !isDeleteEvent(e) && (VK.metaKeyPressed(e) || e.altKey || keyCode >= 112 && keyCode <= 123 || contains$2(nonTypingKeycodes, keyCode));\n      } else {\n        return false;\n      }\n    };\n    const isTypingKeyboardEvent = e => isKeyboardEvent(e) && !(isDeleteEvent(e) || e.type === 'keyup' && e.keyCode === 229);\n    const isVisuallyEmpty = (dom, rootElm, forcedRootBlock) => {\n      if (isEmpty$2(SugarElement.fromDom(rootElm), false)) {\n        const firstElement = rootElm.firstElementChild;\n        if (!firstElement) {\n          return true;\n        } else if (dom.getStyle(rootElm.firstElementChild, 'padding-left') || dom.getStyle(rootElm.firstElementChild, 'padding-right')) {\n          return false;\n        } else {\n          return forcedRootBlock === firstElement.nodeName.toLowerCase();\n        }\n      } else {\n        return false;\n      }\n    };\n    const setup$q = editor => {\n      var _a;\n      const dom = editor.dom;\n      const rootBlock = getForcedRootBlock(editor);\n      const placeholder = (_a = getPlaceholder(editor)) !== null && _a !== void 0 ? _a : '';\n      const updatePlaceholder = (e, initial) => {\n        if (isNonTypingKeyboardEvent(e)) {\n          return;\n        }\n        const body = editor.getBody();\n        const showPlaceholder = isTypingKeyboardEvent(e) ? false : isVisuallyEmpty(dom, body, rootBlock);\n        const isPlaceholderShown = dom.getAttrib(body, placeholderAttr) !== '';\n        if (isPlaceholderShown !== showPlaceholder || initial) {\n          dom.setAttrib(body, placeholderAttr, showPlaceholder ? placeholder : null);\n          dom.setAttrib(body, 'aria-placeholder', showPlaceholder ? placeholder : null);\n          firePlaceholderToggle(editor, showPlaceholder);\n          editor.on(showPlaceholder ? 'keydown' : 'keyup', updatePlaceholder);\n          editor.off(showPlaceholder ? 'keyup' : 'keydown', updatePlaceholder);\n        }\n      };\n      if (isNotEmpty(placeholder)) {\n        editor.on('init', e => {\n          updatePlaceholder(e, true);\n          editor.on('change SetContent ExecCommand', updatePlaceholder);\n          editor.on('paste', e => Delay.setEditorTimeout(editor, () => updatePlaceholder(e)));\n        });\n      }\n    };\n\n    const blockPosition = (block, position) => ({\n      block,\n      position\n    });\n    const blockBoundary = (from, to) => ({\n      from,\n      to\n    });\n    const getBlockPosition = (rootNode, pos) => {\n      const rootElm = SugarElement.fromDom(rootNode);\n      const containerElm = SugarElement.fromDom(pos.container());\n      return getParentBlock$2(rootElm, containerElm).map(block => blockPosition(block, pos));\n    };\n    const isDifferentBlocks = blockBoundary => !eq(blockBoundary.from.block, blockBoundary.to.block);\n    const getClosestHost = (root, scope) => {\n      const isRoot = node => eq(node, root);\n      const isHost = node => isTableCell$2(node) || isContentEditableTrue$3(node.dom);\n      return closest$4(scope, isHost, isRoot).filter(isElement$7).getOr(root);\n    };\n    const hasSameHost = (rootNode, blockBoundary) => {\n      const root = SugarElement.fromDom(rootNode);\n      return eq(getClosestHost(root, blockBoundary.from.block), getClosestHost(root, blockBoundary.to.block));\n    };\n    const isEditable$2 = blockBoundary => isContentEditableFalse$a(blockBoundary.from.block.dom) === false && isContentEditableFalse$a(blockBoundary.to.block.dom) === false;\n    const hasValidBlocks = blockBoundary => {\n      const isValidBlock = block => isTextBlock$2(block) || hasBlockAttr(block.dom);\n      return isValidBlock(blockBoundary.from.block) && isValidBlock(blockBoundary.to.block);\n    };\n    const skipLastBr = (rootNode, forward, blockPosition) => {\n      if (isBr$6(blockPosition.position.getNode()) && !isEmpty$2(blockPosition.block)) {\n        return positionIn(false, blockPosition.block.dom).bind(lastPositionInBlock => {\n          if (lastPositionInBlock.isEqual(blockPosition.position)) {\n            return fromPosition(forward, rootNode, lastPositionInBlock).bind(to => getBlockPosition(rootNode, to));\n          } else {\n            return Optional.some(blockPosition);\n          }\n        }).getOr(blockPosition);\n      } else {\n        return blockPosition;\n      }\n    };\n    const readFromRange = (rootNode, forward, rng) => {\n      const fromBlockPos = getBlockPosition(rootNode, CaretPosition.fromRangeStart(rng));\n      const toBlockPos = fromBlockPos.bind(blockPos => fromPosition(forward, rootNode, blockPos.position).bind(to => getBlockPosition(rootNode, to).map(blockPos => skipLastBr(rootNode, forward, blockPos))));\n      return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(blockBoundary => isDifferentBlocks(blockBoundary) && hasSameHost(rootNode, blockBoundary) && isEditable$2(blockBoundary) && hasValidBlocks(blockBoundary));\n    };\n    const read$1 = (rootNode, forward, rng) => rng.collapsed ? readFromRange(rootNode, forward, rng) : Optional.none();\n\n    const getChildrenUntilBlockBoundary = block => {\n      const children = children$1(block);\n      return findIndex$2(children, isBlock$2).fold(constant(children), index => children.slice(0, index));\n    };\n    const extractChildren = block => {\n      const children = getChildrenUntilBlockBoundary(block);\n      each$e(children, remove$6);\n      return children;\n    };\n    const removeEmptyRoot = (rootNode, block) => {\n      const parents = parentsAndSelf(block, rootNode);\n      return find$2(parents.reverse(), element => isEmpty$2(element)).each(remove$6);\n    };\n    const isEmptyBefore = el => filter$5(prevSiblings(el), el => !isEmpty$2(el)).length === 0;\n    const nestedBlockMerge = (rootNode, fromBlock, toBlock, insertionPoint) => {\n      if (isEmpty$2(toBlock)) {\n        fillWithPaddingBr(toBlock);\n        return firstPositionIn(toBlock.dom);\n      }\n      if (isEmptyBefore(insertionPoint) && isEmpty$2(fromBlock)) {\n        before$3(insertionPoint, SugarElement.fromTag('br'));\n      }\n      const position = prevPosition(toBlock.dom, CaretPosition.before(insertionPoint.dom));\n      each$e(extractChildren(fromBlock), child => {\n        before$3(insertionPoint, child);\n      });\n      removeEmptyRoot(rootNode, fromBlock);\n      return position;\n    };\n    const sidelongBlockMerge = (rootNode, fromBlock, toBlock) => {\n      if (isEmpty$2(toBlock)) {\n        remove$6(toBlock);\n        if (isEmpty$2(fromBlock)) {\n          fillWithPaddingBr(fromBlock);\n        }\n        return firstPositionIn(fromBlock.dom);\n      }\n      const position = lastPositionIn(toBlock.dom);\n      each$e(extractChildren(fromBlock), child => {\n        append$1(toBlock, child);\n      });\n      removeEmptyRoot(rootNode, fromBlock);\n      return position;\n    };\n    const findInsertionPoint = (toBlock, block) => {\n      const parentsAndSelf$1 = parentsAndSelf(block, toBlock);\n      return Optional.from(parentsAndSelf$1[parentsAndSelf$1.length - 1]);\n    };\n    const getInsertionPoint = (fromBlock, toBlock) => contains(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Optional.none();\n    const trimBr = (first, block) => {\n      positionIn(first, block.dom).bind(position => Optional.from(position.getNode())).map(SugarElement.fromDom).filter(isBr$5).each(remove$6);\n    };\n    const mergeBlockInto = (rootNode, fromBlock, toBlock) => {\n      trimBr(true, fromBlock);\n      trimBr(false, toBlock);\n      return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock), curry(nestedBlockMerge, rootNode, fromBlock, toBlock));\n    };\n    const mergeBlocks = (rootNode, forward, block1, block2) => forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2);\n\n    const backspaceDelete$8 = (editor, forward) => {\n      const rootNode = SugarElement.fromDom(editor.getBody());\n      const position = read$1(rootNode.dom, forward, editor.selection.getRng()).map(blockBoundary => () => {\n        mergeBlocks(rootNode, forward, blockBoundary.from.block, blockBoundary.to.block).each(pos => {\n          editor.selection.setRng(pos.toRange());\n        });\n      });\n      return position;\n    };\n\n    const deleteRangeMergeBlocks = (rootNode, selection) => {\n      const rng = selection.getRng();\n      return lift2(getParentBlock$2(rootNode, SugarElement.fromDom(rng.startContainer)), getParentBlock$2(rootNode, SugarElement.fromDom(rng.endContainer)), (block1, block2) => {\n        if (!eq(block1, block2)) {\n          return Optional.some(() => {\n            rng.deleteContents();\n            mergeBlocks(rootNode, true, block1, block2).each(pos => {\n              selection.setRng(pos.toRange());\n            });\n          });\n        } else {\n          return Optional.none();\n        }\n      }).getOr(Optional.none());\n    };\n    const isRawNodeInTable = (root, rawNode) => {\n      const node = SugarElement.fromDom(rawNode);\n      const isRoot = curry(eq, root);\n      return ancestor$3(node, isTableCell$2, isRoot).isSome();\n    };\n    const isSelectionInTable = (root, rng) => isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);\n    const isEverythingSelected = (root, rng) => {\n      const noPrevious = prevPosition(root.dom, CaretPosition.fromRangeStart(rng)).isNone();\n      const noNext = nextPosition(root.dom, CaretPosition.fromRangeEnd(rng)).isNone();\n      return !isSelectionInTable(root, rng) && noPrevious && noNext;\n    };\n    const emptyEditor = editor => {\n      return Optional.some(() => {\n        editor.setContent('');\n        editor.selection.setCursorLocation();\n      });\n    };\n    const deleteRange$1 = editor => {\n      const rootNode = SugarElement.fromDom(editor.getBody());\n      const rng = editor.selection.getRng();\n      return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection);\n    };\n    const backspaceDelete$7 = (editor, _forward) => editor.selection.isCollapsed() ? Optional.none() : deleteRange$1(editor);\n\n    const showCaret = (direction, editor, node, before, scrollIntoView) => Optional.from(editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView));\n    const getNodeRange = node => {\n      const rng = node.ownerDocument.createRange();\n      rng.selectNode(node);\n      return rng;\n    };\n    const selectNode = (editor, node) => {\n      const e = editor.dispatch('BeforeObjectSelected', { target: node });\n      if (e.isDefaultPrevented()) {\n        return Optional.none();\n      }\n      return Optional.some(getNodeRange(node));\n    };\n    const renderCaretAtRange = (editor, range, scrollIntoView) => {\n      const normalizedRange = normalizeRange(1, editor.getBody(), range);\n      const caretPosition = CaretPosition.fromRangeStart(normalizedRange);\n      const caretPositionNode = caretPosition.getNode();\n      if (isInlineFakeCaretTarget(caretPositionNode)) {\n        return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);\n      }\n      const caretPositionBeforeNode = caretPosition.getNode(true);\n      if (isInlineFakeCaretTarget(caretPositionBeforeNode)) {\n        return showCaret(1, editor, caretPositionBeforeNode, false, false);\n      }\n      const ceRoot = getContentEditableRoot$1(editor.dom.getRoot(), caretPosition.getNode());\n      if (isInlineFakeCaretTarget(ceRoot)) {\n        return showCaret(1, editor, ceRoot, false, scrollIntoView);\n      }\n      return Optional.none();\n    };\n    const renderRangeCaret = (editor, range, scrollIntoView) => range.collapsed ? renderCaretAtRange(editor, range, scrollIntoView).getOr(range) : range;\n\n    const isBeforeBoundary = pos => isBeforeContentEditableFalse(pos) || isBeforeMedia(pos);\n    const isAfterBoundary = pos => isAfterContentEditableFalse(pos) || isAfterMedia(pos);\n    const trimEmptyTextNode = (dom, node) => {\n      if (isText$a(node) && node.data.length === 0) {\n        dom.remove(node);\n      }\n    };\n    const deleteContentAndShowCaret = (editor, range, node, direction, forward, peekCaretPosition) => {\n      showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true).each(caretRange => {\n        if (range.collapsed) {\n          const deleteRange = range.cloneRange();\n          if (forward) {\n            deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset);\n          } else {\n            deleteRange.setStart(caretRange.endContainer, caretRange.endOffset);\n          }\n          deleteRange.deleteContents();\n        } else {\n          range.deleteContents();\n        }\n        editor.selection.setRng(caretRange);\n      });\n      trimEmptyTextNode(editor.dom, node);\n    };\n    const deleteBoundaryText = (editor, forward) => {\n      const range = editor.selection.getRng();\n      if (!isText$a(range.commonAncestorContainer)) {\n        return Optional.none();\n      }\n      const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n      const caretWalker = CaretWalker(editor.getBody());\n      const getNextPosFn = curry(getVisualCaretPosition, forward ? caretWalker.next : caretWalker.prev);\n      const isBeforeFn = forward ? isBeforeBoundary : isAfterBoundary;\n      const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n      const nextCaretPosition = getNextPosFn(caretPosition);\n      const normalizedNextCaretPosition = nextCaretPosition ? normalizePosition(forward, nextCaretPosition) : nextCaretPosition;\n      if (!normalizedNextCaretPosition || !isMoveInsideSameBlock(caretPosition, normalizedNextCaretPosition)) {\n        return Optional.none();\n      } else if (isBeforeFn(normalizedNextCaretPosition)) {\n        return Optional.some(() => deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, normalizedNextCaretPosition));\n      }\n      const peekCaretPosition = getNextPosFn(normalizedNextCaretPosition);\n      if (peekCaretPosition && isBeforeFn(peekCaretPosition)) {\n        if (isMoveInsideSameBlock(normalizedNextCaretPosition, peekCaretPosition)) {\n          return Optional.some(() => deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition));\n        }\n      }\n      return Optional.none();\n    };\n    const backspaceDelete$6 = (editor, forward) => deleteBoundaryText(editor, forward);\n\n    const getEdgeCefPosition = (editor, atStart) => {\n      const root = editor.getBody();\n      return atStart ? firstPositionIn(root).filter(isBeforeContentEditableFalse) : lastPositionIn(root).filter(isAfterContentEditableFalse);\n    };\n    const isCefAtEdgeSelected = editor => {\n      const rng = editor.selection.getRng();\n      return !rng.collapsed && (getEdgeCefPosition(editor, true).exists(pos => pos.isEqual(CaretPosition.fromRangeStart(rng))) || getEdgeCefPosition(editor, false).exists(pos => pos.isEqual(CaretPosition.fromRangeEnd(rng))));\n    };\n\n    const isCompoundElement = node => isNonNullable(node) && (isTableCell$2(SugarElement.fromDom(node)) || isListItem$1(SugarElement.fromDom(node)));\n    const DeleteAction = Adt.generate([\n      { remove: ['element'] },\n      { moveToElement: ['element'] },\n      { moveToPosition: ['position'] }\n    ]);\n    const isAtContentEditableBlockCaret = (forward, from) => {\n      const elm = from.getNode(!forward);\n      const caretLocation = forward ? 'after' : 'before';\n      return isElement$6(elm) && elm.getAttribute('data-mce-caret') === caretLocation;\n    };\n    const isDeleteFromCefDifferentBlocks = (root, forward, from, to) => {\n      const inSameBlock = elm => isInline$1(SugarElement.fromDom(elm)) && !isInSameBlock(from, to, root);\n      return getRelativeCefElm(!forward, from).fold(() => getRelativeCefElm(forward, to).fold(never, inSameBlock), inSameBlock);\n    };\n    const deleteEmptyBlockOrMoveToCef = (root, forward, from, to) => {\n      const toCefElm = to.getNode(!forward);\n      return getParentBlock$2(SugarElement.fromDom(root), SugarElement.fromDom(from.getNode())).map(blockElm => isEmpty$2(blockElm) ? DeleteAction.remove(blockElm.dom) : DeleteAction.moveToElement(toCefElm)).orThunk(() => Optional.some(DeleteAction.moveToElement(toCefElm)));\n    };\n    const findCefPosition = (root, forward, from) => fromPosition(forward, root, from).bind(to => {\n      if (isCompoundElement(to.getNode())) {\n        return Optional.none();\n      } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) {\n        return Optional.none();\n      } else if (forward && isContentEditableFalse$a(to.getNode())) {\n        return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\n      } else if (!forward && isContentEditableFalse$a(to.getNode(true))) {\n        return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\n      } else if (forward && isAfterContentEditableFalse(from)) {\n        return Optional.some(DeleteAction.moveToPosition(to));\n      } else if (!forward && isBeforeContentEditableFalse(from)) {\n        return Optional.some(DeleteAction.moveToPosition(to));\n      } else {\n        return Optional.none();\n      }\n    });\n    const getContentEditableBlockAction = (forward, elm) => {\n      if (isNullable(elm)) {\n        return Optional.none();\n      } else if (forward && isContentEditableFalse$a(elm.nextSibling)) {\n        return Optional.some(DeleteAction.moveToElement(elm.nextSibling));\n      } else if (!forward && isContentEditableFalse$a(elm.previousSibling)) {\n        return Optional.some(DeleteAction.moveToElement(elm.previousSibling));\n      } else {\n        return Optional.none();\n      }\n    };\n    const skipMoveToActionFromInlineCefToContent = (root, from, deleteAction) => deleteAction.fold(elm => Optional.some(DeleteAction.remove(elm)), elm => Optional.some(DeleteAction.moveToElement(elm)), to => {\n      if (isInSameBlock(from, to, root)) {\n        return Optional.none();\n      } else {\n        return Optional.some(DeleteAction.moveToPosition(to));\n      }\n    });\n    const getContentEditableAction = (root, forward, from) => {\n      if (isAtContentEditableBlockCaret(forward, from)) {\n        return getContentEditableBlockAction(forward, from.getNode(!forward)).orThunk(() => findCefPosition(root, forward, from));\n      } else {\n        return findCefPosition(root, forward, from).bind(deleteAction => skipMoveToActionFromInlineCefToContent(root, from, deleteAction));\n      }\n    };\n    const read = (root, forward, rng) => {\n      const normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);\n      const from = CaretPosition.fromRangeStart(normalizedRange);\n      const rootElement = SugarElement.fromDom(root);\n      if (!forward && isAfterContentEditableFalse(from)) {\n        return Optional.some(DeleteAction.remove(from.getNode(true)));\n      } else if (forward && isBeforeContentEditableFalse(from)) {\n        return Optional.some(DeleteAction.remove(from.getNode()));\n      } else if (!forward && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from)) {\n        return findPreviousBr(rootElement, from).map(br => DeleteAction.remove(br.getNode()));\n      } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr$1(rootElement, from)) {\n        return findNextBr(rootElement, from).map(br => DeleteAction.remove(br.getNode()));\n      } else {\n        return getContentEditableAction(root, forward, from);\n      }\n    };\n\n    const deleteElement$1 = (editor, forward) => element => {\n      editor._selectionOverrides.hideFakeCaret();\n      deleteElement$2(editor, forward, SugarElement.fromDom(element));\n      return true;\n    };\n    const moveToElement = (editor, forward) => element => {\n      const pos = forward ? CaretPosition.before(element) : CaretPosition.after(element);\n      editor.selection.setRng(pos.toRange());\n      return true;\n    };\n    const moveToPosition = editor => pos => {\n      editor.selection.setRng(pos.toRange());\n      return true;\n    };\n    const getAncestorCe = (editor, node) => Optional.from(getContentEditableRoot$1(editor.getBody(), node));\n    const backspaceDeleteCaret = (editor, forward) => {\n      const selectedNode = editor.selection.getNode();\n      return getAncestorCe(editor, selectedNode).filter(isContentEditableFalse$a).fold(() => read(editor.getBody(), forward, editor.selection.getRng()).map(deleteAction => () => deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor))), () => Optional.some(noop));\n    };\n    const deleteOffscreenSelection = rootElement => {\n      each$e(descendants(rootElement, '.mce-offscreen-selection'), remove$6);\n    };\n    const backspaceDeleteRange = (editor, forward) => {\n      const selectedNode = editor.selection.getNode();\n      if (isContentEditableFalse$a(selectedNode) && !isTableCell$3(selectedNode)) {\n        const hasCefAncestor = getAncestorCe(editor, selectedNode.parentNode).filter(isContentEditableFalse$a);\n        return hasCefAncestor.fold(() => Optional.some(() => {\n          deleteOffscreenSelection(SugarElement.fromDom(editor.getBody()));\n          deleteElement$2(editor, forward, SugarElement.fromDom(editor.selection.getNode()));\n          paddEmptyBody(editor);\n        }), () => Optional.some(noop));\n      }\n      if (isCefAtEdgeSelected(editor)) {\n        return Optional.some(() => {\n          deleteRangeContents(editor, editor.selection.getRng(), SugarElement.fromDom(editor.getBody()));\n        });\n      }\n      return Optional.none();\n    };\n    const paddEmptyElement = editor => {\n      const dom = editor.dom, selection = editor.selection;\n      const ceRoot = getContentEditableRoot$1(editor.getBody(), selection.getNode());\n      if (isContentEditableTrue$3(ceRoot) && dom.isBlock(ceRoot) && dom.isEmpty(ceRoot)) {\n        const br = dom.create('br', { 'data-mce-bogus': '1' });\n        dom.setHTML(ceRoot, '');\n        ceRoot.appendChild(br);\n        selection.setRng(CaretPosition.before(br).toRange());\n      }\n      return true;\n    };\n    const backspaceDelete$5 = (editor, forward) => {\n      if (editor.selection.isCollapsed()) {\n        return backspaceDeleteCaret(editor, forward);\n      } else {\n        return backspaceDeleteRange(editor, forward);\n      }\n    };\n\n    const deleteCaret$2 = (editor, forward) => {\n      const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n      return fromPosition(forward, editor.getBody(), fromPos).filter(pos => forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos)).bind(pos => getChildNodeAtRelativeOffset(forward ? 0 : -1, pos)).map(elm => () => editor.selection.select(elm));\n    };\n    const backspaceDelete$4 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : Optional.none();\n\n    const isText$2 = isText$a;\n    const startsWithCaretContainer = node => isText$2(node) && node.data[0] === ZWSP$1;\n    const endsWithCaretContainer = node => isText$2(node) && node.data[node.data.length - 1] === ZWSP$1;\n    const createZwsp = node => {\n      var _a;\n      const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n      return doc.createTextNode(ZWSP$1);\n    };\n    const insertBefore = node => {\n      var _a;\n      if (isText$2(node.previousSibling)) {\n        if (endsWithCaretContainer(node.previousSibling)) {\n          return node.previousSibling;\n        } else {\n          node.previousSibling.appendData(ZWSP$1);\n          return node.previousSibling;\n        }\n      } else if (isText$2(node)) {\n        if (startsWithCaretContainer(node)) {\n          return node;\n        } else {\n          node.insertData(0, ZWSP$1);\n          return node;\n        }\n      } else {\n        const newNode = createZwsp(node);\n        (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, node);\n        return newNode;\n      }\n    };\n    const insertAfter = node => {\n      var _a, _b;\n      if (isText$2(node.nextSibling)) {\n        if (startsWithCaretContainer(node.nextSibling)) {\n          return node.nextSibling;\n        } else {\n          node.nextSibling.insertData(0, ZWSP$1);\n          return node.nextSibling;\n        }\n      } else if (isText$2(node)) {\n        if (endsWithCaretContainer(node)) {\n          return node;\n        } else {\n          node.appendData(ZWSP$1);\n          return node;\n        }\n      } else {\n        const newNode = createZwsp(node);\n        if (node.nextSibling) {\n          (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, node.nextSibling);\n        } else {\n          (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.appendChild(newNode);\n        }\n        return newNode;\n      }\n    };\n    const insertInline = (before, node) => before ? insertBefore(node) : insertAfter(node);\n    const insertInlineBefore = curry(insertInline, true);\n    const insertInlineAfter = curry(insertInline, false);\n\n    const insertInlinePos = (pos, before) => {\n      if (isText$a(pos.container())) {\n        return insertInline(before, pos.container());\n      } else {\n        return insertInline(before, pos.getNode());\n      }\n    };\n    const isPosCaretContainer = (pos, caret) => {\n      const caretNode = caret.get();\n      return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode);\n    };\n    const renderCaret = (caret, location) => location.fold(element => {\n      remove$4(caret.get());\n      const text = insertInlineBefore(element);\n      caret.set(text);\n      return Optional.some(CaretPosition(text, text.length - 1));\n    }, element => firstPositionIn(element).map(pos => {\n      if (!isPosCaretContainer(pos, caret)) {\n        remove$4(caret.get());\n        const text = insertInlinePos(pos, true);\n        caret.set(text);\n        return CaretPosition(text, 1);\n      } else {\n        const node = caret.get();\n        return CaretPosition(node, 1);\n      }\n    }), element => lastPositionIn(element).map(pos => {\n      if (!isPosCaretContainer(pos, caret)) {\n        remove$4(caret.get());\n        const text = insertInlinePos(pos, false);\n        caret.set(text);\n        return CaretPosition(text, text.length - 1);\n      } else {\n        const node = caret.get();\n        return CaretPosition(node, node.length - 1);\n      }\n    }), element => {\n      remove$4(caret.get());\n      const text = insertInlineAfter(element);\n      caret.set(text);\n      return Optional.some(CaretPosition(text, 1));\n    });\n\n    const evaluateUntil = (fns, args) => {\n      for (let i = 0; i < fns.length; i++) {\n        const result = fns[i].apply(null, args);\n        if (result.isSome()) {\n          return result;\n        }\n      }\n      return Optional.none();\n    };\n\n    const Location = Adt.generate([\n      { before: ['element'] },\n      { start: ['element'] },\n      { end: ['element'] },\n      { after: ['element'] }\n    ]);\n    const rescope$1 = (rootNode, node) => {\n      const parentBlock = getParentBlock$3(node, rootNode);\n      return parentBlock ? parentBlock : rootNode;\n    };\n    const before = (isInlineTarget, rootNode, pos) => {\n      const nPos = normalizeForwards(pos);\n      const scope = rescope$1(rootNode, nPos.container());\n      return findRootInline(isInlineTarget, scope, nPos).fold(() => nextPosition(scope, nPos).bind(curry(findRootInline, isInlineTarget, scope)).map(inline => Location.before(inline)), Optional.none);\n    };\n    const isNotInsideFormatCaretContainer = (rootNode, elm) => getParentCaretContainer(rootNode, elm) === null;\n    const findInsideRootInline = (isInlineTarget, rootNode, pos) => findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));\n    const start$1 = (isInlineTarget, rootNode, pos) => {\n      const nPos = normalizeBackwards(pos);\n      return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(inline => {\n        const prevPos = prevPosition(inline, nPos);\n        return prevPos.isNone() ? Optional.some(Location.start(inline)) : Optional.none();\n      });\n    };\n    const end = (isInlineTarget, rootNode, pos) => {\n      const nPos = normalizeForwards(pos);\n      return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(inline => {\n        const nextPos = nextPosition(inline, nPos);\n        return nextPos.isNone() ? Optional.some(Location.end(inline)) : Optional.none();\n      });\n    };\n    const after = (isInlineTarget, rootNode, pos) => {\n      const nPos = normalizeBackwards(pos);\n      const scope = rescope$1(rootNode, nPos.container());\n      return findRootInline(isInlineTarget, scope, nPos).fold(() => prevPosition(scope, nPos).bind(curry(findRootInline, isInlineTarget, scope)).map(inline => Location.after(inline)), Optional.none);\n    };\n    const isValidLocation = location => !isRtl(getElement(location));\n    const readLocation = (isInlineTarget, rootNode, pos) => {\n      const location = evaluateUntil([\n        before,\n        start$1,\n        end,\n        after\n      ], [\n        isInlineTarget,\n        rootNode,\n        pos\n      ]);\n      return location.filter(isValidLocation);\n    };\n    const getElement = location => location.fold(identity, identity, identity, identity);\n    const getName = location => location.fold(constant('before'), constant('start'), constant('end'), constant('after'));\n    const outside = location => location.fold(Location.before, Location.before, Location.after, Location.after);\n    const inside = location => location.fold(Location.start, Location.start, Location.end, Location.end);\n    const isEq = (location1, location2) => getName(location1) === getName(location2) && getElement(location1) === getElement(location2);\n    const betweenInlines = (forward, isInlineTarget, rootNode, from, to, location) => lift2(findRootInline(isInlineTarget, rootNode, from), findRootInline(isInlineTarget, rootNode, to), (fromInline, toInline) => {\n      if (fromInline !== toInline && hasSameParentBlock(rootNode, fromInline, toInline)) {\n        return Location.after(forward ? fromInline : toInline);\n      } else {\n        return location;\n      }\n    }).getOr(location);\n    const skipNoMovement = (fromLocation, toLocation) => fromLocation.fold(always, fromLocation => !isEq(fromLocation, toLocation));\n    const findLocationTraverse = (forward, isInlineTarget, rootNode, fromLocation, pos) => {\n      const from = normalizePosition(forward, pos);\n      const to = fromPosition(forward, rootNode, from).map(curry(normalizePosition, forward));\n      const location = to.fold(() => fromLocation.map(outside), to => readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation)));\n      return location.filter(isValidLocation);\n    };\n    const findLocationSimple = (forward, location) => {\n      if (forward) {\n        return location.fold(compose(Optional.some, Location.start), Optional.none, compose(Optional.some, Location.after), Optional.none);\n      } else {\n        return location.fold(Optional.none, compose(Optional.some, Location.before), Optional.none, compose(Optional.some, Location.end));\n      }\n    };\n    const findLocation$1 = (forward, isInlineTarget, rootNode, pos) => {\n      const from = normalizePosition(forward, pos);\n      const fromLocation = readLocation(isInlineTarget, rootNode, from);\n      return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(() => findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos));\n    };\n\n    const hasSelectionModifyApi = editor => {\n      return isFunction(editor.selection.getSel().modify);\n    };\n    const moveRel = (forward, selection, pos) => {\n      const delta = forward ? 1 : -1;\n      selection.setRng(CaretPosition(pos.container(), pos.offset() + delta).toRange());\n      selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');\n      return true;\n    };\n    const moveByWord = (forward, editor) => {\n      const rng = editor.selection.getRng();\n      const pos = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n      if (!hasSelectionModifyApi(editor)) {\n        return false;\n      } else if (forward && isBeforeInline(pos)) {\n        return moveRel(true, editor.selection, pos);\n      } else if (!forward && isAfterInline(pos)) {\n        return moveRel(false, editor.selection, pos);\n      } else {\n        return false;\n      }\n    };\n\n    var BreakType;\n    (function (BreakType) {\n      BreakType[BreakType['Br'] = 0] = 'Br';\n      BreakType[BreakType['Block'] = 1] = 'Block';\n      BreakType[BreakType['Wrap'] = 2] = 'Wrap';\n      BreakType[BreakType['Eol'] = 3] = 'Eol';\n    }(BreakType || (BreakType = {})));\n    const flip = (direction, positions) => direction === HDirection.Backwards ? reverse(positions) : positions;\n    const walk$1 = (direction, caretWalker, pos) => direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos);\n    const getBreakType = (scope, direction, currentPos, nextPos) => {\n      if (isBr$6(nextPos.getNode(direction === HDirection.Forwards))) {\n        return BreakType.Br;\n      } else if (isInSameBlock(currentPos, nextPos) === false) {\n        return BreakType.Block;\n      } else {\n        return BreakType.Wrap;\n      }\n    };\n    const getPositionsUntil = (predicate, direction, scope, start) => {\n      const caretWalker = CaretWalker(scope);\n      let currentPos = start;\n      const positions = [];\n      while (currentPos) {\n        const nextPos = walk$1(direction, caretWalker, currentPos);\n        if (!nextPos) {\n          break;\n        }\n        if (isBr$6(nextPos.getNode(false))) {\n          if (direction === HDirection.Forwards) {\n            return {\n              positions: flip(direction, positions).concat([nextPos]),\n              breakType: BreakType.Br,\n              breakAt: Optional.some(nextPos)\n            };\n          } else {\n            return {\n              positions: flip(direction, positions),\n              breakType: BreakType.Br,\n              breakAt: Optional.some(nextPos)\n            };\n          }\n        }\n        if (!nextPos.isVisible()) {\n          currentPos = nextPos;\n          continue;\n        }\n        if (predicate(currentPos, nextPos)) {\n          const breakType = getBreakType(scope, direction, currentPos, nextPos);\n          return {\n            positions: flip(direction, positions),\n            breakType,\n            breakAt: Optional.some(nextPos)\n          };\n        }\n        positions.push(nextPos);\n        currentPos = nextPos;\n      }\n      return {\n        positions: flip(direction, positions),\n        breakType: BreakType.Eol,\n        breakAt: Optional.none()\n      };\n    };\n    const getAdjacentLinePositions = (direction, getPositionsUntilBreak, scope, start) => getPositionsUntilBreak(scope, start).breakAt.map(pos => {\n      const positions = getPositionsUntilBreak(scope, pos).positions;\n      return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions);\n    }).getOr([]);\n    const findClosestHorizontalPositionFromPoint = (positions, x) => foldl(positions, (acc, newPos) => acc.fold(() => Optional.some(newPos), lastPos => lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), (lastRect, newRect) => {\n      const lastDist = Math.abs(x - lastRect.left);\n      const newDist = Math.abs(x - newRect.left);\n      return newDist <= lastDist ? newPos : lastPos;\n    }).or(acc)), Optional.none());\n    const findClosestHorizontalPosition = (positions, pos) => head(pos.getClientRects()).bind(targetRect => findClosestHorizontalPositionFromPoint(positions, targetRect.left));\n    const getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);\n    const getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);\n    const getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);\n    const getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);\n    const isAtFirstLine = (scope, pos) => getPositionsUntilPreviousLine(scope, pos).breakAt.isNone();\n    const isAtLastLine = (scope, pos) => getPositionsUntilNextLine(scope, pos).breakAt.isNone();\n    const getFirstLinePositions = scope => firstPositionIn(scope).map(pos => [pos].concat(getPositionsUntilNextLine(scope, pos).positions)).getOr([]);\n    const getLastLinePositions = scope => lastPositionIn(scope).map(pos => getPositionsUntilPreviousLine(scope, pos).positions.concat(pos)).getOr([]);\n    const getClosestPositionAbove = (scope, pos) => findClosestHorizontalPosition(getPositionsAbove(scope, pos), pos);\n    const getClosestPositionBelow = (scope, pos) => findClosestHorizontalPosition(getPositionsBelow(scope, pos), pos);\n\n    const isContentEditableFalse$4 = isContentEditableFalse$a;\n    const distanceToRectLeft$1 = (clientRect, clientX) => Math.abs(clientRect.left - clientX);\n    const distanceToRectRight$1 = (clientRect, clientX) => Math.abs(clientRect.right - clientX);\n    const isNodeClientRect = rect => hasNonNullableKey(rect, 'node');\n    const findClosestClientRect = (clientRects, clientX) => reduce(clientRects, (oldClientRect, clientRect) => {\n      const oldDistance = Math.min(distanceToRectLeft$1(oldClientRect, clientX), distanceToRectRight$1(oldClientRect, clientX));\n      const newDistance = Math.min(distanceToRectLeft$1(clientRect, clientX), distanceToRectRight$1(clientRect, clientX));\n      if (newDistance === oldDistance && isNodeClientRect(clientRect) && isContentEditableFalse$4(clientRect.node)) {\n        return clientRect;\n      }\n      if (newDistance < oldDistance) {\n        return clientRect;\n      }\n      return oldClientRect;\n    });\n\n    const getNodeClientRects = node => {\n      const toArrayWithNode = clientRects => {\n        return map$3(clientRects, rect => {\n          const clientRect = clone$1(rect);\n          clientRect.node = node;\n          return clientRect;\n        });\n      };\n      if (isElement$6(node)) {\n        return toArrayWithNode(node.getClientRects());\n      } else if (isText$a(node)) {\n        const rng = node.ownerDocument.createRange();\n        rng.setStart(node, 0);\n        rng.setEnd(node, node.data.length);\n        return toArrayWithNode(rng.getClientRects());\n      } else {\n        return [];\n      }\n    };\n    const getClientRects = nodes => bind$3(nodes, getNodeClientRects);\n\n    var VDirection;\n    (function (VDirection) {\n      VDirection[VDirection['Up'] = -1] = 'Up';\n      VDirection[VDirection['Down'] = 1] = 'Down';\n    }(VDirection || (VDirection = {})));\n    const findUntil = (direction, root, predicateFn, node) => {\n      let currentNode = node;\n      while (currentNode = findNode(currentNode, direction, isEditableCaretCandidate$1, root)) {\n        if (predicateFn(currentNode)) {\n          return;\n        }\n      }\n    };\n    const walkUntil = (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) => {\n      let line = 0;\n      const result = [];\n      const add = node => {\n        let clientRects = getClientRects([node]);\n        if (direction === -1) {\n          clientRects = clientRects.reverse();\n        }\n        for (let i = 0; i < clientRects.length; i++) {\n          const clientRect = clientRects[i];\n          if (isBeflowFn(clientRect, targetClientRect)) {\n            continue;\n          }\n          if (result.length > 0 && isAboveFn(clientRect, last$2(result))) {\n            line++;\n          }\n          clientRect.line = line;\n          if (predicateFn(clientRect)) {\n            return true;\n          }\n          result.push(clientRect);\n        }\n        return false;\n      };\n      const targetClientRect = last$2(caretPosition.getClientRects());\n      if (!targetClientRect) {\n        return result;\n      }\n      const node = caretPosition.getNode();\n      if (node) {\n        add(node);\n        findUntil(direction, root, add, node);\n      }\n      return result;\n    };\n    const aboveLineNumber = (lineNumber, clientRect) => clientRect.line > lineNumber;\n    const isLineNumber = (lineNumber, clientRect) => clientRect.line === lineNumber;\n    const upUntil = curry(walkUntil, VDirection.Up, isAbove$1, isBelow$1);\n    const downUntil = curry(walkUntil, VDirection.Down, isBelow$1, isAbove$1);\n    const getLastClientRect = caretPosition => {\n      return last$2(caretPosition.getClientRects());\n    };\n    const positionsUntil = (direction, root, predicateFn, node) => {\n      const caretWalker = CaretWalker(root);\n      let walkFn;\n      let isBelowFn;\n      let isAboveFn;\n      let caretPosition;\n      const result = [];\n      let line = 0;\n      if (direction === 1) {\n        walkFn = caretWalker.next;\n        isBelowFn = isBelow$1;\n        isAboveFn = isAbove$1;\n        caretPosition = CaretPosition.after(node);\n      } else {\n        walkFn = caretWalker.prev;\n        isBelowFn = isAbove$1;\n        isAboveFn = isBelow$1;\n        caretPosition = CaretPosition.before(node);\n      }\n      const targetClientRect = getLastClientRect(caretPosition);\n      do {\n        if (!caretPosition.isVisible()) {\n          continue;\n        }\n        const rect = getLastClientRect(caretPosition);\n        if (isAboveFn(rect, targetClientRect)) {\n          continue;\n        }\n        if (result.length > 0 && isBelowFn(rect, last$2(result))) {\n          line++;\n        }\n        const clientRect = clone$1(rect);\n        clientRect.position = caretPosition;\n        clientRect.line = line;\n        if (predicateFn(clientRect)) {\n          return result;\n        }\n        result.push(clientRect);\n      } while (caretPosition = walkFn(caretPosition));\n      return result;\n    };\n    const isAboveLine = lineNumber => clientRect => aboveLineNumber(lineNumber, clientRect);\n    const isLine = lineNumber => clientRect => isLineNumber(lineNumber, clientRect);\n\n    const moveToRange = (editor, rng) => {\n      editor.selection.setRng(rng);\n      scrollRangeIntoView(editor, editor.selection.getRng());\n    };\n    const renderRangeCaretOpt = (editor, range, scrollIntoView) => Optional.some(renderRangeCaret(editor, range, scrollIntoView));\n    const moveHorizontally = (editor, direction, range, isBefore, isAfter, isElement) => {\n      const forwards = direction === HDirection.Forwards;\n      const caretWalker = CaretWalker(editor.getBody());\n      const getNextPosFn = curry(getVisualCaretPosition, forwards ? caretWalker.next : caretWalker.prev);\n      const isBeforeFn = forwards ? isBefore : isAfter;\n      if (!range.collapsed) {\n        const node = getSelectedNode(range);\n        if (isElement(node)) {\n          return showCaret(direction, editor, node, direction === HDirection.Backwards, false);\n        } else if (isCefAtEdgeSelected(editor)) {\n          const newRange = range.cloneRange();\n          newRange.collapse(direction === HDirection.Backwards);\n          return Optional.from(newRange);\n        }\n      }\n      const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n      if (isBeforeFn(caretPosition)) {\n        return selectNode(editor, caretPosition.getNode(!forwards));\n      }\n      let nextCaretPosition = getNextPosFn(caretPosition);\n      const rangeIsInContainerBlock = isRangeInCaretContainerBlock(range);\n      if (!nextCaretPosition) {\n        return rangeIsInContainerBlock ? Optional.some(range) : Optional.none();\n      } else {\n        nextCaretPosition = normalizePosition(forwards, nextCaretPosition);\n      }\n      if (isBeforeFn(nextCaretPosition)) {\n        return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, false);\n      }\n      const peekCaretPosition = getNextPosFn(nextCaretPosition);\n      if (peekCaretPosition && isBeforeFn(peekCaretPosition)) {\n        if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n          return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, false);\n        }\n      }\n      if (rangeIsInContainerBlock) {\n        return renderRangeCaretOpt(editor, nextCaretPosition.toRange(), false);\n      }\n      return Optional.none();\n    };\n    const moveVertically = (editor, direction, range, isBefore, isAfter, isElement) => {\n      const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n      const caretClientRect = last$2(caretPosition.getClientRects());\n      const forwards = direction === VDirection.Down;\n      const root = editor.getBody();\n      if (!caretClientRect) {\n        return Optional.none();\n      }\n      if (isCefAtEdgeSelected(editor)) {\n        const caretPosition = forwards ? CaretPosition.fromRangeEnd(range) : CaretPosition.fromRangeStart(range);\n        const getClosestFn = !forwards ? getClosestPositionAbove : getClosestPositionBelow;\n        return getClosestFn(root, caretPosition).orThunk(() => Optional.from(caretPosition)).map(pos => pos.toRange());\n      }\n      const walkerFn = forwards ? downUntil : upUntil;\n      const linePositions = walkerFn(root, isAboveLine(1), caretPosition);\n      const nextLinePositions = filter$5(linePositions, isLine(1));\n      const clientX = caretClientRect.left;\n      const nextLineRect = findClosestClientRect(nextLinePositions, clientX);\n      if (nextLineRect && isElement(nextLineRect.node)) {\n        const dist1 = Math.abs(clientX - nextLineRect.left);\n        const dist2 = Math.abs(clientX - nextLineRect.right);\n        return showCaret(direction, editor, nextLineRect.node, dist1 < dist2, false);\n      }\n      let currentNode;\n      if (isBefore(caretPosition)) {\n        currentNode = caretPosition.getNode();\n      } else if (isAfter(caretPosition)) {\n        currentNode = caretPosition.getNode(true);\n      } else {\n        currentNode = getSelectedNode(range);\n      }\n      if (currentNode) {\n        const caretPositions = positionsUntil(direction, root, isAboveLine(1), currentNode);\n        let closestNextLineRect = findClosestClientRect(filter$5(caretPositions, isLine(1)), clientX);\n        if (closestNextLineRect) {\n          return renderRangeCaretOpt(editor, closestNextLineRect.position.toRange(), false);\n        }\n        closestNextLineRect = last$2(filter$5(caretPositions, isLine(0)));\n        if (closestNextLineRect) {\n          return renderRangeCaretOpt(editor, closestNextLineRect.position.toRange(), false);\n        }\n      }\n      if (nextLinePositions.length === 0) {\n        return getLineEndPoint(editor, forwards).filter(forwards ? isAfter : isBefore).map(pos => renderRangeCaret(editor, pos.toRange(), false));\n      }\n      return Optional.none();\n    };\n    const getLineEndPoint = (editor, forward) => {\n      const rng = editor.selection.getRng();\n      const from = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n      const host = getEditingHost(from.container(), editor.getBody());\n      if (forward) {\n        const lineInfo = getPositionsUntilNextLine(host, from);\n        return last$3(lineInfo.positions);\n      } else {\n        const lineInfo = getPositionsUntilPreviousLine(host, from);\n        return head(lineInfo.positions);\n      }\n    };\n    const moveToLineEndPoint$3 = (editor, forward, isElementPosition) => getLineEndPoint(editor, forward).filter(isElementPosition).exists(pos => {\n      editor.selection.setRng(pos.toRange());\n      return true;\n    });\n\n    const setCaretPosition = (editor, pos) => {\n      const rng = editor.dom.createRng();\n      rng.setStart(pos.container(), pos.offset());\n      rng.setEnd(pos.container(), pos.offset());\n      editor.selection.setRng(rng);\n    };\n    const setSelected = (state, elm) => {\n      if (state) {\n        elm.setAttribute('data-mce-selected', 'inline-boundary');\n      } else {\n        elm.removeAttribute('data-mce-selected');\n      }\n    };\n    const renderCaretLocation = (editor, caret, location) => renderCaret(caret, location).map(pos => {\n      setCaretPosition(editor, pos);\n      return location;\n    });\n    const getPositionFromRange = (range, root, forward) => {\n      const start = CaretPosition.fromRangeStart(range);\n      if (range.collapsed) {\n        return start;\n      } else {\n        const end = CaretPosition.fromRangeEnd(range);\n        return forward ? prevPosition(root, end).getOr(end) : nextPosition(root, start).getOr(start);\n      }\n    };\n    const findLocation = (editor, caret, forward) => {\n      const rootNode = editor.getBody();\n      const from = getPositionFromRange(editor.selection.getRng(), rootNode, forward);\n      const isInlineTarget$1 = curry(isInlineTarget, editor);\n      const location = findLocation$1(forward, isInlineTarget$1, rootNode, from);\n      return location.bind(location => renderCaretLocation(editor, caret, location));\n    };\n    const toggleInlines = (isInlineTarget, dom, elms) => {\n      const inlineBoundaries = map$3(descendants(SugarElement.fromDom(dom.getRoot()), '*[data-mce-selected=\"inline-boundary\"]'), e => e.dom);\n      const selectedInlines = filter$5(inlineBoundaries, isInlineTarget);\n      const targetInlines = filter$5(elms, isInlineTarget);\n      each$e(difference(selectedInlines, targetInlines), curry(setSelected, false));\n      each$e(difference(targetInlines, selectedInlines), curry(setSelected, true));\n    };\n    const safeRemoveCaretContainer = (editor, caret) => {\n      const caretValue = caret.get();\n      if (editor.selection.isCollapsed() && !editor.composing && caretValue) {\n        const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n        if (CaretPosition.isTextPosition(pos) && !isAtZwsp(pos)) {\n          setCaretPosition(editor, removeAndReposition(caretValue, pos));\n          caret.set(null);\n        }\n      }\n    };\n    const renderInsideInlineCaret = (isInlineTarget, editor, caret, elms) => {\n      if (editor.selection.isCollapsed()) {\n        const inlines = filter$5(elms, isInlineTarget);\n        each$e(inlines, _inline => {\n          const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n          readLocation(isInlineTarget, editor.getBody(), pos).bind(location => renderCaretLocation(editor, caret, location));\n        });\n      }\n    };\n    const move$2 = (editor, caret, forward) => isInlineBoundariesEnabled(editor) ? findLocation(editor, caret, forward).isSome() : false;\n    const moveWord = (forward, editor, _caret) => isInlineBoundariesEnabled(editor) ? moveByWord(forward, editor) : false;\n    const setupSelectedState = editor => {\n      const caret = Cell(null);\n      const isInlineTarget$1 = curry(isInlineTarget, editor);\n      editor.on('NodeChange', e => {\n        if (isInlineBoundariesEnabled(editor)) {\n          toggleInlines(isInlineTarget$1, editor.dom, e.parents);\n          safeRemoveCaretContainer(editor, caret);\n          renderInsideInlineCaret(isInlineTarget$1, editor, caret, e.parents);\n        }\n      });\n      return caret;\n    };\n    const moveNextWord = curry(moveWord, true);\n    const movePrevWord = curry(moveWord, false);\n    const moveToLineEndPoint$2 = (editor, forward, caret) => {\n      if (isInlineBoundariesEnabled(editor)) {\n        const linePoint = getLineEndPoint(editor, forward).getOrThunk(() => {\n          const rng = editor.selection.getRng();\n          return forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n        });\n        return readLocation(curry(isInlineTarget, editor), editor.getBody(), linePoint).exists(loc => {\n          const outsideLoc = outside(loc);\n          return renderCaret(caret, outsideLoc).exists(pos => {\n            setCaretPosition(editor, pos);\n            return true;\n          });\n        });\n      } else {\n        return false;\n      }\n    };\n\n    const rangeFromPositions = (from, to) => {\n      const range = document.createRange();\n      range.setStart(from.container(), from.offset());\n      range.setEnd(to.container(), to.offset());\n      return range;\n    };\n    const hasOnlyTwoOrLessPositionsLeft = elm => lift2(firstPositionIn(elm), lastPositionIn(elm), (firstPos, lastPos) => {\n      const normalizedFirstPos = normalizePosition(true, firstPos);\n      const normalizedLastPos = normalizePosition(false, lastPos);\n      return nextPosition(elm, normalizedFirstPos).forall(pos => pos.isEqual(normalizedLastPos));\n    }).getOr(true);\n    const setCaretLocation = (editor, caret) => location => renderCaret(caret, location).map(pos => () => setCaretPosition(editor, pos));\n    const deleteFromTo = (editor, caret, from, to) => {\n      const rootNode = editor.getBody();\n      const isInlineTarget$1 = curry(isInlineTarget, editor);\n      editor.undoManager.ignore(() => {\n        editor.selection.setRng(rangeFromPositions(from, to));\n        execNativeDeleteCommand(editor);\n        readLocation(isInlineTarget$1, rootNode, CaretPosition.fromRangeStart(editor.selection.getRng())).map(inside).bind(setCaretLocation(editor, caret)).each(call);\n      });\n      editor.nodeChanged();\n    };\n    const rescope = (rootNode, node) => {\n      const parentBlock = getParentBlock$3(node, rootNode);\n      return parentBlock ? parentBlock : rootNode;\n    };\n    const backspaceDeleteCollapsed = (editor, caret, forward, from) => {\n      const rootNode = rescope(editor.getBody(), from.container());\n      const isInlineTarget$1 = curry(isInlineTarget, editor);\n      const fromLocation = readLocation(isInlineTarget$1, rootNode, from);\n      const location = fromLocation.bind(location => {\n        if (forward) {\n          return location.fold(constant(Optional.some(inside(location))), Optional.none, constant(Optional.some(outside(location))), Optional.none);\n        } else {\n          return location.fold(Optional.none, constant(Optional.some(outside(location))), Optional.none, constant(Optional.some(inside(location))));\n        }\n      });\n      return location.map(setCaretLocation(editor, caret)).getOrThunk(() => {\n        const toPosition = navigate(forward, rootNode, from);\n        const toLocation = toPosition.bind(pos => readLocation(isInlineTarget$1, rootNode, pos));\n        return lift2(fromLocation, toLocation, () => findRootInline(isInlineTarget$1, rootNode, from).bind(elm => {\n          if (hasOnlyTwoOrLessPositionsLeft(elm)) {\n            return Optional.some(() => {\n              deleteElement$2(editor, forward, SugarElement.fromDom(elm));\n            });\n          } else {\n            return Optional.none();\n          }\n        })).getOrThunk(() => toLocation.bind(() => toPosition.map(to => {\n          return () => {\n            if (forward) {\n              deleteFromTo(editor, caret, from, to);\n            } else {\n              deleteFromTo(editor, caret, to, from);\n            }\n          };\n        })));\n      });\n    };\n    const backspaceDelete$3 = (editor, caret, forward) => {\n      if (editor.selection.isCollapsed() && isInlineBoundariesEnabled(editor)) {\n        const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n        return backspaceDeleteCollapsed(editor, caret, forward, from);\n      }\n      return Optional.none();\n    };\n\n    const getParentInlines = (rootElm, startElm) => {\n      const parents = parentsAndSelf(startElm, rootElm);\n      return findIndex$2(parents, isBlock$2).fold(constant(parents), index => parents.slice(0, index));\n    };\n    const hasOnlyOneChild = elm => childNodesCount(elm) === 1;\n    const deleteLastPosition = (forward, editor, target, parentInlines) => {\n      const isFormatElement$1 = curry(isFormatElement, editor);\n      const formatNodes = map$3(filter$5(parentInlines, isFormatElement$1), elm => elm.dom);\n      if (formatNodes.length === 0) {\n        deleteElement$2(editor, forward, target);\n      } else {\n        const pos = replaceWithCaretFormat(target.dom, formatNodes);\n        editor.selection.setRng(pos.toRange());\n      }\n    };\n    const deleteCaret$1 = (editor, forward) => {\n      const rootElm = SugarElement.fromDom(editor.getBody());\n      const startElm = SugarElement.fromDom(editor.selection.getStart());\n      const parentInlines = filter$5(getParentInlines(rootElm, startElm), hasOnlyOneChild);\n      return last$3(parentInlines).bind(target => {\n        const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n        if (willDeleteLastPositionInElement(forward, fromPos, target.dom) && !isEmptyCaretFormatElement(target)) {\n          return Optional.some(() => deleteLastPosition(forward, editor, target, parentInlines));\n        } else {\n          return Optional.none();\n        }\n      });\n    };\n    const backspaceDelete$2 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret$1(editor, forward) : Optional.none();\n\n    const deleteElement = (editor, forward, element) => {\n      if (isNonNullable(element)) {\n        return Optional.some(() => {\n          editor._selectionOverrides.hideFakeCaret();\n          deleteElement$2(editor, forward, SugarElement.fromDom(element));\n        });\n      } else {\n        return Optional.none();\n      }\n    };\n    const deleteCaret = (editor, forward) => {\n      const isNearMedia = forward ? isBeforeMedia : isAfterMedia;\n      const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n      const fromPos = getNormalizedRangeEndPoint(direction, editor.getBody(), editor.selection.getRng());\n      if (isNearMedia(fromPos)) {\n        return deleteElement(editor, forward, fromPos.getNode(!forward));\n      } else {\n        return Optional.from(normalizePosition(forward, fromPos)).filter(pos => isNearMedia(pos) && isMoveInsideSameBlock(fromPos, pos)).bind(pos => deleteElement(editor, forward, pos.getNode(!forward)));\n      }\n    };\n    const deleteRange = (editor, forward) => {\n      const selectedNode = editor.selection.getNode();\n      return isMedia$2(selectedNode) ? deleteElement(editor, forward, selectedNode) : Optional.none();\n    };\n    const backspaceDelete$1 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret(editor, forward) : deleteRange(editor, forward);\n\n    const isEditable$1 = target => closest$4(target, elm => isContentEditableTrue$3(elm.dom) || isContentEditableFalse$a(elm.dom)).exists(elm => isContentEditableTrue$3(elm.dom));\n    const parseIndentValue = value => toInt(value !== null && value !== void 0 ? value : '').getOr(0);\n    const getIndentStyleName = (useMargin, element) => {\n      const indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';\n      const suffix = get$7(element, 'direction') === 'rtl' ? '-right' : '-left';\n      return indentStyleName + suffix;\n    };\n    const indentElement = (dom, command, useMargin, value, unit, element) => {\n      const indentStyleName = getIndentStyleName(useMargin, SugarElement.fromDom(element));\n      const parsedValue = parseIndentValue(dom.getStyle(element, indentStyleName));\n      if (command === 'outdent') {\n        const styleValue = Math.max(0, parsedValue - value);\n        dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');\n      } else {\n        const styleValue = parsedValue + value + unit;\n        dom.setStyle(element, indentStyleName, styleValue);\n      }\n    };\n    const validateBlocks = (editor, blocks) => forall(blocks, block => {\n      const indentStyleName = getIndentStyleName(shouldIndentUseMargin(editor), block);\n      const intentValue = getRaw$1(block, indentStyleName).map(parseIndentValue).getOr(0);\n      const contentEditable = editor.dom.getContentEditable(block.dom);\n      return contentEditable !== 'false' && intentValue > 0;\n    });\n    const canOutdent = editor => {\n      const blocks = getBlocksToIndent(editor);\n      return !editor.mode.isReadOnly() && (blocks.length > 1 || validateBlocks(editor, blocks));\n    };\n    const isListComponent = el => isList(el) || isListItem$1(el);\n    const parentIsListComponent = el => parent(el).exists(isListComponent);\n    const getBlocksToIndent = editor => filter$5(fromDom$1(editor.selection.getSelectedBlocks()), el => !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el));\n    const handle = (editor, command) => {\n      var _a, _b;\n      const {dom} = editor;\n      const indentation = getIndentation(editor);\n      const indentUnit = (_b = (_a = /[a-z%]+$/i.exec(indentation)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 'px';\n      const indentValue = parseIndentValue(indentation);\n      const useMargin = shouldIndentUseMargin(editor);\n      each$e(getBlocksToIndent(editor), block => {\n        indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom);\n      });\n    };\n    const indent = editor => handle(editor, 'indent');\n    const outdent = editor => handle(editor, 'outdent');\n\n    const backspaceDelete = editor => {\n      if (editor.selection.isCollapsed() && canOutdent(editor)) {\n        const dom = editor.dom;\n        const rng = editor.selection.getRng();\n        const pos = CaretPosition.fromRangeStart(rng);\n        const block = dom.getParent(rng.startContainer, dom.isBlock);\n        if (block !== null && isAtStartOfBlock(SugarElement.fromDom(block), pos)) {\n          return Optional.some(() => outdent(editor));\n        }\n      }\n      return Optional.none();\n    };\n\n    const findAction = (editor, caret, forward) => findMap([\n      backspaceDelete,\n      backspaceDelete$5,\n      backspaceDelete$6,\n      (editor, forward) => backspaceDelete$3(editor, caret, forward),\n      backspaceDelete$8,\n      backspaceDelete$9,\n      backspaceDelete$4,\n      backspaceDelete$1,\n      backspaceDelete$7,\n      backspaceDelete$2\n    ], item => item(editor, forward));\n    const deleteCommand = (editor, caret) => {\n      const result = findAction(editor, caret, false);\n      result.fold(() => {\n        execNativeDeleteCommand(editor);\n        paddEmptyBody(editor);\n      }, call);\n    };\n    const forwardDeleteCommand = (editor, caret) => {\n      const result = findAction(editor, caret, true);\n      result.fold(() => execNativeForwardDeleteCommand(editor), call);\n    };\n    const setup$p = (editor, caret) => {\n      editor.addCommand('delete', () => {\n        deleteCommand(editor, caret);\n      });\n      editor.addCommand('forwardDelete', () => {\n        forwardDeleteCommand(editor, caret);\n      });\n    };\n\n    const SIGNIFICANT_MOVE = 5;\n    const LONGPRESS_DELAY = 400;\n    const getTouch = event => {\n      if (event.touches === undefined || event.touches.length !== 1) {\n        return Optional.none();\n      }\n      return Optional.some(event.touches[0]);\n    };\n    const isFarEnough = (touch, data) => {\n      const distX = Math.abs(touch.clientX - data.x);\n      const distY = Math.abs(touch.clientY - data.y);\n      return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n    };\n    const setup$o = editor => {\n      const startData = value$2();\n      const longpressFired = Cell(false);\n      const debounceLongpress = last$1(e => {\n        editor.dispatch('longpress', {\n          ...e,\n          type: 'longpress'\n        });\n        longpressFired.set(true);\n      }, LONGPRESS_DELAY);\n      editor.on('touchstart', e => {\n        getTouch(e).each(touch => {\n          debounceLongpress.cancel();\n          const data = {\n            x: touch.clientX,\n            y: touch.clientY,\n            target: e.target\n          };\n          debounceLongpress.throttle(e);\n          longpressFired.set(false);\n          startData.set(data);\n        });\n      }, true);\n      editor.on('touchmove', e => {\n        debounceLongpress.cancel();\n        getTouch(e).each(touch => {\n          startData.on(data => {\n            if (isFarEnough(touch, data)) {\n              startData.clear();\n              longpressFired.set(false);\n              editor.dispatch('longpresscancel');\n            }\n          });\n        });\n      }, true);\n      editor.on('touchend touchcancel', e => {\n        debounceLongpress.cancel();\n        if (e.type === 'touchcancel') {\n          return;\n        }\n        startData.get().filter(data => data.target.isEqualNode(e.target)).each(() => {\n          if (longpressFired.get()) {\n            e.preventDefault();\n          } else {\n            editor.dispatch('tap', {\n              ...e,\n              type: 'tap'\n            });\n          }\n        });\n      }, true);\n    };\n\n    const isBlockElement = (blockElements, node) => has$2(blockElements, node.nodeName);\n    const isValidTarget = (schema, node) => {\n      if (isText$a(node)) {\n        return true;\n      } else if (isElement$6(node)) {\n        return !isBlockElement(schema.getBlockElements(), node) && !isBookmarkNode$1(node) && !isTransparentBlock(schema, node);\n      } else {\n        return false;\n      }\n    };\n    const hasBlockParent = (blockElements, root, node) => {\n      return exists(parents(SugarElement.fromDom(node), SugarElement.fromDom(root)), elm => {\n        return isBlockElement(blockElements, elm.dom);\n      });\n    };\n    const shouldRemoveTextNode = (blockElements, node) => {\n      if (isText$a(node)) {\n        if (node.data.length === 0) {\n          return true;\n        } else if (/^\\s+$/.test(node.data) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) {\n          return true;\n        }\n      }\n      return false;\n    };\n    const createRootBlock = editor => editor.dom.create(getForcedRootBlock(editor), getForcedRootBlockAttrs(editor));\n    const addRootBlocks = editor => {\n      const dom = editor.dom, selection = editor.selection;\n      const schema = editor.schema;\n      const blockElements = schema.getBlockElements();\n      const startNode = selection.getStart();\n      const rootNode = editor.getBody();\n      let rootBlockNode;\n      let tempNode;\n      let wrapped = false;\n      const forcedRootBlock = getForcedRootBlock(editor);\n      if (!startNode || !isElement$6(startNode)) {\n        return;\n      }\n      const rootNodeName = rootNode.nodeName.toLowerCase();\n      if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, startNode)) {\n        return;\n      }\n      const rng = selection.getRng();\n      const {startContainer, startOffset, endContainer, endOffset} = rng;\n      const restoreSelection = hasFocus(editor);\n      let node = rootNode.firstChild;\n      while (node) {\n        if (isElement$6(node)) {\n          updateElement(schema, node);\n        }\n        if (isValidTarget(schema, node)) {\n          if (shouldRemoveTextNode(blockElements, node)) {\n            tempNode = node;\n            node = node.nextSibling;\n            dom.remove(tempNode);\n            continue;\n          }\n          if (!rootBlockNode) {\n            rootBlockNode = createRootBlock(editor);\n            rootNode.insertBefore(rootBlockNode, node);\n            wrapped = true;\n          }\n          tempNode = node;\n          node = node.nextSibling;\n          rootBlockNode.appendChild(tempNode);\n        } else {\n          rootBlockNode = null;\n          node = node.nextSibling;\n        }\n      }\n      if (wrapped && restoreSelection) {\n        rng.setStart(startContainer, startOffset);\n        rng.setEnd(endContainer, endOffset);\n        selection.setRng(rng);\n        editor.nodeChanged();\n      }\n    };\n    const insertEmptyLine = (editor, root, insertBlock) => {\n      const block = SugarElement.fromDom(createRootBlock(editor));\n      const br = createPaddingBr();\n      append$1(block, br);\n      insertBlock(root, block);\n      const rng = document.createRange();\n      rng.setStartBefore(br.dom);\n      rng.setEndBefore(br.dom);\n      return rng;\n    };\n    const setup$n = editor => {\n      editor.on('NodeChange', curry(addRootBlocks, editor));\n    };\n\n    const hasClass = checkClassName => node => (' ' + node.attr('class') + ' ').indexOf(checkClassName) !== -1;\n    const replaceMatchWithSpan = (editor, content, cls) => {\n      return function (match) {\n        const args = arguments, index = args[args.length - 2];\n        const prevChar = index > 0 ? content.charAt(index - 1) : '';\n        if (prevChar === '\"') {\n          return match;\n        }\n        if (prevChar === '>') {\n          const findStartTagIndex = content.lastIndexOf('<', index);\n          if (findStartTagIndex !== -1) {\n            const tagHtml = content.substring(findStartTagIndex, index);\n            if (tagHtml.indexOf('contenteditable=\"false\"') !== -1) {\n              return match;\n            }\n          }\n        }\n        return '<span class=\"' + cls + '\" data-mce-content=\"' + editor.dom.encode(args[0]) + '\">' + editor.dom.encode(typeof args[1] === 'string' ? args[1] : args[0]) + '</span>';\n      };\n    };\n    const convertRegExpsToNonEditable = (editor, nonEditableRegExps, e) => {\n      let i = nonEditableRegExps.length, content = e.content;\n      if (e.format === 'raw') {\n        return;\n      }\n      while (i--) {\n        content = content.replace(nonEditableRegExps[i], replaceMatchWithSpan(editor, content, getNonEditableClass(editor)));\n      }\n      e.content = content;\n    };\n    const setup$m = editor => {\n      const contentEditableAttrName = 'contenteditable';\n      const editClass = ' ' + Tools.trim(getEditableClass(editor)) + ' ';\n      const nonEditClass = ' ' + Tools.trim(getNonEditableClass(editor)) + ' ';\n      const hasEditClass = hasClass(editClass);\n      const hasNonEditClass = hasClass(nonEditClass);\n      const nonEditableRegExps = getNonEditableRegExps(editor);\n      if (nonEditableRegExps.length > 0) {\n        editor.on('BeforeSetContent', e => {\n          convertRegExpsToNonEditable(editor, nonEditableRegExps, e);\n        });\n      }\n      editor.parser.addAttributeFilter('class', nodes => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          if (hasEditClass(node)) {\n            node.attr(contentEditableAttrName, 'true');\n          } else if (hasNonEditClass(node)) {\n            node.attr(contentEditableAttrName, 'false');\n          }\n        }\n      });\n      editor.serializer.addAttributeFilter(contentEditableAttrName, nodes => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          if (!hasEditClass(node) && !hasNonEditClass(node)) {\n            continue;\n          }\n          if (nonEditableRegExps.length > 0 && node.attr('data-mce-content')) {\n            node.name = '#text';\n            node.type = 3;\n            node.raw = true;\n            node.value = node.attr('data-mce-content');\n          } else {\n            node.attr(contentEditableAttrName, null);\n          }\n        }\n      });\n    };\n\n    const findBlockCaretContainer = editor => descendant(SugarElement.fromDom(editor.getBody()), '*[data-mce-caret]').map(elm => elm.dom).getOrNull();\n    const showBlockCaretContainer = (editor, blockCaretContainer) => {\n      if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n        showCaretContainerBlock(blockCaretContainer);\n        editor.selection.setRng(editor.selection.getRng());\n        editor.selection.scrollIntoView(blockCaretContainer);\n      }\n    };\n    const handleBlockContainer = (editor, e) => {\n      const blockCaretContainer = findBlockCaretContainer(editor);\n      if (!blockCaretContainer) {\n        return;\n      }\n      if (e.type === 'compositionstart') {\n        e.preventDefault();\n        e.stopPropagation();\n        showBlockCaretContainer(editor, blockCaretContainer);\n        return;\n      }\n      if (hasContent(blockCaretContainer)) {\n        showBlockCaretContainer(editor, blockCaretContainer);\n        editor.undoManager.add();\n      }\n    };\n    const setup$l = editor => {\n      editor.on('keyup compositionstart', curry(handleBlockContainer, editor));\n    };\n\n    const isContentEditableFalse$3 = isContentEditableFalse$a;\n    const moveToCeFalseHorizontally = (direction, editor, range) => moveHorizontally(editor, direction, range, isBeforeContentEditableFalse, isAfterContentEditableFalse, isContentEditableFalse$3);\n    const moveToCeFalseVertically = (direction, editor, range) => {\n      const isBefore = caretPosition => isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition);\n      const isAfter = caretPosition => isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition);\n      return moveVertically(editor, direction, range, isBefore, isAfter, isContentEditableFalse$3);\n    };\n    const createTextBlock = editor => {\n      const textBlock = editor.dom.create(getForcedRootBlock(editor));\n      textBlock.innerHTML = '<br data-mce-bogus=\"1\">';\n      return textBlock;\n    };\n    const exitPreBlock = (editor, direction, range) => {\n      const caretWalker = CaretWalker(editor.getBody());\n      const getVisualCaretPosition$1 = curry(getVisualCaretPosition, direction === 1 ? caretWalker.next : caretWalker.prev);\n      if (range.collapsed) {\n        const pre = editor.dom.getParent(range.startContainer, 'PRE');\n        if (!pre) {\n          return;\n        }\n        const caretPos = getVisualCaretPosition$1(CaretPosition.fromRangeStart(range));\n        if (!caretPos) {\n          const newBlock = SugarElement.fromDom(createTextBlock(editor));\n          if (direction === 1) {\n            after$4(SugarElement.fromDom(pre), newBlock);\n          } else {\n            before$3(SugarElement.fromDom(pre), newBlock);\n          }\n          editor.selection.select(newBlock.dom, true);\n          editor.selection.collapse();\n        }\n      }\n    };\n    const getHorizontalRange = (editor, forward) => {\n      const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n      const range = editor.selection.getRng();\n      return moveToCeFalseHorizontally(direction, editor, range).orThunk(() => {\n        exitPreBlock(editor, direction, range);\n        return Optional.none();\n      });\n    };\n    const getVerticalRange = (editor, down) => {\n      const direction = down ? 1 : -1;\n      const range = editor.selection.getRng();\n      return moveToCeFalseVertically(direction, editor, range).orThunk(() => {\n        exitPreBlock(editor, direction, range);\n        return Optional.none();\n      });\n    };\n    const moveH$2 = (editor, forward) => getHorizontalRange(editor, forward).exists(newRange => {\n      moveToRange(editor, newRange);\n      return true;\n    });\n    const moveV$3 = (editor, down) => getVerticalRange(editor, down).exists(newRange => {\n      moveToRange(editor, newRange);\n      return true;\n    });\n    const moveToLineEndPoint$1 = (editor, forward) => {\n      const isCefPosition = forward ? isAfterContentEditableFalse : isBeforeContentEditableFalse;\n      return moveToLineEndPoint$3(editor, forward, isCefPosition);\n    };\n    const selectToEndPoint = (editor, forward) => getEdgeCefPosition(editor, !forward).map(pos => {\n      const rng = pos.toRange();\n      const curRng = editor.selection.getRng();\n      if (forward) {\n        rng.setStart(curRng.startContainer, curRng.startOffset);\n      } else {\n        rng.setEnd(curRng.endContainer, curRng.endOffset);\n      }\n      return rng;\n    }).exists(rng => {\n      moveToRange(editor, rng);\n      return true;\n    });\n\n    const isTarget = node => contains$2(['figcaption'], name(node));\n    const getClosestTargetBlock = (pos, root) => {\n      const isRoot = curry(eq, root);\n      return closest$4(SugarElement.fromDom(pos.container()), isBlock$2, isRoot).filter(isTarget);\n    };\n    const isAtFirstOrLastLine = (root, forward, pos) => forward ? isAtLastLine(root.dom, pos) : isAtFirstLine(root.dom, pos);\n    const moveCaretToNewEmptyLine = (editor, forward) => {\n      const root = SugarElement.fromDom(editor.getBody());\n      const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n      return getClosestTargetBlock(pos, root).exists(() => {\n        if (isAtFirstOrLastLine(root, forward, pos)) {\n          const insertFn = forward ? append$1 : prepend;\n          const rng = insertEmptyLine(editor, root, insertFn);\n          editor.selection.setRng(rng);\n          return true;\n        } else {\n          return false;\n        }\n      });\n    };\n    const moveV$2 = (editor, forward) => {\n      if (editor.selection.isCollapsed()) {\n        return moveCaretToNewEmptyLine(editor, forward);\n      } else {\n        return false;\n      }\n    };\n\n    const baseKeyPattern = {\n      shiftKey: false,\n      altKey: false,\n      ctrlKey: false,\n      metaKey: false,\n      keyCode: 0\n    };\n    const defaultPatterns = patterns => map$3(patterns, pattern => ({\n      ...baseKeyPattern,\n      ...pattern\n    }));\n    const defaultDelayedPatterns = patterns => map$3(patterns, pattern => ({\n      ...baseKeyPattern,\n      ...pattern\n    }));\n    const matchesEvent = (pattern, evt) => evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;\n    const match$1 = (patterns, evt) => bind$3(defaultPatterns(patterns), pattern => matchesEvent(pattern, evt) ? [pattern] : []);\n    const matchDelayed = (patterns, evt) => bind$3(defaultDelayedPatterns(patterns), pattern => matchesEvent(pattern, evt) ? [pattern] : []);\n    const action = (f, ...x) => () => f.apply(null, x);\n    const execute = (patterns, evt) => find$2(match$1(patterns, evt), pattern => pattern.action());\n    const executeWithDelayedAction = (patterns, evt) => findMap(matchDelayed(patterns, evt), pattern => pattern.action());\n\n    const moveH$1 = (editor, forward) => {\n      const direction = forward ? HDirection.Forwards : HDirection.Backwards;\n      const range = editor.selection.getRng();\n      return moveHorizontally(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {\n        moveToRange(editor, newRange);\n        return true;\n      });\n    };\n    const moveV$1 = (editor, down) => {\n      const direction = down ? 1 : -1;\n      const range = editor.selection.getRng();\n      return moveVertically(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {\n        moveToRange(editor, newRange);\n        return true;\n      });\n    };\n    const moveToLineEndPoint = (editor, forward) => {\n      const isNearMedia = forward ? isAfterMedia : isBeforeMedia;\n      return moveToLineEndPoint$3(editor, forward, isNearMedia);\n    };\n\n    const adt = Adt.generate([\n      { none: ['current'] },\n      { first: ['current'] },\n      {\n        middle: [\n          'current',\n          'target'\n        ]\n      },\n      { last: ['current'] }\n    ]);\n    const none = current => adt.none(current);\n    const CellLocation = {\n      ...adt,\n      none\n    };\n\n    const firstLayer = (scope, selector) => {\n      return filterFirstLayer(scope, selector, always);\n    };\n    const filterFirstLayer = (scope, selector, predicate) => {\n      return bind$3(children$1(scope), x => {\n        if (is$1(x, selector)) {\n          return predicate(x) ? [x] : [];\n        } else {\n          return filterFirstLayer(x, selector, predicate);\n        }\n      });\n    };\n\n    const lookup$1 = (tags, element, isRoot = never) => {\n      if (isRoot(element)) {\n        return Optional.none();\n      }\n      if (contains$2(tags, name(element))) {\n        return Optional.some(element);\n      }\n      const isRootOrUpperTable = elm => is$1(elm, 'table') || isRoot(elm);\n      return ancestor$2(element, tags.join(','), isRootOrUpperTable);\n    };\n    const cell = (element, isRoot) => lookup$1([\n      'td',\n      'th'\n    ], element, isRoot);\n    const cells = ancestor => firstLayer(ancestor, 'th,td');\n    const table = (element, isRoot) => closest$3(element, 'table', isRoot);\n\n    const walk = (all, current, index, direction, isEligible = always) => {\n      const forwards = direction === 1;\n      if (!forwards && index <= 0) {\n        return CellLocation.first(all[0]);\n      } else if (forwards && index >= all.length - 1) {\n        return CellLocation.last(all[all.length - 1]);\n      } else {\n        const newIndex = index + direction;\n        const elem = all[newIndex];\n        return isEligible(elem) ? CellLocation.middle(current, elem) : walk(all, current, newIndex, direction, isEligible);\n      }\n    };\n    const detect = (current, isRoot) => {\n      return table(current, isRoot).bind(table => {\n        const all = cells(table);\n        const index = findIndex$2(all, x => eq(current, x));\n        return index.map(index => ({\n          index,\n          all\n        }));\n      });\n    };\n    const next = (current, isEligible, isRoot) => {\n      const detection = detect(current, isRoot);\n      return detection.fold(() => {\n        return CellLocation.none(current);\n      }, info => {\n        return walk(info.all, current, info.index, 1, isEligible);\n      });\n    };\n    const prev = (current, isEligible, isRoot) => {\n      const detection = detect(current, isRoot);\n      return detection.fold(() => {\n        return CellLocation.none();\n      }, info => {\n        return walk(info.all, current, info.index, -1, isEligible);\n      });\n    };\n\n    const closest = target => closest$3(target, '[contenteditable]');\n    const isEditable = (element, assumeEditable = false) => {\n      if (inBody(element)) {\n        return element.dom.isContentEditable;\n      } else {\n        return closest(element).fold(constant(assumeEditable), editable => getRaw(editable) === 'true');\n      }\n    };\n    const getRaw = element => element.dom.contentEditable;\n\n    const deflate = (rect, delta) => ({\n      left: rect.left - delta,\n      top: rect.top - delta,\n      right: rect.right + delta * 2,\n      bottom: rect.bottom + delta * 2,\n      width: rect.width + delta,\n      height: rect.height + delta\n    });\n    const getCorners = (getYAxisValue, tds) => bind$3(tds, td => {\n      const rect = deflate(clone$1(td.getBoundingClientRect()), -1);\n      return [\n        {\n          x: rect.left,\n          y: getYAxisValue(rect),\n          cell: td\n        },\n        {\n          x: rect.right,\n          y: getYAxisValue(rect),\n          cell: td\n        }\n      ];\n    });\n    const findClosestCorner = (corners, x, y) => foldl(corners, (acc, newCorner) => acc.fold(() => Optional.some(newCorner), oldCorner => {\n      const oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y));\n      const newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y));\n      return Optional.some(newDist < oldDist ? newCorner : oldCorner);\n    }), Optional.none());\n    const getClosestCell = (getYAxisValue, isTargetCorner, table, x, y) => {\n      const cells = descendants(SugarElement.fromDom(table), 'td,th,caption').map(e => e.dom);\n      const corners = filter$5(getCorners(getYAxisValue, cells), corner => isTargetCorner(corner, y));\n      return findClosestCorner(corners, x, y).map(corner => corner.cell);\n    };\n    const getBottomValue = rect => rect.bottom;\n    const getTopValue = rect => rect.top;\n    const isAbove = (corner, y) => corner.y < y;\n    const isBelow = (corner, y) => corner.y > y;\n    const getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove);\n    const getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow);\n    const findClosestPositionInAboveCell = (table, pos) => head(pos.getClientRects()).bind(rect => getClosestCellAbove(table, rect.left, rect.top)).bind(cell => findClosestHorizontalPosition(getLastLinePositions(cell), pos));\n    const findClosestPositionInBelowCell = (table, pos) => last$3(pos.getClientRects()).bind(rect => getClosestCellBelow(table, rect.left, rect.top)).bind(cell => findClosestHorizontalPosition(getFirstLinePositions(cell), pos));\n\n    const hasNextBreak = (getPositionsUntil, scope, lineInfo) => lineInfo.breakAt.exists(breakPos => getPositionsUntil(scope, breakPos).breakAt.isSome());\n    const startsWithWrapBreak = lineInfo => lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0;\n    const startsWithBrBreak = lineInfo => lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1;\n    const isAtTableCellLine = (getPositionsUntil, scope, pos) => {\n      const lineInfo = getPositionsUntil(scope, pos);\n      if (startsWithWrapBreak(lineInfo) || !isBr$6(pos.getNode()) && startsWithBrBreak(lineInfo)) {\n        return !hasNextBreak(getPositionsUntil, scope, lineInfo);\n      } else {\n        return lineInfo.breakAt.isNone();\n      }\n    };\n    const isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine);\n    const isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine);\n    const isCaretAtStartOrEndOfTable = (forward, rng, table) => {\n      const caretPos = CaretPosition.fromRangeStart(rng);\n      return positionIn(!forward, table).exists(pos => pos.isEqual(caretPos));\n    };\n    const navigateHorizontally = (editor, forward, table, _td) => {\n      const rng = editor.selection.getRng();\n      const direction = forward ? 1 : -1;\n      if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) {\n        showCaret(direction, editor, table, !forward, false).each(newRng => {\n          moveToRange(editor, newRng);\n        });\n        return true;\n      }\n      return false;\n    };\n    const getClosestAbovePosition = (root, table, start) => findClosestPositionInAboveCell(table, start).orThunk(() => head(start.getClientRects()).bind(rect => findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition.before(table)), rect.left))).getOr(CaretPosition.before(table));\n    const getClosestBelowPosition = (root, table, start) => findClosestPositionInBelowCell(table, start).orThunk(() => head(start.getClientRects()).bind(rect => findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition.after(table)), rect.left))).getOr(CaretPosition.after(table));\n    const getTable = (previous, pos) => {\n      const node = pos.getNode(previous);\n      return isTable$2(node) ? Optional.some(node) : Optional.none();\n    };\n    const renderBlock = (down, editor, table) => {\n      editor.undoManager.transact(() => {\n        const insertFn = down ? after$4 : before$3;\n        const rng = insertEmptyLine(editor, SugarElement.fromDom(table), insertFn);\n        moveToRange(editor, rng);\n      });\n    };\n    const moveCaret = (editor, down, pos) => {\n      const table = down ? getTable(true, pos) : getTable(false, pos);\n      const last = down === false;\n      table.fold(() => moveToRange(editor, pos.toRange()), table => positionIn(last, editor.getBody()).filter(lastPos => lastPos.isEqual(pos)).fold(() => moveToRange(editor, pos.toRange()), _ => renderBlock(down, editor, table)));\n    };\n    const navigateVertically = (editor, down, table, td) => {\n      const rng = editor.selection.getRng();\n      const pos = CaretPosition.fromRangeStart(rng);\n      const root = editor.getBody();\n      if (!down && isAtFirstTableCellLine(td, pos)) {\n        const newPos = getClosestAbovePosition(root, table, pos);\n        moveCaret(editor, down, newPos);\n        return true;\n      } else if (down && isAtLastTableCellLine(td, pos)) {\n        const newPos = getClosestBelowPosition(root, table, pos);\n        moveCaret(editor, down, newPos);\n        return true;\n      } else {\n        return false;\n      }\n    };\n    const move$1 = (editor, forward, mover) => Optional.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(td => Optional.from(editor.dom.getParent(td, 'table')).map(table => mover(editor, forward, table, td))).getOr(false);\n    const moveH = (editor, forward) => move$1(editor, forward, navigateHorizontally);\n    const moveV = (editor, forward) => move$1(editor, forward, navigateVertically);\n    const getCellFirstCursorPosition = cell => {\n      const selection = SimSelection.exact(cell, 0, cell, 0);\n      return toNative(selection);\n    };\n    const tabGo = (editor, isRoot, cell) => {\n      return cell.fold(Optional.none, Optional.none, (_current, next) => {\n        return first(next).map(cell => {\n          return getCellFirstCursorPosition(cell);\n        });\n      }, current => {\n        editor.execCommand('mceTableInsertRowAfter');\n        return tabForward(editor, isRoot, current);\n      });\n    };\n    const tabForward = (editor, isRoot, cell) => tabGo(editor, isRoot, next(cell, isEditable));\n    const tabBackward = (editor, isRoot, cell) => tabGo(editor, isRoot, prev(cell, isEditable));\n    const handleTab = (editor, forward) => {\n      const rootElements = [\n        'table',\n        'li',\n        'dl'\n      ];\n      const body = SugarElement.fromDom(editor.getBody());\n      const isRoot = element => {\n        const name$1 = name(element);\n        return eq(element, body) || contains$2(rootElements, name$1);\n      };\n      const rng = editor.selection.getRng();\n      const container = SugarElement.fromDom(!forward ? rng.startContainer : rng.endContainer);\n      return cell(container, isRoot).map(cell => {\n        table(cell, isRoot).each(table => {\n          editor.model.table.clearSelectedCells(table.dom);\n        });\n        editor.selection.collapse(!forward);\n        const navigation = !forward ? tabBackward : tabForward;\n        const rng = navigation(editor, isRoot, cell);\n        rng.each(range => {\n          editor.selection.setRng(range);\n        });\n        return true;\n      }).getOr(false);\n    };\n\n    const executeKeydownOverride$4 = (editor, caret, evt) => {\n      const isMac = Env.os.isMacOS() || Env.os.isiOS();\n      execute([\n        {\n          keyCode: VK.RIGHT,\n          action: action(moveH$2, editor, true)\n        },\n        {\n          keyCode: VK.LEFT,\n          action: action(moveH$2, editor, false)\n        },\n        {\n          keyCode: VK.UP,\n          action: action(moveV$3, editor, false)\n        },\n        {\n          keyCode: VK.DOWN,\n          action: action(moveV$3, editor, true)\n        },\n        ...isMac ? [\n          {\n            keyCode: VK.UP,\n            action: action(selectToEndPoint, editor, false),\n            metaKey: true,\n            shiftKey: true\n          },\n          {\n            keyCode: VK.DOWN,\n            action: action(selectToEndPoint, editor, true),\n            metaKey: true,\n            shiftKey: true\n          }\n        ] : [],\n        {\n          keyCode: VK.RIGHT,\n          action: action(moveH, editor, true)\n        },\n        {\n          keyCode: VK.LEFT,\n          action: action(moveH, editor, false)\n        },\n        {\n          keyCode: VK.UP,\n          action: action(moveV, editor, false)\n        },\n        {\n          keyCode: VK.DOWN,\n          action: action(moveV, editor, true)\n        },\n        {\n          keyCode: VK.RIGHT,\n          action: action(moveH$1, editor, true)\n        },\n        {\n          keyCode: VK.LEFT,\n          action: action(moveH$1, editor, false)\n        },\n        {\n          keyCode: VK.UP,\n          action: action(moveV$1, editor, false)\n        },\n        {\n          keyCode: VK.DOWN,\n          action: action(moveV$1, editor, true)\n        },\n        {\n          keyCode: VK.RIGHT,\n          action: action(move$2, editor, caret, true)\n        },\n        {\n          keyCode: VK.LEFT,\n          action: action(move$2, editor, caret, false)\n        },\n        {\n          keyCode: VK.RIGHT,\n          ctrlKey: !isMac,\n          altKey: isMac,\n          action: action(moveNextWord, editor, caret)\n        },\n        {\n          keyCode: VK.LEFT,\n          ctrlKey: !isMac,\n          altKey: isMac,\n          action: action(movePrevWord, editor, caret)\n        },\n        {\n          keyCode: VK.UP,\n          action: action(moveV$2, editor, false)\n        },\n        {\n          keyCode: VK.DOWN,\n          action: action(moveV$2, editor, true)\n        }\n      ], evt).each(_ => {\n        evt.preventDefault();\n      });\n    };\n    const setup$k = (editor, caret) => {\n      editor.on('keydown', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeydownOverride$4(editor, caret, evt);\n        }\n      });\n    };\n\n    const point = (container, offset) => ({\n      container,\n      offset\n    });\n\n    const DOM$7 = DOMUtils.DOM;\n    const alwaysNext = startNode => node => startNode === node ? -1 : 0;\n    const isBoundary = dom => node => dom.isBlock(node) || contains$2([\n      'BR',\n      'IMG',\n      'HR',\n      'INPUT'\n    ], node.nodeName) || dom.getContentEditable(node) === 'false';\n    const textBefore = (node, offset, rootNode) => {\n      if (isText$a(node) && offset >= 0) {\n        return Optional.some(point(node, offset));\n      } else {\n        const textSeeker = TextSeeker(DOM$7);\n        return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).map(prev => point(prev.container, prev.container.data.length));\n      }\n    };\n    const textAfter = (node, offset, rootNode) => {\n      if (isText$a(node) && offset >= node.length) {\n        return Optional.some(point(node, offset));\n      } else {\n        const textSeeker = TextSeeker(DOM$7);\n        return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).map(prev => point(prev.container, 0));\n      }\n    };\n    const scanLeft = (node, offset, rootNode) => {\n      if (!isText$a(node)) {\n        return Optional.none();\n      }\n      const text = node.data;\n      if (offset >= 0 && offset <= text.length) {\n        return Optional.some(point(node, offset));\n      } else {\n        const textSeeker = TextSeeker(DOM$7);\n        return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).bind(prev => {\n          const prevText = prev.container.data;\n          return scanLeft(prev.container, offset + prevText.length, rootNode);\n        });\n      }\n    };\n    const scanRight = (node, offset, rootNode) => {\n      if (!isText$a(node)) {\n        return Optional.none();\n      }\n      const text = node.data;\n      if (offset <= text.length) {\n        return Optional.some(point(node, offset));\n      } else {\n        const textSeeker = TextSeeker(DOM$7);\n        return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).bind(next => scanRight(next.container, offset - text.length, rootNode));\n      }\n    };\n    const repeatLeft = (dom, node, offset, process, rootNode) => {\n      const search = TextSeeker(dom, isBoundary(dom));\n      return Optional.from(search.backwards(node, offset, process, rootNode));\n    };\n\n    const isValidTextRange = rng => rng.collapsed && isText$a(rng.startContainer);\n    const getText = rng => trim$1(rng.toString().replace(/\\u00A0/g, ' '));\n    const isWhitespace = chr => chr !== '' && ' \\xA0\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n\n    const stripTrigger = (text, trigger) => text.substring(trigger.length);\n    const findTrigger = (text, index, trigger) => {\n      let i;\n      const firstChar = trigger.charAt(0);\n      for (i = index - 1; i >= 0; i--) {\n        const char = text.charAt(i);\n        if (isWhitespace(char)) {\n          return Optional.none();\n        }\n        if (firstChar === char && contains$1(text, trigger, i, index)) {\n          break;\n        }\n      }\n      return Optional.some(i);\n    };\n    const findStart = (dom, initRange, trigger, minChars = 0) => {\n      if (!isValidTextRange(initRange)) {\n        return Optional.none();\n      }\n      const buffer = {\n        text: '',\n        offset: 0\n      };\n      const findTriggerIndex = (element, offset, text) => {\n        buffer.text = text + buffer.text;\n        buffer.offset += offset;\n        return findTrigger(buffer.text, buffer.offset, trigger).getOr(offset);\n      };\n      const root = dom.getParent(initRange.startContainer, dom.isBlock) || dom.getRoot();\n      return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerIndex, root).bind(spot => {\n        const range = initRange.cloneRange();\n        range.setStart(spot.container, spot.offset);\n        range.setEnd(initRange.endContainer, initRange.endOffset);\n        if (range.collapsed) {\n          return Optional.none();\n        }\n        const text = getText(range);\n        const triggerIndex = text.lastIndexOf(trigger);\n        if (triggerIndex !== 0 || stripTrigger(text, trigger).length < minChars) {\n          return Optional.none();\n        } else {\n          return Optional.some({\n            text: stripTrigger(text, trigger),\n            range,\n            trigger\n          });\n        }\n      });\n    };\n    const getContext = (dom, initRange, trigger, minChars = 0) => detect$1(SugarElement.fromDom(initRange.startContainer)).fold(() => findStart(dom, initRange, trigger, minChars), elm => {\n      const range = dom.createRng();\n      range.selectNode(elm.dom);\n      const text = getText(range);\n      return Optional.some({\n        range,\n        text: stripTrigger(text, trigger),\n        trigger\n      });\n    });\n\n    const isText$1 = node => node.nodeType === TEXT;\n    const isElement = node => node.nodeType === ELEMENT;\n    const toLast = node => {\n      if (isText$1(node)) {\n        return point(node, node.data.length);\n      } else {\n        const children = node.childNodes;\n        return children.length > 0 ? toLast(children[children.length - 1]) : point(node, children.length);\n      }\n    };\n    const toLeaf = (node, offset) => {\n      const children = node.childNodes;\n      if (children.length > 0 && offset < children.length) {\n        return toLeaf(children[offset], 0);\n      } else if (children.length > 0 && isElement(node) && children.length === offset) {\n        return toLast(children[children.length - 1]);\n      } else {\n        return point(node, offset);\n      }\n    };\n\n    const isPreviousCharContent = (dom, leaf) => {\n      var _a;\n      const root = (_a = dom.getParent(leaf.container, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();\n      return repeatLeft(dom, leaf.container, leaf.offset, (_element, offset) => offset === 0 ? -1 : offset, root).filter(spot => {\n        const char = spot.container.data.charAt(spot.offset - 1);\n        return !isWhitespace(char);\n      }).isSome();\n    };\n    const isStartOfWord = dom => rng => {\n      const leaf = toLeaf(rng.startContainer, rng.startOffset);\n      return !isPreviousCharContent(dom, leaf);\n    };\n    const getTriggerContext = (dom, initRange, database) => findMap(database.triggers, trigger => getContext(dom, initRange, trigger));\n    const lookup = (editor, getDatabase) => {\n      const database = getDatabase();\n      const rng = editor.selection.getRng();\n      return getTriggerContext(editor.dom, rng, database).bind(context => lookupWithContext(editor, getDatabase, context));\n    };\n    const lookupWithContext = (editor, getDatabase, context, fetchOptions = {}) => {\n      var _a;\n      const database = getDatabase();\n      const rng = editor.selection.getRng();\n      const startText = (_a = rng.startContainer.nodeValue) !== null && _a !== void 0 ? _a : '';\n      const autocompleters = filter$5(database.lookupByTrigger(context.trigger), autocompleter => context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(() => isStartOfWord(editor.dom))(context.range, startText, context.text));\n      if (autocompleters.length === 0) {\n        return Optional.none();\n      }\n      const lookupData = Promise.all(map$3(autocompleters, ac => {\n        const fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n        return fetchResult.then(results => ({\n          matchText: context.text,\n          items: results,\n          columns: ac.columns,\n          onAction: ac.onAction,\n          highlightOn: ac.highlightOn\n        }));\n      }));\n      return Optional.some({\n        lookupData,\n        context\n      });\n    };\n\n    var SimpleResultType;\n    (function (SimpleResultType) {\n      SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n      SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n    }(SimpleResultType || (SimpleResultType = {})));\n    const fold$1 = (res, onError, onValue) => res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n    const partition = results => {\n      const values = [];\n      const errors = [];\n      each$e(results, obj => {\n        fold$1(obj, err => errors.push(err), val => values.push(val));\n      });\n      return {\n        values,\n        errors\n      };\n    };\n    const mapError = (res, f) => {\n      if (res.stype === SimpleResultType.Error) {\n        return {\n          stype: SimpleResultType.Error,\n          serror: f(res.serror)\n        };\n      } else {\n        return res;\n      }\n    };\n    const map = (res, f) => {\n      if (res.stype === SimpleResultType.Value) {\n        return {\n          stype: SimpleResultType.Value,\n          svalue: f(res.svalue)\n        };\n      } else {\n        return res;\n      }\n    };\n    const bind = (res, f) => {\n      if (res.stype === SimpleResultType.Value) {\n        return f(res.svalue);\n      } else {\n        return res;\n      }\n    };\n    const bindError = (res, f) => {\n      if (res.stype === SimpleResultType.Error) {\n        return f(res.serror);\n      } else {\n        return res;\n      }\n    };\n    const svalue = v => ({\n      stype: SimpleResultType.Value,\n      svalue: v\n    });\n    const serror = e => ({\n      stype: SimpleResultType.Error,\n      serror: e\n    });\n    const toResult = res => fold$1(res, Result.error, Result.value);\n    const fromResult = res => res.fold(serror, svalue);\n    const SimpleResult = {\n      fromResult,\n      toResult,\n      svalue,\n      partition,\n      serror,\n      bind,\n      bindError,\n      map,\n      mapError,\n      fold: fold$1\n    };\n\n    const formatObj = input => {\n      return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n    };\n    const formatErrors = errors => {\n      const es = errors.length > 10 ? errors.slice(0, 10).concat([{\n          path: [],\n          getErrorInfo: constant('... (only showing first ten failures)')\n        }]) : errors;\n      return map$3(es, e => {\n        return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n      });\n    };\n\n    const nu = (path, getErrorInfo) => {\n      return SimpleResult.serror([{\n          path,\n          getErrorInfo\n        }]);\n    };\n    const missingRequired = (path, key, obj) => nu(path, () => 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj));\n    const missingKey = (path, key) => nu(path, () => 'Choice schema did not contain choice key: \"' + key + '\"');\n    const missingBranch = (path, branches, branch) => nu(path, () => 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches));\n    const custom = (path, err) => nu(path, constant(err));\n\n    const chooseFrom = (path, input, branches, ch) => {\n      const fields = get$a(branches, ch);\n      return fields.fold(() => missingBranch(path, branches, ch), vp => vp.extract(path.concat(['branch: ' + ch]), input));\n    };\n    const choose$1 = (key, branches) => {\n      const extract = (path, input) => {\n        const choice = get$a(input, key);\n        return choice.fold(() => missingKey(path, key), chosen => chooseFrom(path, input, branches, chosen));\n      };\n      const toString = () => 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n      return {\n        extract,\n        toString\n      };\n    };\n\n    const shallow = (old, nu) => {\n      return nu;\n    };\n    const deep = (old, nu) => {\n      const bothObjects = isPlainObject(old) && isPlainObject(nu);\n      return bothObjects ? deepMerge(old, nu) : nu;\n    };\n    const baseMerge = merger => {\n      return (...objects) => {\n        if (objects.length === 0) {\n          throw new Error(`Can't merge zero objects`);\n        }\n        const ret = {};\n        for (let j = 0; j < objects.length; j++) {\n          const curObject = objects[j];\n          for (const key in curObject) {\n            if (has$2(curObject, key)) {\n              ret[key] = merger(ret[key], curObject[key]);\n            }\n          }\n        }\n        return ret;\n      };\n    };\n    const deepMerge = baseMerge(deep);\n    const merge = baseMerge(shallow);\n\n    const required = () => ({\n      tag: 'required',\n      process: {}\n    });\n    const defaultedThunk = fallbackThunk => ({\n      tag: 'defaultedThunk',\n      process: fallbackThunk\n    });\n    const defaulted$1 = fallback => defaultedThunk(constant(fallback));\n    const asOption = () => ({\n      tag: 'option',\n      process: {}\n    });\n\n    const mergeValues = (values, base) => values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge.apply(undefined, values))) : SimpleResult.svalue(base);\n    const mergeErrors = errors => compose(SimpleResult.serror, flatten)(errors);\n    const consolidateObj = (objects, base) => {\n      const partition = SimpleResult.partition(objects);\n      return partition.errors.length > 0 ? mergeErrors(partition.errors) : mergeValues(partition.values, base);\n    };\n    const consolidateArr = objects => {\n      const partitions = SimpleResult.partition(objects);\n      return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : SimpleResult.svalue(partitions.values);\n    };\n    const ResultCombine = {\n      consolidateObj,\n      consolidateArr\n    };\n\n    const field$1 = (key, newKey, presence, prop) => ({\n      tag: 'field',\n      key,\n      newKey,\n      presence,\n      prop\n    });\n    const customField$1 = (newKey, instantiator) => ({\n      tag: 'custom',\n      newKey,\n      instantiator\n    });\n    const fold = (value, ifField, ifCustom) => {\n      switch (value.tag) {\n      case 'field':\n        return ifField(value.key, value.newKey, value.presence, value.prop);\n      case 'custom':\n        return ifCustom(value.newKey, value.instantiator);\n      }\n    };\n\n    const value = validator => {\n      const extract = (path, val) => {\n        return SimpleResult.bindError(validator(val), err => custom(path, err));\n      };\n      const toString = constant('val');\n      return {\n        extract,\n        toString\n      };\n    };\n    const anyValue$1 = value(SimpleResult.svalue);\n\n    const requiredAccess = (path, obj, key, bundle) => get$a(obj, key).fold(() => missingRequired(path, key, obj), bundle);\n    const fallbackAccess = (obj, key, fallback, bundle) => {\n      const v = get$a(obj, key).getOrThunk(() => fallback(obj));\n      return bundle(v);\n    };\n    const optionAccess = (obj, key, bundle) => bundle(get$a(obj, key));\n    const optionDefaultedAccess = (obj, key, fallback, bundle) => {\n      const opt = get$a(obj, key).map(val => val === true ? fallback(obj) : val);\n      return bundle(opt);\n    };\n    const extractField = (field, path, obj, key, prop) => {\n      const bundle = av => prop.extract(path.concat([key]), av);\n      const bundleAsOption = optValue => optValue.fold(() => SimpleResult.svalue(Optional.none()), ov => {\n        const result = prop.extract(path.concat([key]), ov);\n        return SimpleResult.map(result, Optional.some);\n      });\n      switch (field.tag) {\n      case 'required':\n        return requiredAccess(path, obj, key, bundle);\n      case 'defaultedThunk':\n        return fallbackAccess(obj, key, field.process, bundle);\n      case 'option':\n        return optionAccess(obj, key, bundleAsOption);\n      case 'defaultedOptionThunk':\n        return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n      case 'mergeWithThunk': {\n          return fallbackAccess(obj, key, constant({}), v => {\n            const result = deepMerge(field.process(obj), v);\n            return bundle(result);\n          });\n        }\n      }\n    };\n    const extractFields = (path, obj, fields) => {\n      const success = {};\n      const errors = [];\n      for (const field of fields) {\n        fold(field, (key, newKey, presence, prop) => {\n          const result = extractField(presence, path, obj, key, prop);\n          SimpleResult.fold(result, err => {\n            errors.push(...err);\n          }, res => {\n            success[newKey] = res;\n          });\n        }, (newKey, instantiator) => {\n          success[newKey] = instantiator(obj);\n        });\n      }\n      return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n    };\n    const objOf = values => {\n      const extract = (path, o) => extractFields(path, o, values);\n      const toString = () => {\n        const fieldStrings = map$3(values, value => fold(value, (key, _okey, _presence, prop) => key + ' -> ' + prop.toString(), (newKey, _instantiator) => 'state(' + newKey + ')'));\n        return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n      };\n      return {\n        extract,\n        toString\n      };\n    };\n    const arrOf = prop => {\n      const extract = (path, array) => {\n        const results = map$3(array, (a, i) => prop.extract(path.concat(['[' + i + ']']), a));\n        return ResultCombine.consolidateArr(results);\n      };\n      const toString = () => 'array(' + prop.toString() + ')';\n      return {\n        extract,\n        toString\n      };\n    };\n\n    const valueOf = validator => value(v => validator(v).fold(SimpleResult.serror, SimpleResult.svalue));\n    const extractValue = (label, prop, obj) => {\n      const res = prop.extract([label], obj);\n      return SimpleResult.mapError(res, errs => ({\n        input: obj,\n        errors: errs\n      }));\n    };\n    const asRaw = (label, prop, obj) => SimpleResult.toResult(extractValue(label, prop, obj));\n    const formatError = errInfo => {\n      return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n    };\n    const choose = (key, branches) => choose$1(key, map$2(branches, objOf));\n\n    const anyValue = constant(anyValue$1);\n    const typedValue = (validator, expectedType) => value(a => {\n      const actualType = typeof a;\n      return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror(`Expected type: ${ expectedType } but got: ${ actualType }`);\n    });\n    const number = typedValue(isNumber, 'number');\n    const string = typedValue(isString, 'string');\n    const boolean = typedValue(isBoolean, 'boolean');\n    const functionProcessor = typedValue(isFunction, 'function');\n\n    const field = field$1;\n    const customField = customField$1;\n    const validateEnum = values => valueOf(value => contains$2(values, value) ? Result.value(value) : Result.error(`Unsupported value: \"${ value }\", choose one of \"${ values.join(', ') }\".`));\n    const requiredOf = (key, schema) => field(key, key, required(), schema);\n    const requiredString = key => requiredOf(key, string);\n    const requiredFunction = key => requiredOf(key, functionProcessor);\n    const requiredArrayOf = (key, schema) => field(key, key, required(), arrOf(schema));\n    const optionOf = (key, schema) => field(key, key, asOption(), schema);\n    const optionString = key => optionOf(key, string);\n    const optionFunction = key => optionOf(key, functionProcessor);\n    const defaulted = (key, fallback) => field(key, key, defaulted$1(fallback), anyValue());\n    const defaultedOf = (key, fallback, schema) => field(key, key, defaulted$1(fallback), schema);\n    const defaultedNumber = (key, fallback) => defaultedOf(key, fallback, number);\n    const defaultedString = (key, fallback) => defaultedOf(key, fallback, string);\n    const defaultedStringEnum = (key, fallback, values) => defaultedOf(key, fallback, validateEnum(values));\n    const defaultedBoolean = (key, fallback) => defaultedOf(key, fallback, boolean);\n    const defaultedFunction = (key, fallback) => defaultedOf(key, fallback, functionProcessor);\n    const defaultedArrayOf = (key, fallback, schema) => defaultedOf(key, fallback, arrOf(schema));\n\n    const type = requiredString('type');\n    const fetch$1 = requiredFunction('fetch');\n    const onAction = requiredFunction('onAction');\n    const onSetup = defaultedFunction('onSetup', () => noop);\n    const optionalText = optionString('text');\n    const optionalIcon = optionString('icon');\n    const optionalTooltip = optionString('tooltip');\n    const optionalLabel = optionString('label');\n    const active = defaultedBoolean('active', false);\n    const enabled = defaultedBoolean('enabled', true);\n    const primary = defaultedBoolean('primary', false);\n    const defaultedColumns = num => defaulted('columns', num);\n    const defaultedType = type => defaultedString('type', type);\n\n    const autocompleterSchema = objOf([\n      type,\n      requiredString('trigger'),\n      defaultedNumber('minChars', 1),\n      defaultedColumns(1),\n      defaultedNumber('maxResults', 10),\n      optionFunction('matches'),\n      fetch$1,\n      onAction,\n      defaultedArrayOf('highlightOn', [], string)\n    ]);\n    const createAutocompleter = spec => asRaw('Autocompleter', autocompleterSchema, {\n      trigger: spec.ch,\n      ...spec\n    });\n\n    const baseToolbarButtonFields = [\n      enabled,\n      optionalTooltip,\n      optionalIcon,\n      optionalText,\n      onSetup\n    ];\n\n    const baseToolbarToggleButtonFields = [active].concat(baseToolbarButtonFields);\n\n    const contextBarFields = [\n      defaultedFunction('predicate', never),\n      defaultedStringEnum('scope', 'node', [\n        'node',\n        'editor'\n      ]),\n      defaultedStringEnum('position', 'selection', [\n        'node',\n        'selection',\n        'line'\n      ])\n    ];\n\n    const contextButtonFields = baseToolbarButtonFields.concat([\n      defaultedType('contextformbutton'),\n      primary,\n      onAction,\n      customField('original', identity)\n    ]);\n    const contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n      defaultedType('contextformbutton'),\n      primary,\n      onAction,\n      customField('original', identity)\n    ]);\n    const launchButtonFields = baseToolbarButtonFields.concat([defaultedType('contextformbutton')]);\n    const launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaultedType('contextformtogglebutton')]);\n    const toggleOrNormal = choose('type', {\n      contextformbutton: contextButtonFields,\n      contextformtogglebutton: contextToggleButtonFields\n    });\n    objOf([\n      defaultedType('contextform'),\n      defaultedFunction('initValue', constant('')),\n      optionalLabel,\n      requiredArrayOf('commands', toggleOrNormal),\n      optionOf('launch', choose('type', {\n        contextformbutton: launchButtonFields,\n        contextformtogglebutton: launchToggleButtonFields\n      }))\n    ].concat(contextBarFields));\n\n    const register$2 = editor => {\n      const popups = editor.ui.registry.getAll().popups;\n      const dataset = map$2(popups, popup => createAutocompleter(popup).fold(err => {\n        throw new Error(formatError(err));\n      }, identity));\n      const triggers = stringArray(mapToArray(dataset, v => v.trigger));\n      const datasetValues = values(dataset);\n      const lookupByTrigger = trigger => filter$5(datasetValues, dv => dv.trigger === trigger);\n      return {\n        dataset,\n        triggers,\n        lookupByTrigger\n      };\n    };\n\n    const setupEditorInput = (editor, api) => {\n      const update = last$1(api.load, 50);\n      editor.on('keypress compositionend', e => {\n        if (e.which === 27) {\n          return;\n        }\n        update.throttle();\n      });\n      editor.on('keydown', e => {\n        const keyCode = e.which;\n        if (keyCode === 8) {\n          update.throttle();\n        } else if (keyCode === 27) {\n          api.cancelIfNecessary();\n        }\n      });\n      editor.on('remove', update.cancel);\n    };\n    const setup$j = editor => {\n      const activeAutocompleter = value$2();\n      const uiActive = Cell(false);\n      const isActive = activeAutocompleter.isSet;\n      const cancelIfNecessary = () => {\n        if (isActive()) {\n          removeAutocompleterDecoration(editor);\n          fireAutocompleterEnd(editor);\n          uiActive.set(false);\n          activeAutocompleter.clear();\n        }\n      };\n      const commenceIfNecessary = context => {\n        if (!isActive()) {\n          addAutocompleterDecoration(editor, context.range);\n          activeAutocompleter.set({\n            trigger: context.trigger,\n            matchLength: context.text.length\n          });\n        }\n      };\n      const getAutocompleters = cached(() => register$2(editor));\n      const doLookup = fetchOptions => activeAutocompleter.get().map(ac => getContext(editor.dom, editor.selection.getRng(), ac.trigger).bind(newContext => lookupWithContext(editor, getAutocompleters, newContext, fetchOptions))).getOrThunk(() => lookup(editor, getAutocompleters));\n      const load = fetchOptions => {\n        doLookup(fetchOptions).fold(cancelIfNecessary, lookupInfo => {\n          commenceIfNecessary(lookupInfo.context);\n          lookupInfo.lookupData.then(lookupData => {\n            activeAutocompleter.get().map(ac => {\n              const context = lookupInfo.context;\n              if (ac.trigger === context.trigger) {\n                if (context.text.length - ac.matchLength >= 10) {\n                  cancelIfNecessary();\n                } else {\n                  activeAutocompleter.set({\n                    ...ac,\n                    matchLength: context.text.length\n                  });\n                  if (uiActive.get()) {\n                    fireAutocompleterUpdate(editor, { lookupData });\n                  } else {\n                    uiActive.set(true);\n                    fireAutocompleterStart(editor, { lookupData });\n                  }\n                }\n              }\n            });\n          });\n        });\n      };\n      editor.addCommand('mceAutocompleterReload', (_ui, value) => {\n        const fetchOptions = isObject(value) ? value.fetchOptions : {};\n        load(fetchOptions);\n      });\n      editor.addCommand('mceAutocompleterClose', cancelIfNecessary);\n      setupEditorInput(editor, {\n        cancelIfNecessary,\n        load\n      });\n    };\n\n    const createAndFireInputEvent = eventType => (editor, inputType, specifics = {}) => {\n      const target = editor.getBody();\n      const overrides = {\n        bubbles: true,\n        composed: true,\n        data: null,\n        isComposing: false,\n        detail: 0,\n        view: null,\n        target,\n        currentTarget: target,\n        eventPhase: Event.AT_TARGET,\n        originalTarget: target,\n        explicitOriginalTarget: target,\n        isTrusted: false,\n        srcElement: target,\n        cancelable: false,\n        preventDefault: noop,\n        inputType\n      };\n      const input = clone$3(new InputEvent(eventType));\n      return editor.dispatch(eventType, {\n        ...input,\n        ...overrides,\n        ...specifics\n      });\n    };\n    const fireFakeInputEvent = createAndFireInputEvent('input');\n    const fireFakeBeforeInputEvent = createAndFireInputEvent('beforeinput');\n\n    const executeKeydownOverride$3 = (editor, caret, evt) => {\n      const inputType = evt.keyCode === VK.BACKSPACE ? 'deleteContentBackward' : 'deleteContentForward';\n      executeWithDelayedAction([\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete, editor)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$5, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$5, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$6, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$6, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$3, editor, caret, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$3, editor, caret, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$9, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$9, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$4, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$4, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$1, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$1, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$7, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$7, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$8, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$8, editor, true)\n        },\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(backspaceDelete$2, editor, false)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(backspaceDelete$2, editor, true)\n        }\n      ], evt).each(applyAction => {\n        evt.preventDefault();\n        const beforeInput = fireFakeBeforeInputEvent(editor, inputType);\n        if (!beforeInput.isDefaultPrevented()) {\n          applyAction();\n          fireFakeInputEvent(editor, inputType);\n        }\n      });\n    };\n    const executeKeyupOverride = (editor, evt) => {\n      execute([\n        {\n          keyCode: VK.BACKSPACE,\n          action: action(paddEmptyElement, editor)\n        },\n        {\n          keyCode: VK.DELETE,\n          action: action(paddEmptyElement, editor)\n        }\n      ], evt);\n    };\n    const setup$i = (editor, caret) => {\n      editor.on('keydown', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeydownOverride$3(editor, caret, evt);\n        }\n      });\n      editor.on('keyup', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeyupOverride(editor, evt);\n        }\n      });\n    };\n\n    const firstNonWhiteSpaceNodeSibling = node => {\n      while (node) {\n        if (isElement$6(node) || isText$a(node) && node.data && /[\\r\\n\\s]/.test(node.data)) {\n          return node;\n        }\n        node = node.nextSibling;\n      }\n      return null;\n    };\n    const moveToCaretPosition = (editor, root) => {\n      const dom = editor.dom;\n      const moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements();\n      if (!root) {\n        return;\n      }\n      if (/^(LI|DT|DD)$/.test(root.nodeName)) {\n        const firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\n        if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\n          root.insertBefore(dom.doc.createTextNode(nbsp), root.firstChild);\n        }\n      }\n      const rng = dom.createRng();\n      root.normalize();\n      if (root.hasChildNodes()) {\n        const walker = new DomTreeWalker(root, root);\n        let lastNode = root;\n        let node;\n        while (node = walker.current()) {\n          if (isText$a(node)) {\n            rng.setStart(node, 0);\n            rng.setEnd(node, 0);\n            break;\n          }\n          if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\n            rng.setStartBefore(node);\n            rng.setEndBefore(node);\n            break;\n          }\n          lastNode = node;\n          node = walker.next();\n        }\n        if (!node) {\n          rng.setStart(lastNode, 0);\n          rng.setEnd(lastNode, 0);\n        }\n      } else {\n        if (isBr$6(root)) {\n          if (root.nextSibling && dom.isBlock(root.nextSibling)) {\n            rng.setStartBefore(root);\n            rng.setEndBefore(root);\n          } else {\n            rng.setStartAfter(root);\n            rng.setEndAfter(root);\n          }\n        } else {\n          rng.setStart(root, 0);\n          rng.setEnd(root, 0);\n        }\n      }\n      editor.selection.setRng(rng);\n      scrollRangeIntoView(editor, rng);\n    };\n    const getEditableRoot = (dom, node) => {\n      const root = dom.getRoot();\n      let editableRoot;\n      let parent = node;\n      while (parent !== root && parent && dom.getContentEditable(parent) !== 'false') {\n        if (dom.getContentEditable(parent) === 'true') {\n          editableRoot = parent;\n        }\n        parent = parent.parentNode;\n      }\n      return parent !== root ? editableRoot : root;\n    };\n    const getParentBlock$1 = editor => {\n      return Optional.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));\n    };\n    const getParentBlockName = editor => {\n      return getParentBlock$1(editor).fold(constant(''), parentBlock => {\n        return parentBlock.nodeName.toUpperCase();\n      });\n    };\n    const isListItemParentBlock = editor => {\n      return getParentBlock$1(editor).filter(elm => {\n        return isListItem$1(SugarElement.fromDom(elm));\n      }).isSome();\n    };\n\n    const hasFirstChild = (elm, name) => {\n      return elm.firstChild && elm.firstChild.nodeName === name;\n    };\n    const isFirstChild = elm => {\n      var _a;\n      return ((_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === elm;\n    };\n    const hasParent = (elm, parentName) => {\n      const parentNode = elm === null || elm === void 0 ? void 0 : elm.parentNode;\n      return isNonNullable(parentNode) && parentNode.nodeName === parentName;\n    };\n    const isListBlock = elm => {\n      return isNonNullable(elm) && /^(OL|UL|LI)$/.test(elm.nodeName);\n    };\n    const isListItem = elm => {\n      return isNonNullable(elm) && /^(LI|DT|DD)$/.test(elm.nodeName);\n    };\n    const isNestedList = elm => {\n      return isListBlock(elm) && isListBlock(elm.parentNode);\n    };\n    const getContainerBlock = containerBlock => {\n      const containerBlockParent = containerBlock.parentNode;\n      return isListItem(containerBlockParent) ? containerBlockParent : containerBlock;\n    };\n    const isFirstOrLastLi = (containerBlock, parentBlock, first) => {\n      let node = containerBlock[first ? 'firstChild' : 'lastChild'];\n      while (node) {\n        if (isElement$6(node)) {\n          break;\n        }\n        node = node[first ? 'nextSibling' : 'previousSibling'];\n      }\n      return node === parentBlock;\n    };\n    const insert$3 = (editor, createNewBlock, containerBlock, parentBlock, newBlockName) => {\n      const dom = editor.dom;\n      const rng = editor.selection.getRng();\n      const containerParent = containerBlock.parentNode;\n      if (containerBlock === editor.getBody() || !containerParent) {\n        return;\n      }\n      if (isNestedList(containerBlock)) {\n        newBlockName = 'LI';\n      }\n      let newBlock = createNewBlock(newBlockName);\n      if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {\n        if (hasParent(containerBlock, 'LI')) {\n          const containerBlockParent = getContainerBlock(containerBlock);\n          dom.insertAfter(newBlock, containerBlockParent);\n          if (isFirstChild(containerBlock)) {\n            dom.remove(containerBlockParent);\n          } else {\n            dom.remove(containerBlock);\n          }\n        } else {\n          dom.replace(newBlock, containerBlock);\n        }\n      } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) {\n        if (hasParent(containerBlock, 'LI')) {\n          dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n          newBlock.appendChild(dom.doc.createTextNode(' '));\n          newBlock.appendChild(containerBlock);\n        } else {\n          containerParent.insertBefore(newBlock, containerBlock);\n        }\n        dom.remove(parentBlock);\n      } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {\n        dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n        dom.remove(parentBlock);\n      } else {\n        containerBlock = getContainerBlock(containerBlock);\n        const tmpRng = rng.cloneRange();\n        tmpRng.setStartAfter(parentBlock);\n        tmpRng.setEndAfter(containerBlock);\n        const fragment = tmpRng.extractContents();\n        if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) {\n          newBlock = fragment.firstChild;\n          dom.insertAfter(fragment, containerBlock);\n        } else {\n          dom.insertAfter(fragment, containerBlock);\n          dom.insertAfter(newBlock, containerBlock);\n        }\n        dom.remove(parentBlock);\n      }\n      moveToCaretPosition(editor, newBlock);\n    };\n\n    const trimZwsp = fragment => {\n      each$e(descendants$1(SugarElement.fromDom(fragment), isText$b), text => {\n        const rawNode = text.dom;\n        rawNode.nodeValue = trim$1(rawNode.data);\n      });\n    };\n    const isWithinNonEditableList = (editor, node) => {\n      const parentList = editor.dom.getParent(node, 'ol,ul,dl');\n      return parentList !== null && editor.dom.getContentEditableParent(parentList) === 'false';\n    };\n    const isEmptyAnchor = (dom, elm) => {\n      return elm && elm.nodeName === 'A' && dom.isEmpty(elm);\n    };\n    const emptyBlock = elm => {\n      elm.innerHTML = '<br data-mce-bogus=\"1\">';\n    };\n    const containerAndSiblingName = (container, nodeName) => {\n      return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName;\n    };\n    const canSplitBlock = (dom, node) => {\n      return isNonNullable(node) && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.getContentEditable(node) !== 'true';\n    };\n    const trimInlineElementsOnLeftSideOfBlock = (dom, nonEmptyElementsMap, block) => {\n      var _a;\n      const firstChilds = [];\n      if (!block) {\n        return;\n      }\n      let currentNode = block;\n      while (currentNode = currentNode.firstChild) {\n        if (dom.isBlock(currentNode)) {\n          return;\n        }\n        if (isElement$6(currentNode) && !nonEmptyElementsMap[currentNode.nodeName.toLowerCase()]) {\n          firstChilds.push(currentNode);\n        }\n      }\n      let i = firstChilds.length;\n      while (i--) {\n        currentNode = firstChilds[i];\n        if (!currentNode.hasChildNodes() || currentNode.firstChild === currentNode.lastChild && ((_a = currentNode.firstChild) === null || _a === void 0 ? void 0 : _a.nodeValue) === '') {\n          dom.remove(currentNode);\n        } else {\n          if (isEmptyAnchor(dom, currentNode)) {\n            dom.remove(currentNode);\n          }\n        }\n      }\n    };\n    const normalizeZwspOffset = (start, container, offset) => {\n      if (!isText$a(container)) {\n        return offset;\n      } else if (start) {\n        return offset === 1 && container.data.charAt(offset - 1) === ZWSP$1 ? 0 : offset;\n      } else {\n        return offset === container.data.length - 1 && container.data.charAt(offset) === ZWSP$1 ? container.data.length : offset;\n      }\n    };\n    const includeZwspInRange = rng => {\n      const newRng = rng.cloneRange();\n      newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset));\n      newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset));\n      return newRng;\n    };\n    const trimLeadingLineBreaks = node => {\n      let currentNode = node;\n      do {\n        if (isText$a(currentNode)) {\n          currentNode.data = currentNode.data.replace(/^[\\r\\n]+/, '');\n        }\n        currentNode = currentNode.firstChild;\n      } while (currentNode);\n    };\n    const applyAttributes = (editor, node, forcedRootBlockAttrs) => {\n      const dom = editor.dom;\n      Optional.from(forcedRootBlockAttrs.style).map(dom.parseStyle).each(attrStyles => {\n        const currentStyles = getAllRaw(SugarElement.fromDom(node));\n        const newStyles = {\n          ...currentStyles,\n          ...attrStyles\n        };\n        dom.setStyles(node, newStyles);\n      });\n      const attrClassesOpt = Optional.from(forcedRootBlockAttrs.class).map(attrClasses => attrClasses.split(/\\s+/));\n      const currentClassesOpt = Optional.from(node.className).map(currentClasses => filter$5(currentClasses.split(/\\s+/), clazz => clazz !== ''));\n      lift2(attrClassesOpt, currentClassesOpt, (attrClasses, currentClasses) => {\n        const filteredClasses = filter$5(currentClasses, clazz => !contains$2(attrClasses, clazz));\n        const newClasses = [\n          ...attrClasses,\n          ...filteredClasses\n        ];\n        dom.setAttrib(node, 'class', newClasses.join(' '));\n      });\n      const appliedAttrs = [\n        'style',\n        'class'\n      ];\n      const remainingAttrs = filter$4(forcedRootBlockAttrs, (_, attrs) => !contains$2(appliedAttrs, attrs));\n      dom.setAttribs(node, remainingAttrs);\n    };\n    const setForcedBlockAttrs = (editor, node) => {\n      const forcedRootBlockName = getForcedRootBlock(editor);\n      if (forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\n        const forcedRootBlockAttrs = getForcedRootBlockAttrs(editor);\n        applyAttributes(editor, node, forcedRootBlockAttrs);\n      }\n    };\n    const wrapSelfAndSiblingsInDefaultBlock = (editor, newBlockName, rng, container, offset) => {\n      var _a;\n      const dom = editor.dom;\n      const editableRoot = (_a = getEditableRoot(dom, container)) !== null && _a !== void 0 ? _a : dom.getRoot();\n      let parentBlock = dom.getParent(container, dom.isBlock);\n      if (!parentBlock || !canSplitBlock(dom, parentBlock)) {\n        parentBlock = parentBlock || editableRoot;\n        let rootBlockName;\n        if (parentBlock === editor.getBody() || isTableCellOrCaption(parentBlock)) {\n          rootBlockName = parentBlock.nodeName.toLowerCase();\n        } else if (parentBlock.parentNode) {\n          rootBlockName = parentBlock.parentNode.nodeName.toLowerCase();\n        } else {\n          rootBlockName = '';\n        }\n        if (!parentBlock.hasChildNodes()) {\n          const newBlock = dom.create(newBlockName);\n          setForcedBlockAttrs(editor, newBlock);\n          parentBlock.appendChild(newBlock);\n          rng.setStart(newBlock, 0);\n          rng.setEnd(newBlock, 0);\n          return newBlock;\n        }\n        let node = container;\n        while (node && node.parentNode !== parentBlock) {\n          node = node.parentNode;\n        }\n        let startNode;\n        while (node && !dom.isBlock(node)) {\n          startNode = node;\n          node = node.previousSibling;\n        }\n        if (startNode && editor.schema.isValidChild(rootBlockName, newBlockName.toLowerCase())) {\n          const startNodeParent = startNode.parentNode;\n          const newBlock = dom.create(newBlockName);\n          setForcedBlockAttrs(editor, newBlock);\n          startNodeParent.insertBefore(newBlock, startNode);\n          node = startNode;\n          while (node && !dom.isBlock(node)) {\n            const next = node.nextSibling;\n            newBlock.appendChild(node);\n            node = next;\n          }\n          rng.setStart(container, offset);\n          rng.setEnd(container, offset);\n        }\n      }\n      return container;\n    };\n    const addBrToBlockIfNeeded = (dom, block) => {\n      block.normalize();\n      const lastChild = block.lastChild;\n      if (!lastChild || isElement$6(lastChild) && /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) {\n        dom.add(block, 'br');\n      }\n    };\n    const shouldEndContainer = (editor, container) => {\n      const optionValue = shouldEndContainerOnEmptyBlock(editor);\n      if (isNullable(container)) {\n        return false;\n      } else if (isString(optionValue)) {\n        return contains$2(Tools.explode(optionValue), container.nodeName.toLowerCase());\n      } else {\n        return optionValue;\n      }\n    };\n    const insert$2 = (editor, evt) => {\n      let container;\n      let offset;\n      let parentBlockName;\n      let containerBlock;\n      let isAfterLastNodeInContainer = false;\n      const dom = editor.dom;\n      const schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();\n      const rng = editor.selection.getRng();\n      const newBlockName = getForcedRootBlock(editor);\n      const createNewBlock = name => {\n        let node = container;\n        const textInlineElements = schema.getTextInlineElements();\n        let block;\n        if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {\n          block = dom.create(name || newBlockName);\n        } else {\n          block = parentBlock.cloneNode(false);\n        }\n        let caretNode = block;\n        if (shouldKeepStyles(editor) === false) {\n          dom.setAttrib(block, 'style', null);\n          dom.setAttrib(block, 'class', null);\n        } else {\n          do {\n            if (textInlineElements[node.nodeName]) {\n              if (isCaretNode(node) || isBookmarkNode$1(node)) {\n                continue;\n              }\n              const clonedNode = node.cloneNode(false);\n              dom.setAttrib(clonedNode, 'id', '');\n              if (block.hasChildNodes()) {\n                clonedNode.appendChild(block.firstChild);\n                block.appendChild(clonedNode);\n              } else {\n                caretNode = clonedNode;\n                block.appendChild(clonedNode);\n              }\n            }\n          } while ((node = node.parentNode) && node !== editableRoot);\n        }\n        setForcedBlockAttrs(editor, block);\n        emptyBlock(caretNode);\n        return block;\n      };\n      const isCaretAtStartOrEndOfBlock = start => {\n        const normalizedOffset = normalizeZwspOffset(start, container, offset);\n        if (isText$a(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.data.length)) {\n          return false;\n        }\n        if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) {\n          return true;\n        }\n        if (start && isElement$6(container) && container === parentBlock.firstChild) {\n          return true;\n        }\n        if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) {\n          return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;\n        }\n        const walker = new DomTreeWalker(container, parentBlock);\n        if (isText$a(container)) {\n          if (start && normalizedOffset === 0) {\n            walker.prev();\n          } else if (!start && normalizedOffset === container.data.length) {\n            walker.next();\n          }\n        }\n        let node;\n        while (node = walker.current()) {\n          if (isElement$6(node)) {\n            if (!node.getAttribute('data-mce-bogus')) {\n              const name = node.nodeName.toLowerCase();\n              if (nonEmptyElementsMap[name] && name !== 'br') {\n                return false;\n              }\n            }\n          } else if (isText$a(node) && !isWhitespaceText(node.data)) {\n            return false;\n          }\n          if (start) {\n            walker.prev();\n          } else {\n            walker.next();\n          }\n        }\n        return true;\n      };\n      const insertNewBlockAfter = () => {\n        let block;\n        if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') {\n          block = createNewBlock(newBlockName);\n        } else {\n          block = createNewBlock();\n        }\n        if (shouldEndContainer(editor, containerBlock) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) {\n          block = dom.split(containerBlock, parentBlock);\n        } else {\n          dom.insertAfter(block, parentBlock);\n        }\n        moveToCaretPosition(editor, block);\n        return block;\n      };\n      normalize$2(dom, rng).each(normRng => {\n        rng.setStart(normRng.startContainer, normRng.startOffset);\n        rng.setEnd(normRng.endContainer, normRng.endOffset);\n      });\n      container = rng.startContainer;\n      offset = rng.startOffset;\n      const shiftKey = !!(evt && evt.shiftKey);\n      const ctrlKey = !!(evt && evt.ctrlKey);\n      if (isElement$6(container) && container.hasChildNodes()) {\n        isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n        container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n        if (isAfterLastNodeInContainer && isText$a(container)) {\n          offset = container.data.length;\n        } else {\n          offset = 0;\n        }\n      }\n      const editableRoot = getEditableRoot(dom, container);\n      if (!editableRoot || isWithinNonEditableList(editor, container)) {\n        return;\n      }\n      if (!shiftKey) {\n        container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset);\n      }\n      let parentBlock = dom.getParent(container, dom.isBlock) || dom.getRoot();\n      containerBlock = isNonNullable(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.parentNode) ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n      parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n      const containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n      if (containerBlockName === 'LI' && !ctrlKey) {\n        const liBlock = containerBlock;\n        parentBlock = liBlock;\n        containerBlock = liBlock.parentNode;\n        parentBlockName = containerBlockName;\n      }\n      if (/^(LI|DT|DD)$/.test(parentBlockName) && isElement$6(containerBlock)) {\n        if (dom.isEmpty(parentBlock)) {\n          insert$3(editor, createNewBlock, containerBlock, parentBlock, newBlockName);\n          return;\n        }\n      }\n      if (parentBlock === editor.getBody()) {\n        return;\n      }\n      const parentBlockParent = parentBlock.parentNode;\n      let newBlock;\n      if (isCaretContainerBlock$1(parentBlock)) {\n        newBlock = showCaretContainerBlock(parentBlock);\n        if (dom.isEmpty(parentBlock)) {\n          emptyBlock(parentBlock);\n        }\n        setForcedBlockAttrs(editor, newBlock);\n        moveToCaretPosition(editor, newBlock);\n      } else if (isCaretAtStartOrEndOfBlock(false)) {\n        newBlock = insertNewBlockAfter();\n      } else if (isCaretAtStartOrEndOfBlock(true) && parentBlockParent) {\n        newBlock = parentBlockParent.insertBefore(createNewBlock(), parentBlock);\n        moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock);\n      } else {\n        const tmpRng = includeZwspInRange(rng).cloneRange();\n        tmpRng.setEndAfter(parentBlock);\n        const fragment = tmpRng.extractContents();\n        trimZwsp(fragment);\n        trimLeadingLineBreaks(fragment);\n        newBlock = fragment.firstChild;\n        dom.insertAfter(fragment, parentBlock);\n        trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock);\n        addBrToBlockIfNeeded(dom, parentBlock);\n        if (dom.isEmpty(parentBlock)) {\n          emptyBlock(parentBlock);\n        }\n        newBlock.normalize();\n        if (dom.isEmpty(newBlock)) {\n          dom.remove(newBlock);\n          insertNewBlockAfter();\n        } else {\n          setForcedBlockAttrs(editor, newBlock);\n          moveToCaretPosition(editor, newBlock);\n        }\n      }\n      dom.setAttrib(newBlock, 'id', '');\n      editor.dispatch('NewBlock', { newBlock });\n    };\n    const fakeEventName$1 = 'insertParagraph';\n    const blockbreak = {\n      insert: insert$2,\n      fakeEventName: fakeEventName$1\n    };\n\n    const hasRightSideContent = (schema, container, parentBlock) => {\n      const walker = new DomTreeWalker(container, parentBlock);\n      let node;\n      const nonEmptyElementsMap = schema.getNonEmptyElements();\n      while (node = walker.next()) {\n        if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || isText$a(node) && node.length > 0) {\n          return true;\n        }\n      }\n      return false;\n    };\n    const moveSelectionToBr = (editor, brElm, extraBr) => {\n      const rng = editor.dom.createRng();\n      if (!extraBr) {\n        rng.setStartAfter(brElm);\n        rng.setEndAfter(brElm);\n      } else {\n        rng.setStartBefore(brElm);\n        rng.setEndBefore(brElm);\n      }\n      editor.selection.setRng(rng);\n      scrollRangeIntoView(editor, rng);\n    };\n    const insertBrAtCaret = (editor, evt) => {\n      const selection = editor.selection;\n      const dom = editor.dom;\n      const rng = selection.getRng();\n      let brElm;\n      let extraBr = false;\n      normalize$2(dom, rng).each(normRng => {\n        rng.setStart(normRng.startContainer, normRng.startOffset);\n        rng.setEnd(normRng.endContainer, normRng.endOffset);\n      });\n      let offset = rng.startOffset;\n      let container = rng.startContainer;\n      if (isElement$6(container) && container.hasChildNodes()) {\n        const isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n        container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n        if (isAfterLastNodeInContainer && isText$a(container)) {\n          offset = container.data.length;\n        } else {\n          offset = 0;\n        }\n      }\n      let parentBlock = dom.getParent(container, dom.isBlock);\n      const containerBlock = parentBlock && parentBlock.parentNode ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n      const containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n      const isControlKey = !!(evt && evt.ctrlKey);\n      if (containerBlockName === 'LI' && !isControlKey) {\n        parentBlock = containerBlock;\n      }\n      if (isText$a(container) && offset >= container.data.length) {\n        if (!hasRightSideContent(editor.schema, container, parentBlock || dom.getRoot())) {\n          brElm = dom.create('br');\n          rng.insertNode(brElm);\n          rng.setStartAfter(brElm);\n          rng.setEndAfter(brElm);\n          extraBr = true;\n        }\n      }\n      brElm = dom.create('br');\n      rangeInsertNode(dom, rng, brElm);\n      moveSelectionToBr(editor, brElm, extraBr);\n      editor.undoManager.add();\n    };\n    const insertBrBefore = (editor, inline) => {\n      const br = SugarElement.fromTag('br');\n      before$3(SugarElement.fromDom(inline), br);\n      editor.undoManager.add();\n    };\n    const insertBrAfter = (editor, inline) => {\n      if (!hasBrAfter(editor.getBody(), inline)) {\n        after$4(SugarElement.fromDom(inline), SugarElement.fromTag('br'));\n      }\n      const br = SugarElement.fromTag('br');\n      after$4(SugarElement.fromDom(inline), br);\n      moveSelectionToBr(editor, br.dom, false);\n      editor.undoManager.add();\n    };\n    const isBeforeBr = pos => {\n      return isBr$6(pos.getNode());\n    };\n    const hasBrAfter = (rootNode, startNode) => {\n      if (isBeforeBr(CaretPosition.after(startNode))) {\n        return true;\n      } else {\n        return nextPosition(rootNode, CaretPosition.after(startNode)).map(pos => {\n          return isBr$6(pos.getNode());\n        }).getOr(false);\n      }\n    };\n    const isAnchorLink = elm => {\n      return elm && elm.nodeName === 'A' && 'href' in elm;\n    };\n    const isInsideAnchor = location => {\n      return location.fold(never, isAnchorLink, isAnchorLink, never);\n    };\n    const readInlineAnchorLocation = editor => {\n      const isInlineTarget$1 = curry(isInlineTarget, editor);\n      const position = CaretPosition.fromRangeStart(editor.selection.getRng());\n      return readLocation(isInlineTarget$1, editor.getBody(), position).filter(isInsideAnchor);\n    };\n    const insertBrOutsideAnchor = (editor, location) => {\n      location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);\n    };\n    const insert$1 = (editor, evt) => {\n      const anchorLocation = readInlineAnchorLocation(editor);\n      if (anchorLocation.isSome()) {\n        anchorLocation.each(curry(insertBrOutsideAnchor, editor));\n      } else {\n        insertBrAtCaret(editor, evt);\n      }\n    };\n    const fakeEventName = 'insertLineBreak';\n    const linebreak = {\n      insert: insert$1,\n      fakeEventName\n    };\n\n    const matchesSelector = (editor, selector) => {\n      return getParentBlock$1(editor).filter(parentBlock => {\n        return selector.length > 0 && is$1(SugarElement.fromDom(parentBlock), selector);\n      }).isSome();\n    };\n    const shouldInsertBr = editor => {\n      return matchesSelector(editor, getBrNewLineSelector(editor));\n    };\n    const shouldBlockNewLine$1 = editor => {\n      return matchesSelector(editor, getNoNewLineSelector(editor));\n    };\n\n    const newLineAction = Adt.generate([\n      { br: [] },\n      { block: [] },\n      { none: [] }\n    ]);\n    const shouldBlockNewLine = (editor, _shiftKey) => {\n      return shouldBlockNewLine$1(editor);\n    };\n    const inListBlock = requiredState => {\n      return (editor, _shiftKey) => {\n        return isListItemParentBlock(editor) === requiredState;\n      };\n    };\n    const inBlock = (blockName, requiredState) => (editor, _shiftKey) => {\n      const state = getParentBlockName(editor) === blockName.toUpperCase();\n      return state === requiredState;\n    };\n    const inCefBlock = editor => {\n      const editableRoot = getEditableRoot(editor.dom, editor.selection.getStart());\n      return isNullable(editableRoot);\n    };\n    const inPreBlock = requiredState => inBlock('pre', requiredState);\n    const inSummaryBlock = () => inBlock('summary', true);\n    const shouldPutBrInPre = requiredState => {\n      return (editor, _shiftKey) => {\n        return shouldPutBrInPre$1(editor) === requiredState;\n      };\n    };\n    const inBrContext = (editor, _shiftKey) => {\n      return shouldInsertBr(editor);\n    };\n    const hasShiftKey = (_editor, shiftKey) => {\n      return shiftKey;\n    };\n    const canInsertIntoEditableRoot = editor => {\n      const forcedRootBlock = getForcedRootBlock(editor);\n      const rootEditable = getEditableRoot(editor.dom, editor.selection.getStart());\n      return isNonNullable(rootEditable) && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock);\n    };\n    const match = (predicates, action) => {\n      return (editor, shiftKey) => {\n        const isMatch = foldl(predicates, (res, p) => {\n          return res && p(editor, shiftKey);\n        }, true);\n        return isMatch ? Optional.some(action) : Optional.none();\n      };\n    };\n    const getAction = (editor, evt) => {\n      return evaluateUntil([\n        match([shouldBlockNewLine], newLineAction.none()),\n        match([\n          inPreBlock(true),\n          inCefBlock\n        ], newLineAction.none()),\n        match([inSummaryBlock()], newLineAction.br()),\n        match([\n          inPreBlock(true),\n          shouldPutBrInPre(false),\n          hasShiftKey\n        ], newLineAction.br()),\n        match([\n          inPreBlock(true),\n          shouldPutBrInPre(false)\n        ], newLineAction.block()),\n        match([\n          inPreBlock(true),\n          shouldPutBrInPre(true),\n          hasShiftKey\n        ], newLineAction.block()),\n        match([\n          inPreBlock(true),\n          shouldPutBrInPre(true)\n        ], newLineAction.br()),\n        match([\n          inListBlock(true),\n          hasShiftKey\n        ], newLineAction.br()),\n        match([inListBlock(true)], newLineAction.block()),\n        match([inBrContext], newLineAction.br()),\n        match([hasShiftKey], newLineAction.br()),\n        match([canInsertIntoEditableRoot], newLineAction.block())\n      ], [\n        editor,\n        !!(evt && evt.shiftKey)\n      ]).getOr(newLineAction.none());\n    };\n\n    const insertBreak = (breakType, editor, evt) => {\n      if (!editor.selection.isCollapsed()) {\n        execEditorDeleteCommand(editor);\n      }\n      if (isNonNullable(evt)) {\n        const event = fireFakeBeforeInputEvent(editor, breakType.fakeEventName);\n        if (event.isDefaultPrevented()) {\n          return;\n        }\n      }\n      breakType.insert(editor, evt);\n      if (isNonNullable(evt)) {\n        fireFakeInputEvent(editor, breakType.fakeEventName);\n      }\n    };\n    const insert = (editor, evt) => {\n      const br = () => insertBreak(linebreak, editor, evt);\n      const block = () => insertBreak(blockbreak, editor, evt);\n      const logicalAction = getAction(editor, evt);\n      switch (getNewlineBehavior(editor)) {\n      case 'linebreak':\n        logicalAction.fold(br, br, noop);\n        break;\n      case 'block':\n        logicalAction.fold(block, block, noop);\n        break;\n      case 'invert':\n        logicalAction.fold(block, br, noop);\n        break;\n      default:\n        logicalAction.fold(br, block, noop);\n        break;\n      }\n    };\n\n    const handleEnterKeyEvent = (editor, event) => {\n      if (event.isDefaultPrevented()) {\n        return;\n      }\n      event.preventDefault();\n      endTypingLevelIgnoreLocks(editor.undoManager);\n      editor.undoManager.transact(() => {\n        insert(editor, event);\n      });\n    };\n    const setup$h = editor => {\n      editor.on('keydown', event => {\n        if (event.keyCode === VK.ENTER) {\n          handleEnterKeyEvent(editor, event);\n        }\n      });\n    };\n\n    const executeKeydownOverride$2 = (editor, caret, evt) => {\n      const isMac = Env.os.isMacOS() || Env.os.isiOS();\n      execute([\n        {\n          keyCode: VK.END,\n          action: action(moveToLineEndPoint$1, editor, true)\n        },\n        {\n          keyCode: VK.HOME,\n          action: action(moveToLineEndPoint$1, editor, false)\n        },\n        ...!isMac ? [\n          {\n            keyCode: VK.HOME,\n            action: action(selectToEndPoint, editor, false),\n            ctrlKey: true,\n            shiftKey: true\n          },\n          {\n            keyCode: VK.END,\n            action: action(selectToEndPoint, editor, true),\n            ctrlKey: true,\n            shiftKey: true\n          }\n        ] : [],\n        {\n          keyCode: VK.END,\n          action: action(moveToLineEndPoint, editor, true)\n        },\n        {\n          keyCode: VK.HOME,\n          action: action(moveToLineEndPoint, editor, false)\n        },\n        {\n          keyCode: VK.END,\n          action: action(moveToLineEndPoint$2, editor, true, caret)\n        },\n        {\n          keyCode: VK.HOME,\n          action: action(moveToLineEndPoint$2, editor, false, caret)\n        }\n      ], evt).each(_ => {\n        evt.preventDefault();\n      });\n    };\n    const setup$g = (editor, caret) => {\n      editor.on('keydown', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeydownOverride$2(editor, caret, evt);\n        }\n      });\n    };\n\n    const setup$f = editor => {\n      editor.on('input', e => {\n        if (!e.isComposing) {\n          normalizeNbspsInEditor(editor);\n        }\n      });\n    };\n\n    const platform = detect$2();\n    const executeKeyupAction = (editor, caret, evt) => {\n      execute([\n        {\n          keyCode: VK.PAGE_UP,\n          action: action(moveToLineEndPoint$2, editor, false, caret)\n        },\n        {\n          keyCode: VK.PAGE_DOWN,\n          action: action(moveToLineEndPoint$2, editor, true, caret)\n        }\n      ], evt);\n    };\n    const stopImmediatePropagation = e => e.stopImmediatePropagation();\n    const isPageUpDown = evt => evt.keyCode === VK.PAGE_UP || evt.keyCode === VK.PAGE_DOWN;\n    const setNodeChangeBlocker = (blocked, editor, block) => {\n      if (block && !blocked.get()) {\n        editor.on('NodeChange', stopImmediatePropagation, true);\n      } else if (!block && blocked.get()) {\n        editor.off('NodeChange', stopImmediatePropagation);\n      }\n      blocked.set(block);\n    };\n    const setup$e = (editor, caret) => {\n      if (platform.os.isMacOS()) {\n        return;\n      }\n      const blocked = Cell(false);\n      editor.on('keydown', evt => {\n        if (isPageUpDown(evt)) {\n          setNodeChangeBlocker(blocked, editor, true);\n        }\n      });\n      editor.on('keyup', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeyupAction(editor, caret, evt);\n        }\n        if (isPageUpDown(evt) && blocked.get()) {\n          setNodeChangeBlocker(blocked, editor, false);\n          editor.nodeChanged();\n        }\n      });\n    };\n\n    const insertTextAtPosition = (text, pos) => {\n      const container = pos.container();\n      const offset = pos.offset();\n      if (isText$a(container)) {\n        container.insertData(offset, text);\n        return Optional.some(CaretPosition(container, offset + text.length));\n      } else {\n        return getElementFromPosition(pos).map(elm => {\n          const textNode = SugarElement.fromText(text);\n          if (pos.isAtEnd()) {\n            after$4(elm, textNode);\n          } else {\n            before$3(elm, textNode);\n          }\n          return CaretPosition(textNode.dom, text.length);\n        });\n      }\n    };\n    const insertNbspAtPosition = curry(insertTextAtPosition, nbsp);\n    const insertSpaceAtPosition = curry(insertTextAtPosition, ' ');\n\n    const locationToCaretPosition = root => location => location.fold(element => prevPosition(root.dom, CaretPosition.before(element)), element => firstPositionIn(element), element => lastPositionIn(element), element => nextPosition(root.dom, CaretPosition.after(element)));\n    const insertInlineBoundarySpaceOrNbsp = (root, pos) => checkPos => needsToHaveNbsp(root, checkPos) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n    const setSelection = editor => pos => {\n      editor.selection.setRng(pos.toRange());\n      editor.nodeChanged();\n      return true;\n    };\n    const insertSpaceOrNbspAtSelection = editor => {\n      const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n      const root = SugarElement.fromDom(editor.getBody());\n      if (editor.selection.isCollapsed()) {\n        const isInlineTarget$1 = curry(isInlineTarget, editor);\n        const caretPosition = CaretPosition.fromRangeStart(editor.selection.getRng());\n        return readLocation(isInlineTarget$1, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).map(checkPos => () => insertInlineBoundarySpaceOrNbsp(root, pos)(checkPos).each(setSelection(editor)));\n      } else {\n        return Optional.none();\n      }\n    };\n\n    const executeKeydownOverride$1 = (editor, evt) => {\n      executeWithDelayedAction([{\n          keyCode: VK.SPACEBAR,\n          action: action(insertSpaceOrNbspAtSelection, editor)\n        }], evt).each(applyAction => {\n        evt.preventDefault();\n        const event = fireFakeBeforeInputEvent(editor, 'insertText', { data: ' ' });\n        if (!event.isDefaultPrevented()) {\n          applyAction();\n          fireFakeInputEvent(editor, 'insertText', { data: ' ' });\n        }\n      });\n    };\n    const setup$d = editor => {\n      editor.on('keydown', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeydownOverride$1(editor, evt);\n        }\n      });\n    };\n\n    const tableTabNavigation = editor => {\n      if (hasTableTabNavigation(editor)) {\n        return [\n          {\n            keyCode: VK.TAB,\n            action: action(handleTab, editor, true)\n          },\n          {\n            keyCode: VK.TAB,\n            shiftKey: true,\n            action: action(handleTab, editor, false)\n          }\n        ];\n      } else {\n        return [];\n      }\n    };\n    const executeKeydownOverride = (editor, evt) => {\n      execute([...tableTabNavigation(editor)], evt).each(_ => {\n        evt.preventDefault();\n      });\n    };\n    const setup$c = editor => {\n      editor.on('keydown', evt => {\n        if (!evt.isDefaultPrevented()) {\n          executeKeydownOverride(editor, evt);\n        }\n      });\n    };\n\n    const setup$b = editor => {\n      editor.addShortcut('Meta+P', '', 'mcePrint');\n      setup$j(editor);\n      if (isRtc(editor)) {\n        return Cell(null);\n      } else {\n        const caret = setupSelectedState(editor);\n        setup$l(editor);\n        setup$k(editor, caret);\n        setup$i(editor, caret);\n        setup$h(editor);\n        setup$d(editor);\n        setup$f(editor);\n        setup$c(editor);\n        setup$g(editor, caret);\n        setup$e(editor, caret);\n        return caret;\n      }\n    };\n\n    class NodeChange {\n      constructor(editor) {\n        this.lastPath = [];\n        this.editor = editor;\n        let lastRng;\n        const self = this;\n        if (!('onselectionchange' in editor.getDoc())) {\n          editor.on('NodeChange click mouseup keyup focus', e => {\n            const nativeRng = editor.selection.getRng();\n            const fakeRng = {\n              startContainer: nativeRng.startContainer,\n              startOffset: nativeRng.startOffset,\n              endContainer: nativeRng.endContainer,\n              endOffset: nativeRng.endOffset\n            };\n            if (e.type === 'nodechange' || !isEq$4(fakeRng, lastRng)) {\n              editor.dispatch('SelectionChange');\n            }\n            lastRng = fakeRng;\n          });\n        }\n        editor.on('contextmenu', () => {\n          editor.dispatch('SelectionChange');\n        });\n        editor.on('SelectionChange', () => {\n          const startElm = editor.selection.getStart(true);\n          if (!startElm) {\n            return;\n          }\n          if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {\n            editor.nodeChanged({ selectionChange: true });\n          }\n        });\n        editor.on('mouseup', e => {\n          if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {\n            if (editor.selection.getNode().nodeName === 'IMG') {\n              Delay.setEditorTimeout(editor, () => {\n                editor.nodeChanged();\n              });\n            } else {\n              editor.nodeChanged();\n            }\n          }\n        });\n      }\n      nodeChanged(args = {}) {\n        const selection = this.editor.selection;\n        let node;\n        if (this.editor.initialized && selection && !shouldDisableNodeChange(this.editor) && !this.editor.mode.isReadOnly()) {\n          const root = this.editor.getBody();\n          node = selection.getStart(true) || root;\n          if (node.ownerDocument !== this.editor.getDoc() || !this.editor.dom.isChildOf(node, root)) {\n            node = root;\n          }\n          const parents = [];\n          this.editor.dom.getParent(node, node => {\n            if (node === root) {\n              return true;\n            } else {\n              parents.push(node);\n              return false;\n            }\n          });\n          this.editor.dispatch('NodeChange', {\n            ...args,\n            element: node,\n            parents\n          });\n        }\n      }\n      isSameElementPath(startElm) {\n        let i;\n        const editor = this.editor;\n        const currentPath = reverse(editor.dom.getParents(startElm, always, editor.getBody()));\n        if (currentPath.length === this.lastPath.length) {\n          for (i = currentPath.length; i >= 0; i--) {\n            if (currentPath[i] !== this.lastPath[i]) {\n              break;\n            }\n          }\n          if (i === -1) {\n            this.lastPath = currentPath;\n            return true;\n          }\n        }\n        this.lastPath = currentPath;\n        return false;\n      }\n    }\n\n    const internalMimeType = 'x-tinymce/html';\n    const internalHtmlMime = constant(internalMimeType);\n    const internalMark = '<!-- ' + internalMimeType + ' -->';\n    const mark = html => internalMark + html;\n    const unmark = html => html.replace(internalMark, '');\n    const isMarked = html => html.indexOf(internalMark) !== -1;\n\n    const isPlainText = text => {\n      return !/<(?:\\/?(?!(?:div|p|br|span)>)\\w+|(?:(?!(?:span style=\"white-space:\\s?pre;?\">)|br\\s?\\/>))\\w+\\s[^>]+)>/i.test(text);\n    };\n    const openContainer = (rootTag, rootAttrs) => {\n      let tag = '<' + rootTag;\n      const attrs = mapToArray(rootAttrs, (value, key) => key + '=\"' + Entities.encodeAllRaw(value) + '\"');\n      if (attrs.length) {\n        tag += ' ' + attrs.join(' ');\n      }\n      return tag + '>';\n    };\n    const toBlockElements = (text, rootTag, rootAttrs) => {\n      const blocks = text.split(/\\n\\n/);\n      const tagOpen = openContainer(rootTag, rootAttrs);\n      const tagClose = '</' + rootTag + '>';\n      const paragraphs = map$3(blocks, p => {\n        return p.split(/\\n/).join('<br />');\n      });\n      const stitch = p => {\n        return tagOpen + p + tagClose;\n      };\n      return paragraphs.length === 1 ? paragraphs[0] : map$3(paragraphs, stitch).join('');\n    };\n\n    const pasteBinDefaultContent = '%MCEPASTEBIN%';\n    const create$6 = (editor, lastRngCell) => {\n      const {dom, selection} = editor;\n      const body = editor.getBody();\n      lastRngCell.set(selection.getRng());\n      const pasteBinElm = dom.add(editor.getBody(), 'div', {\n        'id': 'mcepastebin',\n        'class': 'mce-pastebin',\n        'contentEditable': true,\n        'data-mce-bogus': 'all',\n        'style': 'position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0'\n      }, pasteBinDefaultContent);\n      if (Env.browser.isFirefox()) {\n        dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535);\n      }\n      dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', e => {\n        e.stopPropagation();\n      });\n      pasteBinElm.focus();\n      selection.select(pasteBinElm, true);\n    };\n    const remove = (editor, lastRngCell) => {\n      const dom = editor.dom;\n      if (getEl(editor)) {\n        let pasteBinClone;\n        const lastRng = lastRngCell.get();\n        while (pasteBinClone = getEl(editor)) {\n          dom.remove(pasteBinClone);\n          dom.unbind(pasteBinClone);\n        }\n        if (lastRng) {\n          editor.selection.setRng(lastRng);\n        }\n      }\n      lastRngCell.set(null);\n    };\n    const getEl = editor => editor.dom.get('mcepastebin');\n    const isPasteBin = elm => isNonNullable(elm) && elm.id === 'mcepastebin';\n    const getHtml = editor => {\n      const dom = editor.dom;\n      const copyAndRemove = (toElm, fromElm) => {\n        toElm.appendChild(fromElm);\n        dom.remove(fromElm, true);\n      };\n      const [pasteBinElm, ...pasteBinClones] = filter$5(editor.getBody().childNodes, isPasteBin);\n      each$e(pasteBinClones, pasteBinClone => {\n        copyAndRemove(pasteBinElm, pasteBinClone);\n      });\n      const dirtyWrappers = dom.select('div[id=mcepastebin]', pasteBinElm);\n      for (let i = dirtyWrappers.length - 1; i >= 0; i--) {\n        const cleanWrapper = dom.create('div');\n        pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]);\n        copyAndRemove(cleanWrapper, dirtyWrappers[i]);\n      }\n      return pasteBinElm ? pasteBinElm.innerHTML : '';\n    };\n    const isDefaultPasteBinContent = content => content === pasteBinDefaultContent;\n    const PasteBin = editor => {\n      const lastRng = Cell(null);\n      return {\n        create: () => create$6(editor, lastRng),\n        remove: () => remove(editor, lastRng),\n        getEl: () => getEl(editor),\n        getHtml: () => getHtml(editor),\n        getLastRng: lastRng.get\n      };\n    };\n\n    const filter = (content, items) => {\n      Tools.each(items, v => {\n        if (is$4(v, RegExp)) {\n          content = content.replace(v, '');\n        } else {\n          content = content.replace(v[0], v[1]);\n        }\n      });\n      return content;\n    };\n    const innerText = html => {\n      const schema = Schema();\n      const domParser = DomParser({}, schema);\n      let text = '';\n      const voidElements = schema.getVoidElements();\n      const ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' ');\n      const blockElements = schema.getBlockElements();\n      const walk = node => {\n        const name = node.name, currentNode = node;\n        if (name === 'br') {\n          text += '\\n';\n          return;\n        }\n        if (name === 'wbr') {\n          return;\n        }\n        if (voidElements[name]) {\n          text += ' ';\n        }\n        if (ignoreElements[name]) {\n          text += ' ';\n          return;\n        }\n        if (node.type === 3) {\n          text += node.value;\n        }\n        if (!(node.name in schema.getVoidElements())) {\n          let currentNode = node.firstChild;\n          if (currentNode) {\n            do {\n              walk(currentNode);\n            } while (currentNode = currentNode.next);\n          }\n        }\n        if (blockElements[name] && currentNode.next) {\n          text += '\\n';\n          if (name === 'p') {\n            text += '\\n';\n          }\n        }\n      };\n      html = filter(html, [/<!\\[[^\\]]+\\]>/g]);\n      walk(domParser.parse(html));\n      return text;\n    };\n    const trimHtml = html => {\n      const trimSpaces = (all, s1, s2) => {\n        if (!s1 && !s2) {\n          return ' ';\n        }\n        return nbsp;\n      };\n      html = filter(html, [\n        /^[\\s\\S]*<body[^>]*>\\s*|\\s*<\\/body[^>]*>[\\s\\S]*$/ig,\n        /<!--StartFragment-->|<!--EndFragment-->/g,\n        [\n          /( ?)<span class=\"Apple-converted-space\">\\u00a0<\\/span>( ?)/g,\n          trimSpaces\n        ],\n        /<br class=\"Apple-interchange-newline\">/g,\n        /<br>$/i\n      ]);\n      return html;\n    };\n    const createIdGenerator = prefix => {\n      let count = 0;\n      return () => {\n        return prefix + count++;\n      };\n    };\n    const getImageMimeType = ext => {\n      const lowerExt = ext.toLowerCase();\n      const mimeOverrides = {\n        jpg: 'jpeg',\n        jpe: 'jpeg',\n        jfi: 'jpeg',\n        jif: 'jpeg',\n        jfif: 'jpeg',\n        pjpeg: 'jpeg',\n        pjp: 'jpeg',\n        svg: 'svg+xml'\n      };\n      return Tools.hasOwn(mimeOverrides, lowerExt) ? 'image/' + mimeOverrides[lowerExt] : 'image/' + lowerExt;\n    };\n\n    const preProcess = (editor, html) => {\n      const parser = DomParser({}, editor.schema);\n      parser.addNodeFilter('meta', nodes => {\n        Tools.each(nodes, node => {\n          node.remove();\n        });\n      });\n      const fragment = parser.parse(html, {\n        forced_root_block: false,\n        isRootContent: true\n      });\n      return HtmlSerializer({ validate: true }, editor.schema).serialize(fragment);\n    };\n    const processResult = (content, cancelled) => ({\n      content,\n      cancelled\n    });\n    const postProcessFilter = (editor, html, internal) => {\n      const tempBody = editor.dom.create('div', { style: 'display:none' }, html);\n      const postProcessArgs = firePastePostProcess(editor, tempBody, internal);\n      return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented());\n    };\n    const filterContent = (editor, content, internal) => {\n      const preProcessArgs = firePastePreProcess(editor, content, internal);\n      const filteredContent = preProcess(editor, preProcessArgs.content);\n      if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) {\n        return postProcessFilter(editor, filteredContent, internal);\n      } else {\n        return processResult(filteredContent, preProcessArgs.isDefaultPrevented());\n      }\n    };\n    const process = (editor, html, internal) => {\n      return filterContent(editor, html, internal);\n    };\n\n    const pasteHtml$1 = (editor, html) => {\n      editor.insertContent(html, {\n        merge: shouldPasteMergeFormats(editor),\n        paste: true\n      });\n      return true;\n    };\n    const isAbsoluteUrl = url => /^https?:\\/\\/[\\w\\-\\/+=.,!;:&%@^~(){}?#]+$/i.test(url);\n    const isImageUrl = (editor, url) => {\n      return isAbsoluteUrl(url) && exists(getAllowedImageFileTypes(editor), type => endsWith(url.toLowerCase(), `.${ type.toLowerCase() }`));\n    };\n    const createImage = (editor, url, pasteHtmlFn) => {\n      editor.undoManager.extra(() => {\n        pasteHtmlFn(editor, url);\n      }, () => {\n        editor.insertContent('<img src=\"' + url + '\">');\n      });\n      return true;\n    };\n    const createLink = (editor, url, pasteHtmlFn) => {\n      editor.undoManager.extra(() => {\n        pasteHtmlFn(editor, url);\n      }, () => {\n        editor.execCommand('mceInsertLink', false, url);\n      });\n      return true;\n    };\n    const linkSelection = (editor, html, pasteHtmlFn) => !editor.selection.isCollapsed() && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtmlFn) : false;\n    const insertImage = (editor, html, pasteHtmlFn) => isImageUrl(editor, html) ? createImage(editor, html, pasteHtmlFn) : false;\n    const smartInsertContent = (editor, html) => {\n      Tools.each([\n        linkSelection,\n        insertImage,\n        pasteHtml$1\n      ], action => {\n        return !action(editor, html, pasteHtml$1);\n      });\n    };\n    const insertContent = (editor, html, pasteAsText) => {\n      if (pasteAsText || !isSmartPasteEnabled(editor)) {\n        pasteHtml$1(editor, html);\n      } else {\n        smartInsertContent(editor, html);\n      }\n    };\n\n    const uniqueId = createIdGenerator('mceclip');\n    const doPaste = (editor, content, internal, pasteAsText) => {\n      const args = process(editor, content, internal);\n      if (!args.cancelled) {\n        insertContent(editor, args.content, pasteAsText);\n      }\n    };\n    const pasteHtml = (editor, html, internalFlag) => {\n      const internal = internalFlag ? internalFlag : isMarked(html);\n      doPaste(editor, unmark(html), internal, false);\n    };\n    const pasteText = (editor, text) => {\n      const encodedText = editor.dom.encode(text).replace(/\\r\\n/g, '\\n');\n      const normalizedText = normalize$4(encodedText, getPasteTabSpaces(editor));\n      const html = toBlockElements(normalizedText, getForcedRootBlock(editor), getForcedRootBlockAttrs(editor));\n      doPaste(editor, html, false, true);\n    };\n    const getDataTransferItems = dataTransfer => {\n      const items = {};\n      if (dataTransfer && dataTransfer.types) {\n        for (let i = 0; i < dataTransfer.types.length; i++) {\n          const contentType = dataTransfer.types[i];\n          try {\n            items[contentType] = dataTransfer.getData(contentType);\n          } catch (ex) {\n            items[contentType] = '';\n          }\n        }\n      }\n      return items;\n    };\n    const hasContentType = (clipboardContent, mimeType) => mimeType in clipboardContent && clipboardContent[mimeType].length > 0;\n    const hasHtmlOrText = content => hasContentType(content, 'text/html') || hasContentType(content, 'text/plain');\n    const extractFilename = (editor, str) => {\n      const m = str.match(/([\\s\\S]+?)(?:\\.[a-z0-9.]+)$/i);\n      return isNonNullable(m) ? editor.dom.encode(m[1]) : undefined;\n    };\n    const createBlobInfo = (editor, blobCache, file, base64) => {\n      const id = uniqueId();\n      const useFileName = shouldReuseFileName(editor) && isNonNullable(file.name);\n      const name = useFileName ? extractFilename(editor, file.name) : id;\n      const filename = useFileName ? file.name : undefined;\n      const blobInfo = blobCache.create(id, file, base64, name, filename);\n      blobCache.add(blobInfo);\n      return blobInfo;\n    };\n    const pasteImage = (editor, imageItem) => {\n      parseDataUri(imageItem.uri).each(({data, type, base64Encoded}) => {\n        const base64 = base64Encoded ? data : btoa(data);\n        const file = imageItem.file;\n        const blobCache = editor.editorUpload.blobCache;\n        const existingBlobInfo = blobCache.getByData(base64, type);\n        const blobInfo = existingBlobInfo !== null && existingBlobInfo !== void 0 ? existingBlobInfo : createBlobInfo(editor, blobCache, file, base64);\n        pasteHtml(editor, `<img src=\"${ blobInfo.blobUri() }\">`, false);\n      });\n    };\n    const isClipboardEvent = event => event.type === 'paste';\n    const readFilesAsDataUris = items => Promise.all(map$3(items, file => {\n      return blobToDataUri(file).then(uri => ({\n        file,\n        uri\n      }));\n    }));\n    const isImage = editor => {\n      const allowedExtensions = getAllowedImageFileTypes(editor);\n      return file => startsWith(file.type, 'image/') && exists(allowedExtensions, extension => {\n        return getImageMimeType(extension) === file.type;\n      });\n    };\n    const getImagesFromDataTransfer = (editor, dataTransfer) => {\n      const items = dataTransfer.items ? bind$3(from(dataTransfer.items), item => {\n        return item.kind === 'file' ? [item.getAsFile()] : [];\n      }) : [];\n      const files = dataTransfer.files ? from(dataTransfer.files) : [];\n      return filter$5(items.length > 0 ? items : files, isImage(editor));\n    };\n    const pasteImageData = (editor, e, rng) => {\n      const dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer;\n      if (shouldPasteDataImages(editor) && dataTransfer) {\n        const images = getImagesFromDataTransfer(editor, dataTransfer);\n        if (images.length > 0) {\n          e.preventDefault();\n          readFilesAsDataUris(images).then(fileResults => {\n            if (rng) {\n              editor.selection.setRng(rng);\n            }\n            each$e(fileResults, result => {\n              pasteImage(editor, result);\n            });\n          });\n          return true;\n        }\n      }\n      return false;\n    };\n    const isBrokenAndroidClipboardEvent = e => {\n      var _a, _b;\n      return Env.os.isAndroid() && ((_b = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length) === 0;\n    };\n    const isKeyboardPasteEvent = e => VK.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45;\n    const insertClipboardContent = (editor, clipboardContent, html, plainTextMode) => {\n      let content = trimHtml(html);\n      const isInternal = hasContentType(clipboardContent, internalHtmlMime()) || isMarked(html);\n      const isPlainTextHtml = !isInternal && isPlainText(content);\n      const isAbsoluteUrl$1 = isAbsoluteUrl(content);\n      if (isDefaultPasteBinContent(content) || !content.length || isPlainTextHtml && !isAbsoluteUrl$1) {\n        plainTextMode = true;\n      }\n      if (plainTextMode || isAbsoluteUrl$1) {\n        if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) {\n          content = clipboardContent['text/plain'];\n        } else {\n          content = innerText(content);\n        }\n      }\n      if (isDefaultPasteBinContent(content)) {\n        return;\n      }\n      if (plainTextMode) {\n        pasteText(editor, content);\n      } else {\n        pasteHtml(editor, content, isInternal);\n      }\n    };\n    const registerEventHandlers = (editor, pasteBin, pasteFormat) => {\n      let keyboardPastePlainTextState;\n      const getLastRng = () => pasteBin.getLastRng() || editor.selection.getRng();\n      editor.on('keydown', e => {\n        if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n          keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86;\n        }\n      });\n      editor.on('paste', e => {\n        if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {\n          return;\n        }\n        const plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState;\n        keyboardPastePlainTextState = false;\n        const clipboardContent = getDataTransferItems(e.clipboardData);\n        if (!hasHtmlOrText(clipboardContent) && pasteImageData(editor, e, getLastRng())) {\n          return;\n        }\n        if (hasContentType(clipboardContent, 'text/html')) {\n          e.preventDefault();\n          insertClipboardContent(editor, clipboardContent, clipboardContent['text/html'], plainTextMode);\n        } else {\n          pasteBin.create();\n          Delay.setEditorTimeout(editor, () => {\n            const html = pasteBin.getHtml();\n            pasteBin.remove();\n            insertClipboardContent(editor, clipboardContent, html, plainTextMode);\n          }, 0);\n        }\n      });\n    };\n    const registerDataImageFilter = editor => {\n      const isWebKitFakeUrl = src => startsWith(src, 'webkit-fake-url');\n      const isDataUri = src => startsWith(src, 'data:');\n      const isPasteInsert = args => {\n        var _a;\n        return ((_a = args.data) === null || _a === void 0 ? void 0 : _a.paste) === true;\n      };\n      editor.parser.addNodeFilter('img', (nodes, name, args) => {\n        if (!shouldPasteDataImages(editor) && isPasteInsert(args)) {\n          for (const node of nodes) {\n            const src = node.attr('src');\n            if (isString(src) && !node.attr('data-mce-object') && src !== Env.transparentSrc) {\n              if (isWebKitFakeUrl(src)) {\n                node.remove();\n              } else if (!shouldAllowHtmlDataUrls(editor) && isDataUri(src)) {\n                node.remove();\n              }\n            }\n          }\n        }\n      });\n    };\n    const registerEventsAndFilters = (editor, pasteBin, pasteFormat) => {\n      registerEventHandlers(editor, pasteBin, pasteFormat);\n      registerDataImageFilter(editor);\n    };\n\n    const togglePlainTextPaste = (editor, pasteFormat) => {\n      if (pasteFormat.get() === 'text') {\n        pasteFormat.set('html');\n        firePastePlainTextToggle(editor, false);\n      } else {\n        pasteFormat.set('text');\n        firePastePlainTextToggle(editor, true);\n      }\n      editor.focus();\n    };\n    const register$1 = (editor, pasteFormat) => {\n      editor.addCommand('mceTogglePlainTextPaste', () => {\n        togglePlainTextPaste(editor, pasteFormat);\n      });\n      editor.addCommand('mceInsertClipboardContent', (ui, value) => {\n        if (value.html) {\n          pasteHtml(editor, value.html, value.internal);\n        }\n        if (value.text) {\n          pasteText(editor, value.text);\n        }\n      });\n    };\n\n    const setHtml5Clipboard = (clipboardData, html, text) => {\n      if (clipboardData) {\n        try {\n          clipboardData.clearData();\n          clipboardData.setData('text/html', html);\n          clipboardData.setData('text/plain', text);\n          clipboardData.setData(internalHtmlMime(), html);\n          return true;\n        } catch (e) {\n          return false;\n        }\n      } else {\n        return false;\n      }\n    };\n    const setClipboardData = (evt, data, fallback, done) => {\n      if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) {\n        evt.preventDefault();\n        done();\n      } else {\n        fallback(data.html, done);\n      }\n    };\n    const fallback = editor => (html, done) => {\n      const {dom, selection} = editor;\n      const outer = dom.create('div', {\n        'contenteditable': 'false',\n        'data-mce-bogus': 'all'\n      });\n      const inner = dom.create('div', { contenteditable: 'true' }, html);\n      dom.setStyles(outer, {\n        position: 'fixed',\n        top: '0',\n        left: '-3000px',\n        width: '1000px',\n        overflow: 'hidden'\n      });\n      outer.appendChild(inner);\n      dom.add(editor.getBody(), outer);\n      const range = selection.getRng();\n      inner.focus();\n      const offscreenRange = dom.createRng();\n      offscreenRange.selectNodeContents(inner);\n      selection.setRng(offscreenRange);\n      Delay.setEditorTimeout(editor, () => {\n        selection.setRng(range);\n        dom.remove(outer);\n        done();\n      }, 0);\n    };\n    const getData = editor => ({\n      html: mark(editor.selection.getContent({ contextual: true })),\n      text: editor.selection.getContent({ format: 'text' })\n    });\n    const isTableSelection = editor => !!editor.dom.getParent(editor.selection.getStart(), 'td[data-mce-selected],th[data-mce-selected]', editor.getBody());\n    const hasSelectedContent = editor => !editor.selection.isCollapsed() || isTableSelection(editor);\n    const cut = editor => evt => {\n      if (!evt.isDefaultPrevented() && hasSelectedContent(editor)) {\n        setClipboardData(evt, getData(editor), fallback(editor), () => {\n          if (Env.browser.isChromium() || Env.browser.isFirefox()) {\n            const rng = editor.selection.getRng();\n            Delay.setEditorTimeout(editor, () => {\n              editor.selection.setRng(rng);\n              editor.execCommand('Delete');\n            }, 0);\n          } else {\n            editor.execCommand('Delete');\n          }\n        });\n      }\n    };\n    const copy = editor => evt => {\n      if (!evt.isDefaultPrevented() && hasSelectedContent(editor)) {\n        setClipboardData(evt, getData(editor), fallback(editor), noop);\n      }\n    };\n    const register = editor => {\n      editor.on('cut', cut(editor));\n      editor.on('copy', copy(editor));\n    };\n\n    const getCaretRangeFromEvent = (editor, e) => {\n      var _a, _b;\n      return RangeUtils.getCaretRangeFromPoint((_a = e.clientX) !== null && _a !== void 0 ? _a : 0, (_b = e.clientY) !== null && _b !== void 0 ? _b : 0, editor.getDoc());\n    };\n    const isPlainTextFileUrl = content => {\n      const plainTextContent = content['text/plain'];\n      return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false;\n    };\n    const setFocusedRange = (editor, rng) => {\n      editor.focus();\n      if (rng) {\n        editor.selection.setRng(rng);\n      }\n    };\n    const hasImage = dataTransfer => exists(dataTransfer.files, file => /^image\\//.test(file.type));\n    const setup$a = (editor, draggingInternallyState) => {\n      if (shouldPasteBlockDrop(editor)) {\n        editor.on('dragend dragover draggesture dragdrop drop drag', e => {\n          e.preventDefault();\n          e.stopPropagation();\n        });\n      }\n      if (!shouldPasteDataImages(editor)) {\n        editor.on('drop', e => {\n          const dataTransfer = e.dataTransfer;\n          if (dataTransfer && hasImage(dataTransfer)) {\n            e.preventDefault();\n          }\n        });\n      }\n      editor.on('drop', e => {\n        if (e.isDefaultPrevented() || draggingInternallyState.get()) {\n          return;\n        }\n        const rng = getCaretRangeFromEvent(editor, e);\n        if (isNullable(rng)) {\n          return;\n        }\n        const dropContent = getDataTransferItems(e.dataTransfer);\n        const internal = hasContentType(dropContent, internalHtmlMime());\n        if ((!hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && pasteImageData(editor, e, rng)) {\n          return;\n        }\n        const internalContent = dropContent[internalHtmlMime()];\n        const content = internalContent || dropContent['text/html'] || dropContent['text/plain'];\n        if (content) {\n          e.preventDefault();\n          Delay.setEditorTimeout(editor, () => {\n            editor.undoManager.transact(() => {\n              if (internalContent) {\n                editor.execCommand('Delete');\n              }\n              setFocusedRange(editor, rng);\n              const trimmedContent = trimHtml(content);\n              if (dropContent['text/html']) {\n                pasteHtml(editor, trimmedContent, internal);\n              } else {\n                pasteText(editor, trimmedContent);\n              }\n            });\n          });\n        }\n      });\n      editor.on('dragstart', _e => {\n        draggingInternallyState.set(true);\n      });\n      editor.on('dragover dragend', e => {\n        if (shouldPasteDataImages(editor) && !draggingInternallyState.get()) {\n          e.preventDefault();\n          setFocusedRange(editor, getCaretRangeFromEvent(editor, e));\n        }\n        if (e.type === 'dragend') {\n          draggingInternallyState.set(false);\n        }\n      });\n    };\n\n    const setup$9 = editor => {\n      const processEvent = f => e => {\n        f(editor, e);\n      };\n      const preProcess = getPastePreProcess(editor);\n      if (isFunction(preProcess)) {\n        editor.on('PastePreProcess', processEvent(preProcess));\n      }\n      const postProcess = getPastePostProcess(editor);\n      if (isFunction(postProcess)) {\n        editor.on('PastePostProcess', processEvent(postProcess));\n      }\n    };\n\n    const addPreProcessFilter = (editor, filterFunc) => {\n      editor.on('PastePreProcess', e => {\n        e.content = filterFunc(editor, e.content, e.internal);\n      });\n    };\n    const rgbRegExp = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/gi;\n    const rgbToHex = value => Tools.trim(value).replace(rgbRegExp, rgbaToHexString).toLowerCase();\n    const removeWebKitStyles = (editor, content, internal) => {\n      const webKitStylesOption = getPasteWebkitStyles(editor);\n      if (internal || webKitStylesOption === 'all' || !shouldPasteRemoveWebKitStyles(editor)) {\n        return content;\n      }\n      const webKitStyles = webKitStylesOption ? webKitStylesOption.split(/[, ]/) : [];\n      if (webKitStyles && webKitStylesOption !== 'none') {\n        const dom = editor.dom, node = editor.selection.getNode();\n        content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, (all, before, value, after) => {\n          const inputStyles = dom.parseStyle(dom.decode(value));\n          const outputStyles = {};\n          for (let i = 0; i < webKitStyles.length; i++) {\n            const inputValue = inputStyles[webKitStyles[i]];\n            let compareInput = inputValue;\n            let currentValue = dom.getStyle(node, webKitStyles[i], true);\n            if (/color/.test(webKitStyles[i])) {\n              compareInput = rgbToHex(compareInput);\n              currentValue = rgbToHex(currentValue);\n            }\n            if (currentValue !== compareInput) {\n              outputStyles[webKitStyles[i]] = inputValue;\n            }\n          }\n          const outputStyle = dom.serializeStyle(outputStyles, 'span');\n          if (outputStyle) {\n            return before + ' style=\"' + outputStyle + '\"' + after;\n          }\n          return before + after;\n        });\n      } else {\n        content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, '$1$3');\n      }\n      content = content.replace(/(<[^>]+) data-mce-style=\"([^\"]+)\"([^>]*>)/gi, (all, before, value, after) => {\n        return before + ' style=\"' + value + '\"' + after;\n      });\n      return content;\n    };\n    const setup$8 = editor => {\n      if (Env.browser.isChromium() || Env.browser.isSafari()) {\n        addPreProcessFilter(editor, removeWebKitStyles);\n      }\n    };\n\n    const setup$7 = editor => {\n      const draggingInternallyState = Cell(false);\n      const pasteFormat = Cell(isPasteAsTextEnabled(editor) ? 'text' : 'html');\n      const pasteBin = PasteBin(editor);\n      setup$8(editor);\n      register$1(editor, pasteFormat);\n      setup$9(editor);\n      editor.on('PreInit', () => {\n        register(editor);\n        setup$a(editor, draggingInternallyState);\n        registerEventsAndFilters(editor, pasteBin, pasteFormat);\n      });\n    };\n\n    const preventSummaryToggle = editor => {\n      editor.on('click', e => {\n        if (editor.dom.getParent(e.target, 'details')) {\n          e.preventDefault();\n        }\n      });\n    };\n    const filterDetails = editor => {\n      editor.parser.addNodeFilter('details', elms => {\n        each$e(elms, details => {\n          details.attr('data-mce-open', details.attr('open'));\n          details.attr('open', 'open');\n        });\n      });\n      editor.serializer.addNodeFilter('details', elms => {\n        each$e(elms, details => {\n          const open = details.attr('data-mce-open');\n          details.attr('open', isString(open) ? open : null);\n          details.attr('data-mce-open', null);\n        });\n      });\n    };\n    const setup$6 = editor => {\n      preventSummaryToggle(editor);\n      filterDetails(editor);\n    };\n\n    const isBr = isBr$6;\n    const isText = isText$a;\n    const isContentEditableFalse$2 = elm => isContentEditableFalse$a(elm.dom);\n    const isContentEditableTrue = elm => isContentEditableTrue$3(elm.dom);\n    const isRoot = rootNode => elm => eq(SugarElement.fromDom(rootNode), elm);\n    const getClosestScope = (node, rootNode) => closest$4(SugarElement.fromDom(node), elm => isContentEditableTrue(elm) || isBlock$2(elm), isRoot(rootNode)).getOr(SugarElement.fromDom(rootNode)).dom;\n    const getClosestCef = (node, rootNode) => closest$4(SugarElement.fromDom(node), isContentEditableFalse$2, isRoot(rootNode));\n    const findEdgeCaretCandidate = (startNode, scope, forward) => {\n      const walker = new DomTreeWalker(startNode, scope);\n      const next = forward ? walker.next.bind(walker) : walker.prev.bind(walker);\n      let result = startNode;\n      for (let current = forward ? startNode : next(); current && !isBr(current); current = next()) {\n        if (isCaretCandidate$3(current)) {\n          result = current;\n        }\n      }\n      return result;\n    };\n    const findClosestBlockRange = (startRng, rootNode) => {\n      const startPos = CaretPosition.fromRangeStart(startRng);\n      const clickNode = startPos.getNode();\n      const scope = getClosestScope(clickNode, rootNode);\n      const startNode = findEdgeCaretCandidate(clickNode, scope, false);\n      const endNode = findEdgeCaretCandidate(clickNode, scope, true);\n      const rng = document.createRange();\n      getClosestCef(startNode, scope).fold(() => {\n        if (isText(startNode)) {\n          rng.setStart(startNode, 0);\n        } else {\n          rng.setStartBefore(startNode);\n        }\n      }, cef => rng.setStartBefore(cef.dom));\n      getClosestCef(endNode, scope).fold(() => {\n        if (isText(endNode)) {\n          rng.setEnd(endNode, endNode.data.length);\n        } else {\n          rng.setEndAfter(endNode);\n        }\n      }, cef => rng.setEndAfter(cef.dom));\n      return rng;\n    };\n    const onTripleClickSelect = editor => {\n      const rng = findClosestBlockRange(editor.selection.getRng(), editor.getBody());\n      editor.selection.setRng(normalize(rng));\n    };\n    const setup$5 = editor => {\n      editor.on('mousedown', e => {\n        if (e.detail >= 3) {\n          e.preventDefault();\n          onTripleClickSelect(editor);\n        }\n      });\n    };\n\n    var FakeCaretPosition;\n    (function (FakeCaretPosition) {\n      FakeCaretPosition['Before'] = 'before';\n      FakeCaretPosition['After'] = 'after';\n    }(FakeCaretPosition || (FakeCaretPosition = {})));\n    const distanceToRectLeft = (clientRect, clientX) => Math.abs(clientRect.left - clientX);\n    const distanceToRectRight = (clientRect, clientX) => Math.abs(clientRect.right - clientX);\n    const isInsideY = (clientY, clientRect) => clientY >= clientRect.top && clientY <= clientRect.bottom;\n    const collidesY = (r1, r2) => r1.top < r2.bottom && r1.bottom > r2.top;\n    const isOverlapping = (r1, r2) => {\n      const overlap = overlapY(r1, r2) / Math.min(r1.height, r2.height);\n      return collidesY(r1, r2) && overlap > 0.5;\n    };\n    const splitRectsPerAxis = (rects, y) => {\n      const intersectingRects = filter$5(rects, rect => isInsideY(y, rect));\n      return boundingClientRectFromRects(intersectingRects).fold(() => [\n        [],\n        rects\n      ], boundingRect => {\n        const {\n          pass: horizontal,\n          fail: vertical\n        } = partition$2(rects, rect => isOverlapping(rect, boundingRect));\n        return [\n          horizontal,\n          vertical\n        ];\n      });\n    };\n    const clientInfo = (rect, clientX) => {\n      return {\n        node: rect.node,\n        position: distanceToRectLeft(rect, clientX) < distanceToRectRight(rect, clientX) ? FakeCaretPosition.Before : FakeCaretPosition.After\n      };\n    };\n    const horizontalDistance = (rect, x, _y) => x > rect.left && x < rect.right ? 0 : Math.min(Math.abs(rect.left - x), Math.abs(rect.right - x));\n    const closestChildCaretCandidateNodeRect = (children, clientX, clientY) => {\n      const caretCandidateRect = rect => {\n        if (isCaretCandidate$3(rect.node)) {\n          return Optional.some(rect);\n        } else if (isElement$6(rect.node)) {\n          return closestChildCaretCandidateNodeRect(from(rect.node.childNodes), clientX, clientY);\n        } else {\n          return Optional.none();\n        }\n      };\n      const getClosestTextNode = (rects, distance) => {\n        if (rects.length >= 2) {\n          const r1 = caretCandidateRect(rects[0]).getOr(rects[0]);\n          const r2 = caretCandidateRect(rects[1]).getOr(rects[1]);\n          const deltaDistance = Math.abs(distance(r1, clientX, clientY) - distance(r2, clientX, clientY));\n          if (deltaDistance < 2) {\n            if (isText$a(r1.node)) {\n              return Optional.some(r1);\n            } else if (isText$a(r2.node)) {\n              return Optional.some(r2);\n            }\n          }\n        }\n        return Optional.none();\n      };\n      const findClosestCaretCandidateNodeRect = (rects, distance) => {\n        const sortedRects = sort(rects, (r1, r2) => distance(r1, clientX, clientY) - distance(r2, clientX, clientY));\n        return getClosestTextNode(sortedRects, distance).orThunk(() => findMap(sortedRects, caretCandidateRect));\n      };\n      const [horizontalRects, verticalRects] = splitRectsPerAxis(getClientRects(children), clientY);\n      const {\n        pass: above,\n        fail: below\n      } = partition$2(verticalRects, rect => rect.top < clientY);\n      return findClosestCaretCandidateNodeRect(horizontalRects, horizontalDistance).orThunk(() => findClosestCaretCandidateNodeRect(below, distanceToRectEdgeFromXY)).orThunk(() => findClosestCaretCandidateNodeRect(above, distanceToRectEdgeFromXY));\n    };\n    const traverseUp = (rootElm, scope, clientX, clientY) => {\n      const helper = (scope, prevScope) => {\n        const isDragGhostContainer = node => isElement$6(node) && node.classList.contains('mce-drag-container');\n        const childNodesWithoutGhost = filter$5(scope.dom.childNodes, not(isDragGhostContainer));\n        return prevScope.fold(() => closestChildCaretCandidateNodeRect(childNodesWithoutGhost, clientX, clientY), prevScope => {\n          const uncheckedChildren = filter$5(childNodesWithoutGhost, node => node !== prevScope.dom);\n          return closestChildCaretCandidateNodeRect(uncheckedChildren, clientX, clientY);\n        }).orThunk(() => {\n          const parent = eq(scope, rootElm) ? Optional.none() : parentElement(scope);\n          return parent.bind(newScope => helper(newScope, Optional.some(scope)));\n        });\n      };\n      return helper(scope, Optional.none());\n    };\n    const closestCaretCandidateNodeRect = (root, clientX, clientY) => {\n      const rootElm = SugarElement.fromDom(root);\n      const ownerDoc = documentOrOwner(rootElm);\n      const elementAtPoint = SugarElement.fromPoint(ownerDoc, clientX, clientY).filter(elm => contains(rootElm, elm));\n      const element = elementAtPoint.getOr(rootElm);\n      return traverseUp(rootElm, element, clientX, clientY);\n    };\n    const closestFakeCaretCandidate = (root, clientX, clientY) => closestCaretCandidateNodeRect(root, clientX, clientY).filter(rect => isFakeCaretTarget(rect.node)).map(rect => clientInfo(rect, clientX));\n\n    const getAbsolutePosition = elm => {\n      var _a, _b;\n      const clientRect = elm.getBoundingClientRect();\n      const doc = elm.ownerDocument;\n      const docElem = doc.documentElement;\n      const win = doc.defaultView;\n      return {\n        top: clientRect.top + ((_a = win === null || win === void 0 ? void 0 : win.scrollY) !== null && _a !== void 0 ? _a : 0) - docElem.clientTop,\n        left: clientRect.left + ((_b = win === null || win === void 0 ? void 0 : win.scrollX) !== null && _b !== void 0 ? _b : 0) - docElem.clientLeft\n      };\n    };\n    const getBodyPosition = editor => editor.inline ? getAbsolutePosition(editor.getBody()) : {\n      left: 0,\n      top: 0\n    };\n    const getScrollPosition = editor => {\n      const body = editor.getBody();\n      return editor.inline ? {\n        left: body.scrollLeft,\n        top: body.scrollTop\n      } : {\n        left: 0,\n        top: 0\n      };\n    };\n    const getBodyScroll = editor => {\n      const body = editor.getBody(), docElm = editor.getDoc().documentElement;\n      const inlineScroll = {\n        left: body.scrollLeft,\n        top: body.scrollTop\n      };\n      const iframeScroll = {\n        left: body.scrollLeft || docElm.scrollLeft,\n        top: body.scrollTop || docElm.scrollTop\n      };\n      return editor.inline ? inlineScroll : iframeScroll;\n    };\n    const getMousePosition = (editor, event) => {\n      if (event.target.ownerDocument !== editor.getDoc()) {\n        const iframePosition = getAbsolutePosition(editor.getContentAreaContainer());\n        const scrollPosition = getBodyScroll(editor);\n        return {\n          left: event.pageX - iframePosition.left + scrollPosition.left,\n          top: event.pageY - iframePosition.top + scrollPosition.top\n        };\n      }\n      return {\n        left: event.pageX,\n        top: event.pageY\n      };\n    };\n    const calculatePosition = (bodyPosition, scrollPosition, mousePosition) => ({\n      pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,\n      pageY: mousePosition.top - bodyPosition.top + scrollPosition.top\n    });\n    const calc = (editor, event) => calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));\n\n    const scrollPixelsPerInterval = 32;\n    const scrollIntervalValue = 100;\n    const mouseRangeToTriggerScrollInsideEditor = 8;\n    const mouseRangeToTriggerScrollOutsideEditor = 16;\n    const isContentEditableFalse$1 = isContentEditableFalse$a;\n    const isContentEditable = or(isContentEditableFalse$1, isContentEditableTrue$3);\n    const isDraggable = (rootElm, elm) => isContentEditableFalse$1(elm) && elm !== rootElm;\n    const isValidDropTarget = (editor, targetElement, dragElement) => {\n      if (isNullable(targetElement)) {\n        return false;\n      } else if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {\n        return false;\n      } else {\n        return !isContentEditableFalse$1(targetElement);\n      }\n    };\n    const cloneElement = elm => {\n      const cloneElm = elm.cloneNode(true);\n      cloneElm.removeAttribute('data-mce-selected');\n      return cloneElm;\n    };\n    const createGhost = (editor, elm, width, height) => {\n      const dom = editor.dom;\n      const clonedElm = elm.cloneNode(true);\n      dom.setStyles(clonedElm, {\n        width,\n        height\n      });\n      dom.setAttrib(clonedElm, 'data-mce-selected', null);\n      const ghostElm = dom.create('div', {\n        'class': 'mce-drag-container',\n        'data-mce-bogus': 'all',\n        'unselectable': 'on',\n        'contenteditable': 'false'\n      });\n      dom.setStyles(ghostElm, {\n        position: 'absolute',\n        opacity: 0.5,\n        overflow: 'hidden',\n        border: 0,\n        padding: 0,\n        margin: 0,\n        width,\n        height\n      });\n      dom.setStyles(clonedElm, {\n        margin: 0,\n        boxSizing: 'border-box'\n      });\n      ghostElm.appendChild(clonedElm);\n      return ghostElm;\n    };\n    const appendGhostToBody = (ghostElm, bodyElm) => {\n      if (ghostElm.parentNode !== bodyElm) {\n        bodyElm.appendChild(ghostElm);\n      }\n    };\n    const scrollEditor = (direction, amount) => win => () => {\n      const current = direction === 'left' ? win.scrollX : win.scrollY;\n      win.scroll({\n        [direction]: current + amount,\n        behavior: 'smooth'\n      });\n    };\n    const scrollLeft = scrollEditor('left', -scrollPixelsPerInterval);\n    const scrollRight = scrollEditor('left', scrollPixelsPerInterval);\n    const scrollUp = scrollEditor('top', -scrollPixelsPerInterval);\n    const scrollDown = scrollEditor('top', scrollPixelsPerInterval);\n    const moveGhost = (ghostElm, position, width, height, maxX, maxY, mouseY, mouseX, contentAreaContainer, win, state, mouseEventOriginatedFromWithinTheEditor) => {\n      let overflowX = 0, overflowY = 0;\n      ghostElm.style.left = position.pageX + 'px';\n      ghostElm.style.top = position.pageY + 'px';\n      if (position.pageX + width > maxX) {\n        overflowX = position.pageX + width - maxX;\n      }\n      if (position.pageY + height > maxY) {\n        overflowY = position.pageY + height - maxY;\n      }\n      ghostElm.style.width = width - overflowX + 'px';\n      ghostElm.style.height = height - overflowY + 'px';\n      const clientHeight = contentAreaContainer.clientHeight;\n      const clientWidth = contentAreaContainer.clientWidth;\n      const outerMouseY = mouseY + contentAreaContainer.getBoundingClientRect().top;\n      const outerMouseX = mouseX + contentAreaContainer.getBoundingClientRect().left;\n      state.on(state => {\n        state.intervalId.clear();\n        if (state.dragging && mouseEventOriginatedFromWithinTheEditor) {\n          if (mouseY + mouseRangeToTriggerScrollInsideEditor >= clientHeight) {\n            state.intervalId.set(scrollDown(win));\n          } else if (mouseY - mouseRangeToTriggerScrollInsideEditor <= 0) {\n            state.intervalId.set(scrollUp(win));\n          } else if (mouseX + mouseRangeToTriggerScrollInsideEditor >= clientWidth) {\n            state.intervalId.set(scrollRight(win));\n          } else if (mouseX - mouseRangeToTriggerScrollInsideEditor <= 0) {\n            state.intervalId.set(scrollLeft(win));\n          } else if (outerMouseY + mouseRangeToTriggerScrollOutsideEditor >= window.innerHeight) {\n            state.intervalId.set(scrollDown(window));\n          } else if (outerMouseY - mouseRangeToTriggerScrollOutsideEditor <= 0) {\n            state.intervalId.set(scrollUp(window));\n          } else if (outerMouseX + mouseRangeToTriggerScrollOutsideEditor >= window.innerWidth) {\n            state.intervalId.set(scrollRight(window));\n          } else if (outerMouseX - mouseRangeToTriggerScrollOutsideEditor <= 0) {\n            state.intervalId.set(scrollLeft(window));\n          }\n        }\n      });\n    };\n    const removeElement = elm => {\n      if (elm && elm.parentNode) {\n        elm.parentNode.removeChild(elm);\n      }\n    };\n    const isLeftMouseButtonPressed = e => e.button === 0;\n    const applyRelPos = (state, position) => ({\n      pageX: position.pageX - state.relX,\n      pageY: position.pageY + 5\n    });\n    const start = (state, editor) => e => {\n      if (isLeftMouseButtonPressed(e)) {\n        const ceElm = find$2(editor.dom.getParents(e.target), isContentEditable).getOr(null);\n        if (isNonNullable(ceElm) && isDraggable(editor.getBody(), ceElm)) {\n          const elmPos = editor.dom.getPos(ceElm);\n          const bodyElm = editor.getBody();\n          const docElm = editor.getDoc().documentElement;\n          state.set({\n            element: ceElm,\n            dragging: false,\n            screenX: e.screenX,\n            screenY: e.screenY,\n            maxX: (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2,\n            maxY: (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2,\n            relX: e.pageX - elmPos.x,\n            relY: e.pageY - elmPos.y,\n            width: ceElm.offsetWidth,\n            height: ceElm.offsetHeight,\n            ghost: createGhost(editor, ceElm, ceElm.offsetWidth, ceElm.offsetHeight),\n            intervalId: repeatable(scrollIntervalValue)\n          });\n        }\n      }\n    };\n    const move = (state, editor) => {\n      const throttledPlaceCaretAt = first$1((clientX, clientY) => {\n        editor._selectionOverrides.hideFakeCaret();\n        closestFakeCaretCandidate(editor.getBody(), clientX, clientY).fold(() => editor.selection.placeCaretAt(clientX, clientY), caretInfo => {\n          const range = editor._selectionOverrides.showCaret(1, caretInfo.node, caretInfo.position === FakeCaretPosition.Before, false);\n          if (range) {\n            editor.selection.setRng(range);\n          } else {\n            editor.selection.placeCaretAt(clientX, clientY);\n          }\n        });\n      }, 0);\n      editor.on('remove', throttledPlaceCaretAt.cancel);\n      const state_ = state;\n      return e => state.on(state => {\n        const movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));\n        if (!state.dragging && movement > 10) {\n          const args = editor.dispatch('dragstart', { target: state.element });\n          if (args.isDefaultPrevented()) {\n            return;\n          }\n          state.dragging = true;\n          editor.focus();\n        }\n        if (state.dragging) {\n          const mouseEventOriginatedFromWithinTheEditor = e.currentTarget === editor.getDoc().documentElement;\n          const targetPos = applyRelPos(state, calc(editor, e));\n          appendGhostToBody(state.ghost, editor.getBody());\n          moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY, e.clientY, e.clientX, editor.getContentAreaContainer(), editor.getWin(), state_, mouseEventOriginatedFromWithinTheEditor);\n          throttledPlaceCaretAt.throttle(e.clientX, e.clientY);\n        }\n      });\n    };\n    const getRawTarget = selection => {\n      const sel = selection.getSel();\n      if (isNonNullable(sel)) {\n        const rng = sel.getRangeAt(0);\n        const startContainer = rng.startContainer;\n        return isText$a(startContainer) ? startContainer.parentNode : startContainer;\n      } else {\n        return null;\n      }\n    };\n    const drop = (state, editor) => e => {\n      state.on(state => {\n        state.intervalId.clear();\n        if (state.dragging) {\n          if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {\n            const targetClone = cloneElement(state.element);\n            const args = editor.dispatch('drop', {\n              clientX: e.clientX,\n              clientY: e.clientY\n            });\n            if (!args.isDefaultPrevented()) {\n              editor.undoManager.transact(() => {\n                removeElement(state.element);\n                editor.insertContent(editor.dom.getOuterHTML(targetClone));\n                editor._selectionOverrides.hideFakeCaret();\n              });\n            }\n          }\n          editor.dispatch('dragend');\n        }\n      });\n      removeDragState(state);\n    };\n    const stop = (state, editor) => () => {\n      state.on(state => {\n        state.intervalId.clear();\n        if (state.dragging) {\n          editor.dispatch('dragend');\n        }\n      });\n      removeDragState(state);\n    };\n    const removeDragState = state => {\n      state.on(state => {\n        state.intervalId.clear();\n        removeElement(state.ghost);\n      });\n      state.clear();\n    };\n    const bindFakeDragEvents = editor => {\n      const state = value$2();\n      const pageDom = DOMUtils.DOM;\n      const rootDocument = document;\n      const dragStartHandler = start(state, editor);\n      const dragHandler = move(state, editor);\n      const dropHandler = drop(state, editor);\n      const dragEndHandler = stop(state, editor);\n      editor.on('mousedown', dragStartHandler);\n      editor.on('mousemove', dragHandler);\n      editor.on('mouseup', dropHandler);\n      pageDom.bind(rootDocument, 'mousemove', dragHandler);\n      pageDom.bind(rootDocument, 'mouseup', dragEndHandler);\n      editor.on('remove', () => {\n        pageDom.unbind(rootDocument, 'mousemove', dragHandler);\n        pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);\n      });\n      editor.on('keydown', e => {\n        if (e.keyCode === VK.ESC) {\n          dragEndHandler();\n        }\n      });\n    };\n    const blockUnsupportedFileDrop = editor => {\n      const preventFileDrop = e => {\n        if (!e.isDefaultPrevented()) {\n          const dataTransfer = e.dataTransfer;\n          if (dataTransfer && (contains$2(dataTransfer.types, 'Files') || dataTransfer.files.length > 0)) {\n            e.preventDefault();\n            if (e.type === 'drop') {\n              displayError(editor, 'Dropped file type is not supported');\n            }\n          }\n        }\n      };\n      const preventFileDropIfUIElement = e => {\n        if (isUIElement(editor, e.target)) {\n          preventFileDrop(e);\n        }\n      };\n      const setup = () => {\n        const pageDom = DOMUtils.DOM;\n        const dom = editor.dom;\n        const doc = document;\n        const editorRoot = editor.inline ? editor.getBody() : editor.getDoc();\n        const eventNames = [\n          'drop',\n          'dragover'\n        ];\n        each$e(eventNames, name => {\n          pageDom.bind(doc, name, preventFileDropIfUIElement);\n          dom.bind(editorRoot, name, preventFileDrop);\n        });\n        editor.on('remove', () => {\n          each$e(eventNames, name => {\n            pageDom.unbind(doc, name, preventFileDropIfUIElement);\n            dom.unbind(editorRoot, name, preventFileDrop);\n          });\n        });\n      };\n      editor.on('init', () => {\n        Delay.setEditorTimeout(editor, setup, 0);\n      });\n    };\n    const init$2 = editor => {\n      bindFakeDragEvents(editor);\n      if (shouldBlockUnsupportedDrop(editor)) {\n        blockUnsupportedFileDrop(editor);\n      }\n    };\n\n    const setup$4 = editor => {\n      const renderFocusCaret = first$1(() => {\n        if (!editor.removed && editor.getBody().contains(document.activeElement)) {\n          const rng = editor.selection.getRng();\n          if (rng.collapsed) {\n            const caretRange = renderRangeCaret(editor, rng, false);\n            editor.selection.setRng(caretRange);\n          }\n        }\n      }, 0);\n      editor.on('focus', () => {\n        renderFocusCaret.throttle();\n      });\n      editor.on('blur', () => {\n        renderFocusCaret.cancel();\n      });\n    };\n\n    const setup$3 = editor => {\n      editor.on('init', () => {\n        editor.on('focusin', e => {\n          const target = e.target;\n          if (isMedia$2(target)) {\n            const ceRoot = getContentEditableRoot$1(editor.getBody(), target);\n            const node = isContentEditableFalse$a(ceRoot) ? ceRoot : target;\n            if (editor.selection.getNode() !== node) {\n              selectNode(editor, node).each(rng => editor.selection.setRng(rng));\n            }\n          }\n        });\n      });\n    };\n\n    const isContentEditableFalse = isContentEditableFalse$a;\n    const getContentEditableRoot = (editor, node) => getContentEditableRoot$1(editor.getBody(), node);\n    const SelectionOverrides = editor => {\n      const selection = editor.selection, dom = editor.dom;\n      const rootNode = editor.getBody();\n      const fakeCaret = FakeCaret(editor, rootNode, dom.isBlock, () => hasFocus(editor));\n      const realSelectionId = 'sel-' + dom.uniqueId();\n      const elementSelectionAttr = 'data-mce-selected';\n      let selectedElement;\n      const isFakeSelectionElement = node => isNonNullable(node) && dom.hasClass(node, 'mce-offscreen-selection');\n      const isFakeSelectionTargetElement = node => node !== rootNode && (isContentEditableFalse(node) || isMedia$2(node)) && dom.isChildOf(node, rootNode);\n      const setRange = range => {\n        if (range) {\n          selection.setRng(range);\n        }\n      };\n      const showCaret = (direction, node, before, scrollIntoView = true) => {\n        const e = editor.dispatch('ShowCaret', {\n          target: node,\n          direction,\n          before\n        });\n        if (e.isDefaultPrevented()) {\n          return null;\n        }\n        if (scrollIntoView) {\n          selection.scrollIntoView(node, direction === -1);\n        }\n        return fakeCaret.show(before, node);\n      };\n      const showBlockCaretContainer = blockCaretContainer => {\n        if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n          showCaretContainerBlock(blockCaretContainer);\n          selection.scrollIntoView(blockCaretContainer);\n        }\n      };\n      const registerEvents = () => {\n        editor.on('click', e => {\n          const contentEditableRoot = getContentEditableRoot(editor, e.target);\n          if (contentEditableRoot) {\n            if (isContentEditableFalse(contentEditableRoot)) {\n              e.preventDefault();\n              editor.focus();\n            }\n          }\n        });\n        editor.on('blur NewBlock', removeElementSelection);\n        editor.on('ResizeWindow FullscreenStateChanged', fakeCaret.reposition);\n        editor.on('tap', e => {\n          const targetElm = e.target;\n          const contentEditableRoot = getContentEditableRoot(editor, targetElm);\n          if (isContentEditableFalse(contentEditableRoot)) {\n            e.preventDefault();\n            selectNode(editor, contentEditableRoot).each(setElementSelection);\n          } else if (isFakeSelectionTargetElement(targetElm)) {\n            selectNode(editor, targetElm).each(setElementSelection);\n          }\n        }, true);\n        editor.on('mousedown', e => {\n          const targetElm = e.target;\n          if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !dom.isChildOf(targetElm, rootNode)) {\n            return;\n          }\n          if (!isXYInContentArea(editor, e.clientX, e.clientY)) {\n            return;\n          }\n          removeElementSelection();\n          hideFakeCaret();\n          const closestContentEditable = getContentEditableRoot(editor, targetElm);\n          if (isContentEditableFalse(closestContentEditable)) {\n            e.preventDefault();\n            selectNode(editor, closestContentEditable).each(setElementSelection);\n          } else {\n            closestFakeCaretCandidate(rootNode, e.clientX, e.clientY).each(caretInfo => {\n              e.preventDefault();\n              const range = showCaret(1, caretInfo.node, caretInfo.position === FakeCaretPosition.Before, false);\n              setRange(range);\n              if (isElement$6(closestContentEditable)) {\n                closestContentEditable.focus();\n              } else {\n                editor.getBody().focus();\n              }\n            });\n          }\n        });\n        editor.on('keypress', e => {\n          if (VK.modifierPressed(e)) {\n            return;\n          }\n          if (isContentEditableFalse(selection.getNode())) {\n            e.preventDefault();\n          }\n        });\n        editor.on('GetSelectionRange', e => {\n          let rng = e.range;\n          if (selectedElement) {\n            if (!selectedElement.parentNode) {\n              selectedElement = null;\n              return;\n            }\n            rng = rng.cloneRange();\n            rng.selectNode(selectedElement);\n            e.range = rng;\n          }\n        });\n        editor.on('SetSelectionRange', e => {\n          e.range = normalizeVoidElementSelection(e.range);\n          const rng = setElementSelection(e.range, e.forward);\n          if (rng) {\n            e.range = rng;\n          }\n        });\n        const isPasteBin = node => isElement$6(node) && node.id === 'mcepastebin';\n        editor.on('AfterSetSelectionRange', e => {\n          const rng = e.range;\n          const parent = rng.startContainer.parentElement;\n          if (!isRangeInCaretContainer(rng) && !isPasteBin(parent)) {\n            hideFakeCaret();\n          }\n          if (!isFakeSelectionElement(parent)) {\n            removeElementSelection();\n          }\n        });\n        init$2(editor);\n        setup$4(editor);\n        setup$3(editor);\n      };\n      const isWithinCaretContainer = node => isCaretContainer$2(node) || startsWithCaretContainer$1(node) || endsWithCaretContainer$1(node);\n      const isRangeInCaretContainer = rng => isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);\n      const normalizeVoidElementSelection = rng => {\n        const voidElements = editor.schema.getVoidElements();\n        const newRng = dom.createRng();\n        const startContainer = rng.startContainer;\n        const startOffset = rng.startOffset;\n        const endContainer = rng.endContainer;\n        const endOffset = rng.endOffset;\n        if (has$2(voidElements, startContainer.nodeName.toLowerCase())) {\n          if (startOffset === 0) {\n            newRng.setStartBefore(startContainer);\n          } else {\n            newRng.setStartAfter(startContainer);\n          }\n        } else {\n          newRng.setStart(startContainer, startOffset);\n        }\n        if (has$2(voidElements, endContainer.nodeName.toLowerCase())) {\n          if (endOffset === 0) {\n            newRng.setEndBefore(endContainer);\n          } else {\n            newRng.setEndAfter(endContainer);\n          }\n        } else {\n          newRng.setEnd(endContainer, endOffset);\n        }\n        return newRng;\n      };\n      const setupOffscreenSelection = (node, targetClone) => {\n        const body = SugarElement.fromDom(editor.getBody());\n        const doc = editor.getDoc();\n        const realSelectionContainer = descendant(body, '#' + realSelectionId).getOrThunk(() => {\n          const newContainer = SugarElement.fromHtml('<div data-mce-bogus=\"all\" class=\"mce-offscreen-selection\"></div>', doc);\n          set$2(newContainer, 'id', realSelectionId);\n          append$1(body, newContainer);\n          return newContainer;\n        });\n        const newRange = dom.createRng();\n        empty(realSelectionContainer);\n        append(realSelectionContainer, [\n          SugarElement.fromText(nbsp, doc),\n          SugarElement.fromDom(targetClone),\n          SugarElement.fromText(nbsp, doc)\n        ]);\n        newRange.setStart(realSelectionContainer.dom.firstChild, 1);\n        newRange.setEnd(realSelectionContainer.dom.lastChild, 0);\n        setAll(realSelectionContainer, { top: dom.getPos(node, editor.getBody()).y + 'px' });\n        focus$1(realSelectionContainer);\n        const sel = selection.getSel();\n        if (sel) {\n          sel.removeAllRanges();\n          sel.addRange(newRange);\n        }\n        return newRange;\n      };\n      const selectElement = elm => {\n        const targetClone = elm.cloneNode(true);\n        const e = editor.dispatch('ObjectSelected', {\n          target: elm,\n          targetClone\n        });\n        if (e.isDefaultPrevented()) {\n          return null;\n        }\n        const range = setupOffscreenSelection(elm, e.targetClone);\n        const nodeElm = SugarElement.fromDom(elm);\n        each$e(descendants(SugarElement.fromDom(editor.getBody()), `*[${ elementSelectionAttr }]`), elm => {\n          if (!eq(nodeElm, elm)) {\n            remove$b(elm, elementSelectionAttr);\n          }\n        });\n        if (!dom.getAttrib(elm, elementSelectionAttr)) {\n          elm.setAttribute(elementSelectionAttr, '1');\n        }\n        selectedElement = elm;\n        hideFakeCaret();\n        return range;\n      };\n      const setElementSelection = (range, forward) => {\n        if (!range) {\n          return null;\n        }\n        if (range.collapsed) {\n          if (!isRangeInCaretContainer(range)) {\n            const dir = forward ? 1 : -1;\n            const caretPosition = getNormalizedRangeEndPoint(dir, rootNode, range);\n            const beforeNode = caretPosition.getNode(!forward);\n            if (isNonNullable(beforeNode)) {\n              if (isFakeCaretTarget(beforeNode)) {\n                return showCaret(dir, beforeNode, forward ? !caretPosition.isAtEnd() : false, false);\n              }\n              if (isCaretContainerInline(beforeNode) && isContentEditableFalse$a(beforeNode.nextSibling)) {\n                const rng = dom.createRng();\n                rng.setStart(beforeNode, 0);\n                rng.setEnd(beforeNode, 0);\n                return rng;\n              }\n            }\n            const afterNode = caretPosition.getNode(forward);\n            if (isNonNullable(afterNode)) {\n              if (isFakeCaretTarget(afterNode)) {\n                return showCaret(dir, afterNode, forward ? false : !caretPosition.isAtEnd(), false);\n              }\n              if (isCaretContainerInline(afterNode) && isContentEditableFalse$a(afterNode.previousSibling)) {\n                const rng = dom.createRng();\n                rng.setStart(afterNode, 1);\n                rng.setEnd(afterNode, 1);\n                return rng;\n              }\n            }\n          }\n          return null;\n        }\n        let startContainer = range.startContainer;\n        let startOffset = range.startOffset;\n        const endOffset = range.endOffset;\n        if (isText$a(startContainer) && startOffset === 0 && isContentEditableFalse(startContainer.parentNode)) {\n          startContainer = startContainer.parentNode;\n          startOffset = dom.nodeIndex(startContainer);\n          startContainer = startContainer.parentNode;\n        }\n        if (!isElement$6(startContainer)) {\n          return null;\n        }\n        if (endOffset === startOffset + 1 && startContainer === range.endContainer) {\n          const node = startContainer.childNodes[startOffset];\n          if (isFakeSelectionTargetElement(node)) {\n            return selectElement(node);\n          }\n        }\n        return null;\n      };\n      const removeElementSelection = () => {\n        if (selectedElement) {\n          selectedElement.removeAttribute(elementSelectionAttr);\n        }\n        descendant(SugarElement.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$6);\n        selectedElement = null;\n      };\n      const destroy = () => {\n        fakeCaret.destroy();\n        selectedElement = null;\n      };\n      const hideFakeCaret = () => {\n        fakeCaret.hide();\n      };\n      if (!isRtc(editor)) {\n        registerEvents();\n      }\n      return {\n        showCaret,\n        showBlockCaretContainer,\n        hideFakeCaret,\n        destroy\n      };\n    };\n\n    const getNormalizedTextOffset = (container, offset) => {\n      let normalizedOffset = offset;\n      for (let node = container.previousSibling; isText$a(node); node = node.previousSibling) {\n        normalizedOffset += node.data.length;\n      }\n      return normalizedOffset;\n    };\n    const generatePath = (dom, root, node, offset, normalized) => {\n      if (isText$a(node) && (offset < 0 || offset > node.data.length)) {\n        return [];\n      }\n      const p = normalized && isText$a(node) ? [getNormalizedTextOffset(node, offset)] : [offset];\n      let current = node;\n      while (current !== root && current.parentNode) {\n        p.push(dom.nodeIndex(current, normalized));\n        current = current.parentNode;\n      }\n      return current === root ? p.reverse() : [];\n    };\n    const generatePathRange = (dom, root, startNode, startOffset, endNode, endOffset, normalized = false) => {\n      const start = generatePath(dom, root, startNode, startOffset, normalized);\n      const end = generatePath(dom, root, endNode, endOffset, normalized);\n      return {\n        start,\n        end\n      };\n    };\n    const resolvePath = (root, path) => {\n      const nodePath = path.slice();\n      const offset = nodePath.pop();\n      if (!isNumber(offset)) {\n        return Optional.none();\n      } else {\n        const resolvedNode = foldl(nodePath, (optNode, index) => optNode.bind(node => Optional.from(node.childNodes[index])), Optional.some(root));\n        return resolvedNode.bind(node => {\n          if (isText$a(node) && (offset < 0 || offset > node.data.length)) {\n            return Optional.none();\n          } else {\n            return Optional.some({\n              node,\n              offset\n            });\n          }\n        });\n      }\n    };\n    const resolvePathRange = (root, range) => resolvePath(root, range.start).bind(({\n      node: startNode,\n      offset: startOffset\n    }) => resolvePath(root, range.end).map(({\n      node: endNode,\n      offset: endOffset\n    }) => {\n      const rng = document.createRange();\n      rng.setStart(startNode, startOffset);\n      rng.setEnd(endNode, endOffset);\n      return rng;\n    }));\n    const generatePathRangeFromRange = (dom, root, range, normalized = false) => generatePathRange(dom, root, range.startContainer, range.startOffset, range.endContainer, range.endOffset, normalized);\n\n    const cleanEmptyNodes = (dom, node, isRoot) => {\n      if (node && dom.isEmpty(node) && !isRoot(node)) {\n        const parent = node.parentNode;\n        dom.remove(node);\n        cleanEmptyNodes(dom, parent, isRoot);\n      }\n    };\n    const deleteRng = (dom, rng, isRoot, clean = true) => {\n      const startParent = rng.startContainer.parentNode;\n      const endParent = rng.endContainer.parentNode;\n      rng.deleteContents();\n      if (clean && !isRoot(rng.startContainer)) {\n        if (isText$a(rng.startContainer) && rng.startContainer.data.length === 0) {\n          dom.remove(rng.startContainer);\n        }\n        if (isText$a(rng.endContainer) && rng.endContainer.data.length === 0) {\n          dom.remove(rng.endContainer);\n        }\n        cleanEmptyNodes(dom, startParent, isRoot);\n        if (startParent !== endParent) {\n          cleanEmptyNodes(dom, endParent, isRoot);\n        }\n      }\n    };\n    const getParentBlock = (editor, rng) => Optional.from(editor.dom.getParent(rng.startContainer, editor.dom.isBlock));\n    const resolveFromDynamicPatterns = (patternSet, block, beforeText) => {\n      const dynamicPatterns = patternSet.dynamicPatternsLookup({\n        text: beforeText,\n        block\n      });\n      return {\n        ...patternSet,\n        blockPatterns: getBlockPatterns(dynamicPatterns).concat(patternSet.blockPatterns),\n        inlinePatterns: getInlinePatterns(dynamicPatterns).concat(patternSet.inlinePatterns)\n      };\n    };\n    const getBeforeText = (dom, block, node, offset) => {\n      const rng = dom.createRng();\n      rng.setStart(block, 0);\n      rng.setEnd(node, offset);\n      return rng.toString();\n    };\n\n    const stripPattern = (dom, block, pattern) => {\n      const firstTextNode = textAfter(block, 0, block);\n      firstTextNode.each(spot => {\n        const node = spot.container;\n        scanRight(node, pattern.start.length, block).each(end => {\n          const rng = dom.createRng();\n          rng.setStart(node, 0);\n          rng.setEnd(end.container, end.offset);\n          deleteRng(dom, rng, e => e === block);\n        });\n      });\n    };\n    const applyPattern$1 = (editor, match) => {\n      const dom = editor.dom;\n      const pattern = match.pattern;\n      const rng = resolvePathRange(dom.getRoot(), match.range).getOrDie('Unable to resolve path range');\n      const isBlockFormatName = (name, formatter) => {\n        const formatSet = formatter.get(name);\n        return isArray$1(formatSet) && head(formatSet).exists(format => has$2(format, 'block'));\n      };\n      getParentBlock(editor, rng).each(block => {\n        if (pattern.type === 'block-format') {\n          if (isBlockFormatName(pattern.format, editor.formatter)) {\n            editor.undoManager.transact(() => {\n              stripPattern(editor.dom, block, pattern);\n              editor.formatter.apply(pattern.format);\n            });\n          }\n        } else if (pattern.type === 'block-command') {\n          editor.undoManager.transact(() => {\n            stripPattern(editor.dom, block, pattern);\n            editor.execCommand(pattern.cmd, false, pattern.value);\n          });\n        }\n      });\n      return true;\n    };\n    const sortPatterns$1 = patterns => sort(patterns, (a, b) => b.start.length - a.start.length);\n    const findPattern$1 = (patterns, text) => {\n      const sortedPatterns = sortPatterns$1(patterns);\n      const nuText = text.replace(nbsp, ' ');\n      return find$2(sortedPatterns, pattern => text.indexOf(pattern.start) === 0 || nuText.indexOf(pattern.start) === 0);\n    };\n    const findPatterns$1 = (editor, block, patternSet, normalizedMatches) => {\n      var _a;\n      const dom = editor.dom;\n      const forcedRootBlock = getForcedRootBlock(editor);\n      if (!dom.is(block, forcedRootBlock)) {\n        return [];\n      }\n      const blockText = (_a = block.textContent) !== null && _a !== void 0 ? _a : '';\n      return findPattern$1(patternSet.blockPatterns, blockText).map(pattern => {\n        if (Tools.trim(blockText).length === pattern.start.length) {\n          return [];\n        }\n        return [{\n            pattern,\n            range: generatePathRange(dom, dom.getRoot(), block, 0, block, 0, normalizedMatches)\n          }];\n      }).getOr([]);\n    };\n    const applyMatches$1 = (editor, matches) => {\n      if (matches.length === 0) {\n        return;\n      }\n      const bookmark = editor.selection.getBookmark();\n      each$e(matches, match => applyPattern$1(editor, match));\n      editor.selection.moveToBookmark(bookmark);\n    };\n\n    const newMarker = (dom, id) => dom.create('span', {\n      'data-mce-type': 'bookmark',\n      id\n    });\n    const rangeFromMarker = (dom, marker) => {\n      const rng = dom.createRng();\n      rng.setStartAfter(marker.start);\n      rng.setEndBefore(marker.end);\n      return rng;\n    };\n    const createMarker = (dom, markerPrefix, pathRange) => {\n      const rng = resolvePathRange(dom.getRoot(), pathRange).getOrDie('Unable to resolve path range');\n      const startNode = rng.startContainer;\n      const endNode = rng.endContainer;\n      const textEnd = rng.endOffset === 0 ? endNode : endNode.splitText(rng.endOffset);\n      const textStart = rng.startOffset === 0 ? startNode : startNode.splitText(rng.startOffset);\n      const startParentNode = textStart.parentNode;\n      const endParentNode = textEnd.parentNode;\n      return {\n        prefix: markerPrefix,\n        end: endParentNode.insertBefore(newMarker(dom, markerPrefix + '-end'), textEnd),\n        start: startParentNode.insertBefore(newMarker(dom, markerPrefix + '-start'), textStart)\n      };\n    };\n    const removeMarker = (dom, marker, isRoot) => {\n      cleanEmptyNodes(dom, dom.get(marker.prefix + '-end'), isRoot);\n      cleanEmptyNodes(dom, dom.get(marker.prefix + '-start'), isRoot);\n    };\n\n    const isReplacementPattern = pattern => pattern.start.length === 0;\n    const matchesPattern = patternContent => (element, offset) => {\n      const text = element.data;\n      const searchText = text.substring(0, offset);\n      const startEndIndex = searchText.lastIndexOf(patternContent.charAt(patternContent.length - 1));\n      const startIndex = searchText.lastIndexOf(patternContent);\n      if (startIndex !== -1) {\n        return startIndex + patternContent.length;\n      } else if (startEndIndex !== -1) {\n        return startEndIndex + 1;\n      } else {\n        return -1;\n      }\n    };\n    const findPatternStartFromSpot = (dom, pattern, block, spot) => {\n      const startPattern = pattern.start;\n      const startSpot = repeatLeft(dom, spot.container, spot.offset, matchesPattern(startPattern), block);\n      return startSpot.bind(spot => {\n        var _a, _b;\n        const startPatternIndex = (_b = (_a = block.textContent) === null || _a === void 0 ? void 0 : _a.indexOf(startPattern)) !== null && _b !== void 0 ? _b : -1;\n        const isCompleteMatch = startPatternIndex !== -1 && spot.offset >= startPatternIndex + startPattern.length;\n        if (isCompleteMatch) {\n          const rng = dom.createRng();\n          rng.setStart(spot.container, spot.offset - startPattern.length);\n          rng.setEnd(spot.container, spot.offset);\n          return Optional.some(rng);\n        } else {\n          const offset = spot.offset - startPattern.length;\n          return scanLeft(spot.container, offset, block).map(nextSpot => {\n            const rng = dom.createRng();\n            rng.setStart(nextSpot.container, nextSpot.offset);\n            rng.setEnd(spot.container, spot.offset);\n            return rng;\n          }).filter(rng => rng.toString() === startPattern).orThunk(() => findPatternStartFromSpot(dom, pattern, block, point(spot.container, 0)));\n        }\n      });\n    };\n    const findPatternStart = (dom, pattern, node, offset, block, requireGap = false) => {\n      if (pattern.start.length === 0 && !requireGap) {\n        const rng = dom.createRng();\n        rng.setStart(node, offset);\n        rng.setEnd(node, offset);\n        return Optional.some(rng);\n      }\n      return textBefore(node, offset, block).bind(spot => {\n        const start = findPatternStartFromSpot(dom, pattern, block, spot);\n        return start.bind(startRange => {\n          var _a;\n          if (requireGap) {\n            if (startRange.endContainer === spot.container && startRange.endOffset === spot.offset) {\n              return Optional.none();\n            } else if (spot.offset === 0 && ((_a = startRange.endContainer.textContent) === null || _a === void 0 ? void 0 : _a.length) === startRange.endOffset) {\n              return Optional.none();\n            }\n          }\n          return Optional.some(startRange);\n        });\n      });\n    };\n    const findPattern = (editor, block, details, normalizedMatches) => {\n      const dom = editor.dom;\n      const root = dom.getRoot();\n      const pattern = details.pattern;\n      const endNode = details.position.container;\n      const endOffset = details.position.offset;\n      return scanLeft(endNode, endOffset - details.pattern.end.length, block).bind(spot => {\n        const endPathRng = generatePathRange(dom, root, spot.container, spot.offset, endNode, endOffset, normalizedMatches);\n        if (isReplacementPattern(pattern)) {\n          return Optional.some({\n            matches: [{\n                pattern,\n                startRng: endPathRng,\n                endRng: endPathRng\n              }],\n            position: spot\n          });\n        } else {\n          const resultsOpt = findPatternsRec(editor, details.remainingPatterns, spot.container, spot.offset, block, normalizedMatches);\n          const results = resultsOpt.getOr({\n            matches: [],\n            position: spot\n          });\n          const pos = results.position;\n          const start = findPatternStart(dom, pattern, pos.container, pos.offset, block, resultsOpt.isNone());\n          return start.map(startRng => {\n            const startPathRng = generatePathRangeFromRange(dom, root, startRng, normalizedMatches);\n            return {\n              matches: results.matches.concat([{\n                  pattern,\n                  startRng: startPathRng,\n                  endRng: endPathRng\n                }]),\n              position: point(startRng.startContainer, startRng.startOffset)\n            };\n          });\n        }\n      });\n    };\n    const findPatternsRec = (editor, patterns, node, offset, block, normalizedMatches) => {\n      const dom = editor.dom;\n      return textBefore(node, offset, dom.getRoot()).bind(endSpot => {\n        const text = getBeforeText(dom, block, node, offset);\n        for (let i = 0; i < patterns.length; i++) {\n          const pattern = patterns[i];\n          if (!endsWith(text, pattern.end)) {\n            continue;\n          }\n          const patternsWithoutCurrent = patterns.slice();\n          patternsWithoutCurrent.splice(i, 1);\n          const result = findPattern(editor, block, {\n            pattern,\n            remainingPatterns: patternsWithoutCurrent,\n            position: endSpot\n          }, normalizedMatches);\n          if (result.isNone() && offset > 0) {\n            return findPatternsRec(editor, patterns, node, offset - 1, block, normalizedMatches);\n          }\n          if (result.isSome()) {\n            return result;\n          }\n        }\n        return Optional.none();\n      });\n    };\n    const applyPattern = (editor, pattern, patternRange) => {\n      editor.selection.setRng(patternRange);\n      if (pattern.type === 'inline-format') {\n        each$e(pattern.format, format => {\n          editor.formatter.apply(format);\n        });\n      } else {\n        editor.execCommand(pattern.cmd, false, pattern.value);\n      }\n    };\n    const applyReplacementPattern = (editor, pattern, marker, isRoot) => {\n      const markerRange = rangeFromMarker(editor.dom, marker);\n      deleteRng(editor.dom, markerRange, isRoot);\n      applyPattern(editor, pattern, markerRange);\n    };\n    const applyPatternWithContent = (editor, pattern, startMarker, endMarker, isRoot) => {\n      const dom = editor.dom;\n      const markerEndRange = rangeFromMarker(dom, endMarker);\n      const markerStartRange = rangeFromMarker(dom, startMarker);\n      deleteRng(dom, markerStartRange, isRoot);\n      deleteRng(dom, markerEndRange, isRoot);\n      const patternMarker = {\n        prefix: startMarker.prefix,\n        start: startMarker.end,\n        end: endMarker.start\n      };\n      const patternRange = rangeFromMarker(dom, patternMarker);\n      applyPattern(editor, pattern, patternRange);\n    };\n    const addMarkers = (dom, matches) => {\n      const markerPrefix = generate$1('mce_textpattern');\n      const matchesWithEnds = foldr(matches, (acc, match) => {\n        const endMarker = createMarker(dom, markerPrefix + `_end${ acc.length }`, match.endRng);\n        return acc.concat([{\n            ...match,\n            endMarker\n          }]);\n      }, []);\n      return foldr(matchesWithEnds, (acc, match) => {\n        const idx = matchesWithEnds.length - acc.length - 1;\n        const startMarker = isReplacementPattern(match.pattern) ? match.endMarker : createMarker(dom, markerPrefix + `_start${ idx }`, match.startRng);\n        return acc.concat([{\n            ...match,\n            startMarker\n          }]);\n      }, []);\n    };\n    const sortPatterns = patterns => sort(patterns, (a, b) => b.end.length - a.end.length);\n    const getBestMatches = (matches, matchesWithSortedPatterns) => {\n      const hasSameMatches = forall(matches, match => exists(matchesWithSortedPatterns, sortedMatch => match.pattern.start === sortedMatch.pattern.start && match.pattern.end === sortedMatch.pattern.end));\n      if (matches.length === matchesWithSortedPatterns.length) {\n        if (hasSameMatches) {\n          return matches;\n        } else {\n          return matchesWithSortedPatterns;\n        }\n      }\n      return matches.length > matchesWithSortedPatterns.length ? matches : matchesWithSortedPatterns;\n    };\n    const findPatterns = (editor, block, node, offset, patternSet, normalizedMatches) => {\n      const matches = findPatternsRec(editor, patternSet.inlinePatterns, node, offset, block, normalizedMatches).fold(() => [], result => result.matches);\n      const matchesWithSortedPatterns = findPatternsRec(editor, sortPatterns(patternSet.inlinePatterns), node, offset, block, normalizedMatches).fold(() => [], result => result.matches);\n      return getBestMatches(matches, matchesWithSortedPatterns);\n    };\n    const applyMatches = (editor, matches) => {\n      if (matches.length === 0) {\n        return;\n      }\n      const dom = editor.dom;\n      const bookmark = editor.selection.getBookmark();\n      const matchesWithMarkers = addMarkers(dom, matches);\n      each$e(matchesWithMarkers, match => {\n        const block = dom.getParent(match.startMarker.start, dom.isBlock);\n        const isRoot = node => node === block;\n        if (isReplacementPattern(match.pattern)) {\n          applyReplacementPattern(editor, match.pattern, match.endMarker, isRoot);\n        } else {\n          applyPatternWithContent(editor, match.pattern, match.startMarker, match.endMarker, isRoot);\n        }\n        removeMarker(dom, match.endMarker, isRoot);\n        removeMarker(dom, match.startMarker, isRoot);\n      });\n      editor.selection.moveToBookmark(bookmark);\n    };\n\n    const handleEnter = (editor, patternSet) => {\n      const rng = editor.selection.getRng();\n      return getParentBlock(editor, rng).map(block => {\n        var _a;\n        const offset = Math.max(0, rng.startOffset);\n        const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, (_a = block.textContent) !== null && _a !== void 0 ? _a : '');\n        const inlineMatches = findPatterns(editor, block, rng.startContainer, offset, dynamicPatternSet, true);\n        const blockMatches = findPatterns$1(editor, block, dynamicPatternSet, true);\n        if (blockMatches.length > 0 || inlineMatches.length > 0) {\n          editor.undoManager.add();\n          editor.undoManager.extra(() => {\n            editor.execCommand('mceInsertNewLine');\n          }, () => {\n            editor.insertContent(zeroWidth);\n            applyMatches(editor, inlineMatches);\n            applyMatches$1(editor, blockMatches);\n            const range = editor.selection.getRng();\n            const spot = textBefore(range.startContainer, range.startOffset, editor.dom.getRoot());\n            editor.execCommand('mceInsertNewLine');\n            spot.each(s => {\n              const node = s.container;\n              if (node.data.charAt(s.offset - 1) === zeroWidth) {\n                node.deleteData(s.offset - 1, 1);\n                cleanEmptyNodes(editor.dom, node.parentNode, e => e === editor.dom.getRoot());\n              }\n            });\n          });\n          return true;\n        }\n        return false;\n      }).getOr(false);\n    };\n    const handleInlineKey = (editor, patternSet) => {\n      const rng = editor.selection.getRng();\n      getParentBlock(editor, rng).map(block => {\n        const offset = Math.max(0, rng.startOffset - 1);\n        const beforeText = getBeforeText(editor.dom, block, rng.startContainer, offset);\n        const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, beforeText);\n        const inlineMatches = findPatterns(editor, block, rng.startContainer, offset, dynamicPatternSet, false);\n        if (inlineMatches.length > 0) {\n          editor.undoManager.transact(() => {\n            applyMatches(editor, inlineMatches);\n          });\n        }\n      });\n    };\n    const checkKeyEvent = (codes, event, predicate) => {\n      for (let i = 0; i < codes.length; i++) {\n        if (predicate(codes[i], event)) {\n          return true;\n        }\n      }\n      return false;\n    };\n    const checkKeyCode = (codes, event) => checkKeyEvent(codes, event, (code, event) => {\n      return code === event.keyCode && !VK.modifierPressed(event);\n    });\n    const checkCharCode = (chars, event) => checkKeyEvent(chars, event, (chr, event) => {\n      return chr.charCodeAt(0) === event.charCode;\n    });\n\n    const setup$2 = editor => {\n      const charCodes = [\n        ',',\n        '.',\n        ';',\n        ':',\n        '!',\n        '?'\n      ];\n      const keyCodes = [32];\n      const getPatternSet = () => createPatternSet(getTextPatterns(editor), getTextPatternsLookup(editor));\n      const hasDynamicPatterns = () => hasTextPatternsLookup(editor);\n      editor.on('keydown', e => {\n        if (e.keyCode === 13 && !VK.modifierPressed(e) && editor.selection.isCollapsed()) {\n          const patternSet = getPatternSet();\n          const hasPatterns = patternSet.inlinePatterns.length > 0 || patternSet.blockPatterns.length > 0 || hasDynamicPatterns();\n          if (hasPatterns && handleEnter(editor, patternSet)) {\n            e.preventDefault();\n          }\n        }\n      }, true);\n      const handleInlineTrigger = () => {\n        if (editor.selection.isCollapsed()) {\n          const patternSet = getPatternSet();\n          const hasPatterns = patternSet.inlinePatterns.length > 0 || hasDynamicPatterns();\n          if (hasPatterns) {\n            handleInlineKey(editor, patternSet);\n          }\n        }\n      };\n      editor.on('keyup', e => {\n        if (checkKeyCode(keyCodes, e)) {\n          handleInlineTrigger();\n        }\n      });\n      editor.on('keypress', e => {\n        if (checkCharCode(charCodes, e)) {\n          Delay.setEditorTimeout(editor, handleInlineTrigger);\n        }\n      });\n    };\n\n    const setup$1 = editor => {\n      setup$2(editor);\n    };\n\n    const Quirks = editor => {\n      const each = Tools.each;\n      const BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, parser = editor.parser;\n      const browser = Env.browser;\n      const isGecko = browser.isFirefox();\n      const isWebKit = browser.isChromium() || browser.isSafari();\n      const isiOS = Env.deviceType.isiPhone() || Env.deviceType.isiPad();\n      const isMac = Env.os.isMacOS() || Env.os.isiOS();\n      const setEditorCommandState = (cmd, state) => {\n        try {\n          editor.getDoc().execCommand(cmd, false, String(state));\n        } catch (ex) {\n        }\n      };\n      const isDefaultPrevented = e => {\n        return e.isDefaultPrevented();\n      };\n      const emptyEditorWhenDeleting = () => {\n        const serializeRng = rng => {\n          const body = dom.create('body');\n          const contents = rng.cloneContents();\n          body.appendChild(contents);\n          return selection.serializer.serialize(body, { format: 'html' });\n        };\n        const allContentsSelected = rng => {\n          const selection = serializeRng(rng);\n          const allRng = dom.createRng();\n          allRng.selectNode(editor.getBody());\n          const allSelection = serializeRng(allRng);\n          return selection === allSelection;\n        };\n        editor.on('keydown', e => {\n          const keyCode = e.keyCode;\n          if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE)) {\n            const isCollapsed = editor.selection.isCollapsed();\n            const body = editor.getBody();\n            if (isCollapsed && !dom.isEmpty(body)) {\n              return;\n            }\n            if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\n              return;\n            }\n            e.preventDefault();\n            editor.setContent('');\n            if (body.firstChild && dom.isBlock(body.firstChild)) {\n              editor.selection.setCursorLocation(body.firstChild, 0);\n            } else {\n              editor.selection.setCursorLocation(body, 0);\n            }\n            editor.nodeChanged();\n          }\n        });\n      };\n      const selectAll = () => {\n        editor.shortcuts.add('meta+a', null, 'SelectAll');\n      };\n      const documentElementEditingFocus = () => {\n        if (!editor.inline) {\n          dom.bind(editor.getDoc(), 'mousedown mouseup', e => {\n            let rng;\n            if (e.target === editor.getDoc().documentElement) {\n              rng = selection.getRng();\n              editor.getBody().focus();\n              if (e.type === 'mousedown') {\n                if (isCaretContainer$2(rng.startContainer)) {\n                  return;\n                }\n                selection.placeCaretAt(e.clientX, e.clientY);\n              } else {\n                selection.setRng(rng);\n              }\n            }\n          });\n        }\n      };\n      const removeHrOnBackspace = () => {\n        editor.on('keydown', e => {\n          if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n            if (!editor.getBody().getElementsByTagName('hr').length) {\n              return;\n            }\n            if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n              const node = selection.getNode();\n              const previousSibling = node.previousSibling;\n              if (node.nodeName === 'HR') {\n                dom.remove(node);\n                e.preventDefault();\n                return;\n              }\n              if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') {\n                dom.remove(previousSibling);\n                e.preventDefault();\n              }\n            }\n          }\n        });\n      };\n      const focusBody = () => {\n        if (!Range.prototype.getClientRects) {\n          editor.on('mousedown', e => {\n            if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {\n              const body = editor.getBody();\n              body.blur();\n              Delay.setEditorTimeout(editor, () => {\n                body.focus();\n              });\n            }\n          });\n        }\n      };\n      const selectControlElements = () => {\n        const visualAidsAnchorClass = getVisualAidsAnchorClass(editor);\n        editor.on('click', e => {\n          const target = e.target;\n          if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== 'false') {\n            e.preventDefault();\n            editor.selection.select(target);\n            editor.nodeChanged();\n          }\n          if (target.nodeName === 'A' && dom.hasClass(target, visualAidsAnchorClass) && target.childNodes.length === 0) {\n            e.preventDefault();\n            selection.select(target);\n          }\n        });\n      };\n      const removeStylesWhenDeletingAcrossBlockElements = () => {\n        const getAttributeApplyFunction = () => {\n          const template = dom.getAttribs(selection.getStart().cloneNode(false));\n          return () => {\n            const target = selection.getStart();\n            if (target !== editor.getBody()) {\n              dom.setAttrib(target, 'style', null);\n              each(template, attr => {\n                target.setAttributeNode(attr.cloneNode(true));\n              });\n            }\n          };\n        };\n        const isSelectionAcrossElements = () => {\n          return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock);\n        };\n        editor.on('keypress', e => {\n          let applyAttributes;\n          if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) {\n            applyAttributes = getAttributeApplyFunction();\n            editor.getDoc().execCommand('delete', false);\n            applyAttributes();\n            e.preventDefault();\n            return false;\n          } else {\n            return true;\n          }\n        });\n        dom.bind(editor.getDoc(), 'cut', e => {\n          if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\n            const applyAttributes = getAttributeApplyFunction();\n            Delay.setEditorTimeout(editor, () => {\n              applyAttributes();\n            });\n          }\n        });\n      };\n      const disableBackspaceIntoATable = () => {\n        editor.on('keydown', e => {\n          if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n            if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n              const previousSibling = selection.getNode().previousSibling;\n              if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') {\n                e.preventDefault();\n                return false;\n              }\n            }\n          }\n          return true;\n        });\n      };\n      const removeBlockQuoteOnBackSpace = () => {\n        editor.on('keydown', e => {\n          if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) {\n            return;\n          }\n          let rng = selection.getRng();\n          const container = rng.startContainer;\n          const offset = rng.startOffset;\n          const root = dom.getRoot();\n          let parent = container;\n          if (!rng.collapsed || offset !== 0) {\n            return;\n          }\n          while (parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) {\n            parent = parent.parentNode;\n          }\n          if (parent.nodeName === 'BLOCKQUOTE') {\n            editor.formatter.toggle('blockquote', undefined, parent);\n            rng = dom.createRng();\n            rng.setStart(container, 0);\n            rng.setEnd(container, 0);\n            selection.setRng(rng);\n          }\n        });\n      };\n      const setGeckoEditingOptions = () => {\n        const setOpts = () => {\n          setEditorCommandState('StyleWithCSS', false);\n          setEditorCommandState('enableInlineTableEditing', false);\n          if (!getObjectResizing(editor)) {\n            setEditorCommandState('enableObjectResizing', false);\n          }\n        };\n        if (!isReadOnly$1(editor)) {\n          editor.on('BeforeExecCommand mousedown', setOpts);\n        }\n      };\n      const addBrAfterLastLinks = () => {\n        const fixLinks = () => {\n          each(dom.select('a:not([data-mce-block])'), node => {\n            var _a;\n            let parentNode = node.parentNode;\n            const root = dom.getRoot();\n            if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.lastChild) === node) {\n              while (parentNode && !dom.isBlock(parentNode)) {\n                if (((_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.lastChild) !== parentNode || parentNode === root) {\n                  return;\n                }\n                parentNode = parentNode.parentNode;\n              }\n              dom.add(parentNode, 'br', { 'data-mce-bogus': 1 });\n            }\n          });\n        };\n        editor.on('SetContent ExecCommand', e => {\n          if (e.type === 'setcontent' || e.command === 'mceInsertLink') {\n            fixLinks();\n          }\n        });\n      };\n      const setDefaultBlockType = () => {\n        editor.on('init', () => {\n          setEditorCommandState('DefaultParagraphSeparator', getForcedRootBlock(editor));\n        });\n      };\n      const isAllContentSelected = editor => {\n        const body = editor.getBody();\n        const rng = editor.selection.getRng();\n        return rng.startContainer === rng.endContainer && rng.startContainer === body && rng.startOffset === 0 && rng.endOffset === body.childNodes.length;\n      };\n      const normalizeSelection = () => {\n        editor.on('keyup focusin mouseup', e => {\n          if (!VK.modifierPressed(e) && !isAllContentSelected(editor)) {\n            selection.normalize();\n          }\n        }, true);\n      };\n      const showBrokenImageIcon = () => {\n        editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}');\n      };\n      const restoreFocusOnKeyDown = () => {\n        if (!editor.inline) {\n          editor.on('keydown', () => {\n            if (document.activeElement === document.body) {\n              editor.getWin().focus();\n            }\n          });\n        }\n      };\n      const bodyHeight = () => {\n        if (!editor.inline) {\n          editor.contentStyles.push('body {min-height: 150px}');\n          editor.on('click', e => {\n            let rng;\n            if (e.target.nodeName === 'HTML') {\n              rng = editor.selection.getRng();\n              editor.getBody().focus();\n              editor.selection.setRng(rng);\n              editor.selection.normalize();\n              editor.nodeChanged();\n            }\n          });\n        }\n      };\n      const blockCmdArrowNavigation = () => {\n        if (isMac) {\n          editor.on('keydown', e => {\n            if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {\n              e.preventDefault();\n              const selection = editor.selection.getSel();\n              selection.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');\n            }\n          });\n        }\n      };\n      const tapLinksAndImages = () => {\n        editor.on('click', e => {\n          let elm = e.target;\n          do {\n            if (elm.tagName === 'A') {\n              e.preventDefault();\n              return;\n            }\n          } while (elm = elm.parentNode);\n        });\n        editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\n      };\n      const blockFormSubmitInsideEditor = () => {\n        editor.on('init', () => {\n          editor.dom.bind(editor.getBody(), 'submit', e => {\n            e.preventDefault();\n          });\n        });\n      };\n      const removeAppleInterchangeBrs = () => {\n        parser.addNodeFilter('br', nodes => {\n          let i = nodes.length;\n          while (i--) {\n            if (nodes[i].attr('class') === 'Apple-interchange-newline') {\n              nodes[i].remove();\n            }\n          }\n        });\n      };\n      const refreshContentEditable = noop;\n      const isHidden = () => {\n        if (!isGecko || editor.removed) {\n          return false;\n        }\n        const sel = editor.selection.getSel();\n        return !sel || !sel.rangeCount || sel.rangeCount === 0;\n      };\n      const setupRtc = () => {\n        if (isWebKit) {\n          documentElementEditingFocus();\n          selectControlElements();\n          blockFormSubmitInsideEditor();\n          selectAll();\n          if (isiOS) {\n            restoreFocusOnKeyDown();\n            bodyHeight();\n            tapLinksAndImages();\n          }\n        }\n        if (isGecko) {\n          focusBody();\n          setGeckoEditingOptions();\n          showBrokenImageIcon();\n          blockCmdArrowNavigation();\n        }\n      };\n      const setup = () => {\n        removeBlockQuoteOnBackSpace();\n        emptyEditorWhenDeleting();\n        if (!Env.windowsPhone) {\n          normalizeSelection();\n        }\n        if (isWebKit) {\n          documentElementEditingFocus();\n          selectControlElements();\n          setDefaultBlockType();\n          blockFormSubmitInsideEditor();\n          disableBackspaceIntoATable();\n          removeAppleInterchangeBrs();\n          if (isiOS) {\n            restoreFocusOnKeyDown();\n            bodyHeight();\n            tapLinksAndImages();\n          } else {\n            selectAll();\n          }\n        }\n        if (isGecko) {\n          removeHrOnBackspace();\n          focusBody();\n          removeStylesWhenDeletingAcrossBlockElements();\n          setGeckoEditingOptions();\n          addBrAfterLastLinks();\n          showBrokenImageIcon();\n          blockCmdArrowNavigation();\n          disableBackspaceIntoATable();\n        }\n      };\n      if (isRtc(editor)) {\n        setupRtc();\n      } else {\n        setup();\n      }\n      return {\n        refreshContentEditable,\n        isHidden\n      };\n    };\n\n    const DOM$6 = DOMUtils.DOM;\n    const appendStyle = (editor, text) => {\n      const body = SugarElement.fromDom(editor.getBody());\n      const container = getStyleContainer(getRootNode(body));\n      const style = SugarElement.fromTag('style');\n      set$2(style, 'type', 'text/css');\n      append$1(style, SugarElement.fromText(text));\n      append$1(container, style);\n      editor.on('remove', () => {\n        remove$6(style);\n      });\n    };\n    const getRootName = editor => editor.inline ? editor.getElement().nodeName.toLowerCase() : undefined;\n    const removeUndefined = obj => filter$4(obj, v => isUndefined(v) === false);\n    const mkParserSettings = editor => {\n      const getOption = editor.options.get;\n      const blobCache = editor.editorUpload.blobCache;\n      return removeUndefined({\n        allow_conditional_comments: getOption('allow_conditional_comments'),\n        allow_html_data_urls: getOption('allow_html_data_urls'),\n        allow_svg_data_urls: getOption('allow_svg_data_urls'),\n        allow_html_in_named_anchor: getOption('allow_html_in_named_anchor'),\n        allow_script_urls: getOption('allow_script_urls'),\n        allow_unsafe_link_target: getOption('allow_unsafe_link_target'),\n        convert_fonts_to_spans: getOption('convert_fonts_to_spans'),\n        fix_list_elements: getOption('fix_list_elements'),\n        font_size_legacy_values: getOption('font_size_legacy_values'),\n        forced_root_block: getOption('forced_root_block'),\n        forced_root_block_attrs: getOption('forced_root_block_attrs'),\n        preserve_cdata: getOption('preserve_cdata'),\n        remove_trailing_brs: getOption('remove_trailing_brs'),\n        inline_styles: getOption('inline_styles'),\n        root_name: getRootName(editor),\n        validate: true,\n        blob_cache: blobCache,\n        document: editor.getDoc()\n      });\n    };\n    const mkSchemaSettings = editor => {\n      const getOption = editor.options.get;\n      return removeUndefined({\n        custom_elements: getOption('custom_elements'),\n        extended_valid_elements: getOption('extended_valid_elements'),\n        invalid_elements: getOption('invalid_elements'),\n        invalid_styles: getOption('invalid_styles'),\n        schema: getOption('schema'),\n        valid_children: getOption('valid_children'),\n        valid_classes: getOption('valid_classes'),\n        valid_elements: getOption('valid_elements'),\n        valid_styles: getOption('valid_styles'),\n        verify_html: getOption('verify_html'),\n        padd_empty_block_inline_children: getOption('format_empty_lines')\n      });\n    };\n    const mkSerializerSettings = editor => {\n      const getOption = editor.options.get;\n      return {\n        ...mkParserSettings(editor),\n        ...mkSchemaSettings(editor),\n        ...removeUndefined({\n          url_converter: getOption('url_converter'),\n          url_converter_scope: getOption('url_converter_scope'),\n          element_format: getOption('element_format'),\n          entities: getOption('entities'),\n          entity_encoding: getOption('entity_encoding'),\n          indent: getOption('indent'),\n          indent_after: getOption('indent_after'),\n          indent_before: getOption('indent_before')\n        })\n      };\n    };\n    const createParser = editor => {\n      const parser = DomParser(mkParserSettings(editor), editor.schema);\n      parser.addAttributeFilter('src,href,style,tabindex', (nodes, name) => {\n        const dom = editor.dom;\n        const internalName = 'data-mce-' + name;\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          let value = node.attr(name);\n          if (value && !node.attr(internalName)) {\n            if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {\n              continue;\n            }\n            if (name === 'style') {\n              value = dom.serializeStyle(dom.parseStyle(value), node.name);\n              if (!value.length) {\n                value = null;\n              }\n              node.attr(internalName, value);\n              node.attr(name, value);\n            } else if (name === 'tabindex') {\n              node.attr(internalName, value);\n              node.attr(name, null);\n            } else {\n              node.attr(internalName, editor.convertURL(value, name, node.name));\n            }\n          }\n        }\n      });\n      parser.addNodeFilter('script', nodes => {\n        let i = nodes.length;\n        while (i--) {\n          const node = nodes[i];\n          const type = node.attr('type') || 'no/type';\n          if (type.indexOf('mce-') !== 0) {\n            node.attr('type', 'mce-' + type);\n          }\n        }\n      });\n      if (shouldPreserveCData(editor)) {\n        parser.addNodeFilter('#cdata', nodes => {\n          var _a;\n          let i = nodes.length;\n          while (i--) {\n            const node = nodes[i];\n            node.type = 8;\n            node.name = '#comment';\n            node.value = '[CDATA[' + editor.dom.encode((_a = node.value) !== null && _a !== void 0 ? _a : '') + ']]';\n          }\n        });\n      }\n      parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', nodes => {\n        let i = nodes.length;\n        const nonEmptyElements = editor.schema.getNonEmptyElements();\n        while (i--) {\n          const node = nodes[i];\n          if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) {\n            node.append(new AstNode('br', 1));\n          }\n        }\n      });\n      return parser;\n    };\n    const autoFocus = editor => {\n      const autoFocus = getAutoFocus(editor);\n      if (autoFocus) {\n        Delay.setEditorTimeout(editor, () => {\n          let focusEditor;\n          if (autoFocus === true) {\n            focusEditor = editor;\n          } else {\n            focusEditor = editor.editorManager.get(autoFocus);\n          }\n          if (focusEditor && !focusEditor.destroyed) {\n            focusEditor.focus();\n            focusEditor.selection.scrollIntoView();\n          }\n        }, 100);\n      }\n    };\n    const moveSelectionToFirstCaretPosition = editor => {\n      const root = editor.dom.getRoot();\n      if (!editor.inline && (!hasAnyRanges(editor) || editor.selection.getStart(true) === root)) {\n        firstPositionIn(root).each(pos => {\n          const node = pos.getNode();\n          const caretPos = isTable$2(node) ? firstPositionIn(node).getOr(pos) : pos;\n          editor.selection.setRng(caretPos.toRange());\n        });\n      }\n    };\n    const initEditor = editor => {\n      editor.bindPendingEventDelegates();\n      editor.initialized = true;\n      fireInit(editor);\n      editor.focus(true);\n      moveSelectionToFirstCaretPosition(editor);\n      editor.nodeChanged({ initial: true });\n      const initInstanceCallback = getInitInstanceCallback(editor);\n      if (isFunction(initInstanceCallback)) {\n        initInstanceCallback.call(editor, editor);\n      }\n      autoFocus(editor);\n    };\n    const getStyleSheetLoader$1 = editor => editor.inline ? editor.ui.styleSheetLoader : editor.dom.styleSheetLoader;\n    const makeStylesheetLoadingPromises = (editor, css, framedFonts) => {\n      const promises = [getStyleSheetLoader$1(editor).loadAll(css)];\n      if (editor.inline) {\n        return promises;\n      } else {\n        return promises.concat([editor.ui.styleSheetLoader.loadAll(framedFonts)]);\n      }\n    };\n    const loadContentCss = editor => {\n      const styleSheetLoader = getStyleSheetLoader$1(editor);\n      const fontCss = getFontCss(editor);\n      const css = editor.contentCSS;\n      const removeCss = () => {\n        styleSheetLoader.unloadAll(css);\n        if (!editor.inline) {\n          editor.ui.styleSheetLoader.unloadAll(fontCss);\n        }\n      };\n      const loaded = () => {\n        if (editor.removed) {\n          removeCss();\n        } else {\n          editor.on('remove', removeCss);\n        }\n      };\n      if (editor.contentStyles.length > 0) {\n        let contentCssText = '';\n        Tools.each(editor.contentStyles, style => {\n          contentCssText += style + '\\r\\n';\n        });\n        editor.dom.addStyle(contentCssText);\n      }\n      const allStylesheets = Promise.all(makeStylesheetLoadingPromises(editor, css, fontCss)).then(loaded).catch(loaded);\n      const contentStyle = getContentStyle(editor);\n      if (contentStyle) {\n        appendStyle(editor, contentStyle);\n      }\n      return allStylesheets;\n    };\n    const preInit = editor => {\n      const doc = editor.getDoc(), body = editor.getBody();\n      firePreInit(editor);\n      if (!shouldBrowserSpellcheck(editor)) {\n        doc.body.spellcheck = false;\n        DOM$6.setAttrib(body, 'spellcheck', 'false');\n      }\n      editor.quirks = Quirks(editor);\n      firePostRender(editor);\n      const directionality = getDirectionality(editor);\n      if (directionality !== undefined) {\n        body.dir = directionality;\n      }\n      const protect = getProtect(editor);\n      if (protect) {\n        editor.on('BeforeSetContent', e => {\n          Tools.each(protect, pattern => {\n            e.content = e.content.replace(pattern, str => {\n              return '<!--mce:protected ' + escape(str) + '-->';\n            });\n          });\n        });\n      }\n      editor.on('SetContent', () => {\n        editor.addVisual(editor.getBody());\n      });\n      editor.on('compositionstart compositionend', e => {\n        editor.composing = e.type === 'compositionstart';\n      });\n    };\n    const loadInitialContent = editor => {\n      if (!isRtc(editor)) {\n        editor.load({\n          initial: true,\n          format: 'html'\n        });\n      }\n      editor.startContent = editor.getContent({ format: 'raw' });\n    };\n    const initEditorWithInitialContent = editor => {\n      if (editor.removed !== true) {\n        loadInitialContent(editor);\n        initEditor(editor);\n      }\n    };\n    const contentBodyLoaded = editor => {\n      const targetElm = editor.getElement();\n      let doc = editor.getDoc();\n      if (editor.inline) {\n        DOM$6.addClass(targetElm, 'mce-content-body');\n        editor.contentDocument = doc = document;\n        editor.contentWindow = window;\n        editor.bodyElement = targetElm;\n        editor.contentAreaContainer = targetElm;\n      }\n      const body = editor.getBody();\n      body.disabled = true;\n      editor.readonly = isReadOnly$1(editor);\n      if (!editor.readonly) {\n        if (editor.inline && DOM$6.getStyle(body, 'position', true) === 'static') {\n          body.style.position = 'relative';\n        }\n        body.contentEditable = 'true';\n      }\n      body.disabled = false;\n      editor.editorUpload = EditorUpload(editor);\n      editor.schema = Schema(mkSchemaSettings(editor));\n      editor.dom = DOMUtils(doc, {\n        keep_values: true,\n        url_converter: editor.convertURL,\n        url_converter_scope: editor,\n        update_styles: true,\n        root_element: editor.inline ? editor.getBody() : null,\n        collect: editor.inline,\n        schema: editor.schema,\n        contentCssCors: shouldUseContentCssCors(editor),\n        referrerPolicy: getReferrerPolicy(editor),\n        onSetAttrib: e => {\n          editor.dispatch('SetAttrib', e);\n        }\n      });\n      editor.parser = createParser(editor);\n      editor.serializer = DomSerializer(mkSerializerSettings(editor), editor);\n      editor.selection = EditorSelection(editor.dom, editor.getWin(), editor.serializer, editor);\n      editor.annotator = Annotator(editor);\n      editor.formatter = Formatter(editor);\n      editor.undoManager = UndoManager(editor);\n      editor._nodeChangeDispatcher = new NodeChange(editor);\n      editor._selectionOverrides = SelectionOverrides(editor);\n      setup$o(editor);\n      setup$6(editor);\n      setup$m(editor);\n      if (!isRtc(editor)) {\n        setup$5(editor);\n        setup$1(editor);\n      }\n      const caret = setup$b(editor);\n      setup$p(editor, caret);\n      setup$n(editor);\n      setup$q(editor);\n      setup$7(editor);\n      const setupRtcThunk = setup$s(editor);\n      preInit(editor);\n      setupRtcThunk.fold(() => {\n        loadContentCss(editor).then(() => initEditorWithInitialContent(editor));\n      }, setupRtc => {\n        editor.setProgressState(true);\n        loadContentCss(editor).then(() => {\n          setupRtc().then(_rtcMode => {\n            editor.setProgressState(false);\n            initEditorWithInitialContent(editor);\n            bindEvents(editor);\n          }, err => {\n            editor.notificationManager.open({\n              type: 'error',\n              text: String(err)\n            });\n            initEditorWithInitialContent(editor);\n            bindEvents(editor);\n          });\n        });\n      });\n    };\n    const initContentBody = (editor, skipWrite) => {\n      if (!editor.inline) {\n        editor.getElement().style.visibility = editor.orgVisibility;\n      }\n      if (!skipWrite && !editor.inline) {\n        const iframe = editor.iframeElement;\n        const binder = bind$1(SugarElement.fromDom(iframe), 'load', () => {\n          binder.unbind();\n          editor.contentDocument = iframe.contentDocument;\n          contentBodyLoaded(editor);\n        });\n        if (Env.browser.isFirefox()) {\n          const doc = editor.getDoc();\n          doc.open();\n          doc.write(editor.iframeHTML);\n          doc.close();\n        } else {\n          iframe.srcdoc = editor.iframeHTML;\n        }\n      } else {\n        contentBodyLoaded(editor);\n      }\n    };\n\n    const DOM$5 = DOMUtils.DOM;\n    const createIframeElement = (id, title, customAttrs, tabindex) => {\n      const iframe = SugarElement.fromTag('iframe');\n      tabindex.each(t => set$2(iframe, 'tabindex', t));\n      setAll$1(iframe, customAttrs);\n      setAll$1(iframe, {\n        id: id + '_ifr',\n        frameBorder: '0',\n        allowTransparency: 'true',\n        title\n      });\n      add$2(iframe, 'tox-edit-area__iframe');\n      return iframe;\n    };\n    const getIframeHtml = editor => {\n      let iframeHTML = getDocType(editor) + '<html><head>';\n      if (getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {\n        iframeHTML += '<base href=\"' + editor.documentBaseURI.getURI() + '\" />';\n      }\n      iframeHTML += '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />';\n      const bodyId = getBodyId(editor);\n      const bodyClass = getBodyClass(editor);\n      const translatedAriaText = editor.translate(getIframeAriaText(editor));\n      if (getContentSecurityPolicy(editor)) {\n        iframeHTML += '<meta http-equiv=\"Content-Security-Policy\" content=\"' + getContentSecurityPolicy(editor) + '\" />';\n      }\n      iframeHTML += '</head>' + `<body id=\"${ bodyId }\" class=\"mce-content-body ${ bodyClass }\" data-id=\"${ editor.id }\" aria-label=\"${ translatedAriaText }\">` + '<br>' + '</body></html>';\n      return iframeHTML;\n    };\n    const createIframe = (editor, boxInfo) => {\n      const iframeTitle = editor.translate('Rich Text Area');\n      const tabindex = getOpt(SugarElement.fromDom(editor.getElement()), 'tabindex').bind(toInt);\n      const ifr = createIframeElement(editor.id, iframeTitle, getIframeAttrs(editor), tabindex).dom;\n      ifr.onload = () => {\n        ifr.onload = null;\n        editor.dispatch('load');\n      };\n      editor.contentAreaContainer = boxInfo.iframeContainer;\n      editor.iframeElement = ifr;\n      editor.iframeHTML = getIframeHtml(editor);\n      DOM$5.add(boxInfo.iframeContainer, ifr);\n    };\n    const init$1 = (editor, boxInfo) => {\n      createIframe(editor, boxInfo);\n      if (boxInfo.editorContainer) {\n        boxInfo.editorContainer.style.display = editor.orgDisplay;\n        editor.hidden = DOM$5.isHidden(boxInfo.editorContainer);\n      }\n      editor.getElement().style.display = 'none';\n      DOM$5.setAttrib(editor.id, 'aria-hidden', 'true');\n      initContentBody(editor);\n    };\n\n    const DOM$4 = DOMUtils.DOM;\n    const initPlugin = (editor, initializedPlugins, plugin) => {\n      const Plugin = PluginManager.get(plugin);\n      const pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\\/$/, '');\n      plugin = Tools.trim(plugin);\n      if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) {\n        if (editor.plugins[plugin]) {\n          return;\n        }\n        try {\n          const pluginInstance = Plugin(editor, pluginUrl) || {};\n          editor.plugins[plugin] = pluginInstance;\n          if (isFunction(pluginInstance.init)) {\n            pluginInstance.init(editor, pluginUrl);\n            initializedPlugins.push(plugin);\n          }\n        } catch (e) {\n          pluginInitError(editor, plugin, e);\n        }\n      }\n    };\n    const trimLegacyPrefix = name => {\n      return name.replace(/^\\-/, '');\n    };\n    const initPlugins = editor => {\n      const initializedPlugins = [];\n      each$e(getPlugins(editor), name => {\n        initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));\n      });\n    };\n    const initIcons = editor => {\n      const iconPackName = Tools.trim(getIconPackName(editor));\n      const currentIcons = editor.ui.registry.getAll().icons;\n      const loadIcons = {\n        ...IconManager.get('default').icons,\n        ...IconManager.get(iconPackName).icons\n      };\n      each$d(loadIcons, (svgData, icon) => {\n        if (!has$2(currentIcons, icon)) {\n          editor.ui.registry.addIcon(icon, svgData);\n        }\n      });\n    };\n    const initTheme = editor => {\n      const theme = getTheme(editor);\n      if (isString(theme)) {\n        const Theme = ThemeManager.get(theme);\n        editor.theme = Theme(editor, ThemeManager.urls[theme]) || {};\n        if (isFunction(editor.theme.init)) {\n          editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\\/$/, ''));\n        }\n      } else {\n        editor.theme = {};\n      }\n    };\n    const initModel = editor => {\n      const model = getModel(editor);\n      const Model = ModelManager.get(model);\n      editor.model = Model(editor, ModelManager.urls[model]);\n    };\n    const renderFromLoadedTheme = editor => {\n      const render = editor.theme.renderUI;\n      return render ? render() : renderThemeFalse(editor);\n    };\n    const renderFromThemeFunc = editor => {\n      const elm = editor.getElement();\n      const theme = getTheme(editor);\n      const info = theme(editor, elm);\n      if (info.editorContainer.nodeType) {\n        info.editorContainer.id = info.editorContainer.id || editor.id + '_parent';\n      }\n      if (info.iframeContainer && info.iframeContainer.nodeType) {\n        info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer';\n      }\n      info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight;\n      return info;\n    };\n    const createThemeFalseResult = (element, iframe) => {\n      return {\n        editorContainer: element,\n        iframeContainer: iframe,\n        api: {}\n      };\n    };\n    const renderThemeFalseIframe = targetElement => {\n      const iframeContainer = DOM$4.create('div');\n      DOM$4.insertAfter(iframeContainer, targetElement);\n      return createThemeFalseResult(iframeContainer, iframeContainer);\n    };\n    const renderThemeFalse = editor => {\n      const targetElement = editor.getElement();\n      return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement);\n    };\n    const renderThemeUi = editor => {\n      const elm = editor.getElement();\n      editor.orgDisplay = elm.style.display;\n      if (isString(getTheme(editor))) {\n        return renderFromLoadedTheme(editor);\n      } else if (isFunction(getTheme(editor))) {\n        return renderFromThemeFunc(editor);\n      } else {\n        return renderThemeFalse(editor);\n      }\n    };\n    const augmentEditorUiApi = (editor, api) => {\n      const uiApiFacade = {\n        show: Optional.from(api.show).getOr(noop),\n        hide: Optional.from(api.hide).getOr(noop),\n        isEnabled: Optional.from(api.isEnabled).getOr(always),\n        setEnabled: state => {\n          if (!editor.mode.isReadOnly()) {\n            Optional.from(api.setEnabled).each(f => f(state));\n          }\n        }\n      };\n      editor.ui = {\n        ...editor.ui,\n        ...uiApiFacade\n      };\n    };\n    const init = editor => {\n      editor.dispatch('ScriptsLoaded');\n      initIcons(editor);\n      initTheme(editor);\n      initModel(editor);\n      initPlugins(editor);\n      const renderInfo = renderThemeUi(editor);\n      augmentEditorUiApi(editor, Optional.from(renderInfo.api).getOr({}));\n      editor.editorContainer = renderInfo.editorContainer;\n      appendContentCssFromSettings(editor);\n      if (editor.inline) {\n        initContentBody(editor);\n      } else {\n        init$1(editor, {\n          editorContainer: renderInfo.editorContainer,\n          iframeContainer: renderInfo.iframeContainer\n        });\n      }\n    };\n\n    const DOM$3 = DOMUtils.DOM;\n    const hasSkipLoadPrefix = name => name.charAt(0) === '-';\n    const loadLanguage = (scriptLoader, editor) => {\n      const languageCode = getLanguageCode(editor);\n      const languageUrl = getLanguageUrl(editor);\n      if (!I18n.hasCode(languageCode) && languageCode !== 'en') {\n        const url = isNotEmpty(languageUrl) ? languageUrl : `${ editor.editorManager.baseURL }/langs/${ languageCode }.js`;\n        scriptLoader.add(url).catch(() => {\n          languageLoadError(editor, url, languageCode);\n        });\n      }\n    };\n    const loadTheme = (editor, suffix) => {\n      const theme = getTheme(editor);\n      if (isString(theme) && !hasSkipLoadPrefix(theme) && !has$2(ThemeManager.urls, theme)) {\n        const themeUrl = getThemeUrl(editor);\n        const url = themeUrl ? editor.documentBaseURI.toAbsolute(themeUrl) : `themes/${ theme }/theme${ suffix }.js`;\n        ThemeManager.load(theme, url).catch(() => {\n          themeLoadError(editor, url, theme);\n        });\n      }\n    };\n    const loadModel = (editor, suffix) => {\n      const model = getModel(editor);\n      if (model !== 'plugin' && !has$2(ModelManager.urls, model)) {\n        const modelUrl = getModelUrl(editor);\n        const url = isString(modelUrl) ? editor.documentBaseURI.toAbsolute(modelUrl) : `models/${ model }/model${ suffix }.js`;\n        ModelManager.load(model, url).catch(() => {\n          modelLoadError(editor, url, model);\n        });\n      }\n    };\n    const getIconsUrlMetaFromUrl = editor => Optional.from(getIconsUrl(editor)).filter(isNotEmpty).map(url => ({\n      url,\n      name: Optional.none()\n    }));\n    const getIconsUrlMetaFromName = (editor, name, suffix) => Optional.from(name).filter(name => isNotEmpty(name) && !IconManager.has(name)).map(name => ({\n      url: `${ editor.editorManager.baseURL }/icons/${ name }/icons${ suffix }.js`,\n      name: Optional.some(name)\n    }));\n    const loadIcons = (scriptLoader, editor, suffix) => {\n      const defaultIconsUrl = getIconsUrlMetaFromName(editor, 'default', suffix);\n      const customIconsUrl = getIconsUrlMetaFromUrl(editor).orThunk(() => getIconsUrlMetaFromName(editor, getIconPackName(editor), ''));\n      each$e(cat([\n        defaultIconsUrl,\n        customIconsUrl\n      ]), urlMeta => {\n        scriptLoader.add(urlMeta.url).catch(() => {\n          iconsLoadError(editor, urlMeta.url, urlMeta.name.getOrUndefined());\n        });\n      });\n    };\n    const loadPlugins = (editor, suffix) => {\n      const loadPlugin = (name, url) => {\n        PluginManager.load(name, url).catch(() => {\n          pluginLoadError(editor, url, name);\n        });\n      };\n      each$d(getExternalPlugins$1(editor), (url, name) => {\n        loadPlugin(name, url);\n        editor.options.set('plugins', getPlugins(editor).concat(name));\n      });\n      each$e(getPlugins(editor), plugin => {\n        plugin = Tools.trim(plugin);\n        if (plugin && !PluginManager.urls[plugin] && !hasSkipLoadPrefix(plugin)) {\n          loadPlugin(plugin, `plugins/${ plugin }/plugin${ suffix }.js`);\n        }\n      });\n    };\n    const isThemeLoaded = editor => {\n      const theme = getTheme(editor);\n      return !isString(theme) || isNonNullable(ThemeManager.get(theme));\n    };\n    const isModelLoaded = editor => {\n      const model = getModel(editor);\n      return isNonNullable(ModelManager.get(model));\n    };\n    const loadScripts = (editor, suffix) => {\n      const scriptLoader = ScriptLoader.ScriptLoader;\n      const initEditor = () => {\n        if (!editor.removed && isThemeLoaded(editor) && isModelLoaded(editor)) {\n          init(editor);\n        }\n      };\n      loadTheme(editor, suffix);\n      loadModel(editor, suffix);\n      loadLanguage(scriptLoader, editor);\n      loadIcons(scriptLoader, editor, suffix);\n      loadPlugins(editor, suffix);\n      scriptLoader.loadQueue().then(initEditor, initEditor);\n    };\n    const getStyleSheetLoader = (element, editor) => instance.forElement(element, {\n      contentCssCors: hasContentCssCors(editor),\n      referrerPolicy: getReferrerPolicy(editor)\n    });\n    const render = editor => {\n      const id = editor.id;\n      I18n.setCode(getLanguageCode(editor));\n      const readyHandler = () => {\n        DOM$3.unbind(window, 'ready', readyHandler);\n        editor.render();\n      };\n      if (!EventUtils.Event.domLoaded) {\n        DOM$3.bind(window, 'ready', readyHandler);\n        return;\n      }\n      if (!editor.getElement()) {\n        return;\n      }\n      const element = SugarElement.fromDom(editor.getElement());\n      const snapshot = clone$4(element);\n      editor.on('remove', () => {\n        eachr(element.dom.attributes, attr => remove$b(element, attr.name));\n        setAll$1(element, snapshot);\n      });\n      editor.ui.styleSheetLoader = getStyleSheetLoader(element, editor);\n      if (!isInline(editor)) {\n        editor.orgVisibility = editor.getElement().style.visibility;\n        editor.getElement().style.visibility = 'hidden';\n      } else {\n        editor.inline = true;\n      }\n      const form = editor.getElement().form || DOM$3.getParent(id, 'form');\n      if (form) {\n        editor.formElement = form;\n        if (hasHiddenInput(editor) && !isTextareaOrInput(editor.getElement())) {\n          DOM$3.insertAfter(DOM$3.create('input', {\n            type: 'hidden',\n            name: id\n          }), id);\n          editor.hasHiddenInput = true;\n        }\n        editor.formEventDelegate = e => {\n          editor.dispatch(e.type, e);\n        };\n        DOM$3.bind(form, 'submit reset', editor.formEventDelegate);\n        editor.on('reset', () => {\n          editor.resetContent();\n        });\n        if (shouldPatchSubmit(editor) && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) {\n          form._mceOldSubmit = form.submit;\n          form.submit = () => {\n            editor.editorManager.triggerSave();\n            editor.setDirty(false);\n            return form._mceOldSubmit(form);\n          };\n        }\n      }\n      editor.windowManager = WindowManager(editor);\n      editor.notificationManager = NotificationManager(editor);\n      if (isEncodingXml(editor)) {\n        editor.on('GetContent', e => {\n          if (e.save) {\n            e.content = DOM$3.encode(e.content);\n          }\n        });\n      }\n      if (shouldAddFormSubmitTrigger(editor)) {\n        editor.on('submit', () => {\n          if (editor.initialized) {\n            editor.save();\n          }\n        });\n      }\n      if (shouldAddUnloadTrigger(editor)) {\n        editor._beforeUnload = () => {\n          if (editor.initialized && !editor.destroyed && !editor.isHidden()) {\n            editor.save({\n              format: 'raw',\n              no_events: true,\n              set_dirty: false\n            });\n          }\n        };\n        editor.editorManager.on('BeforeUnload', editor._beforeUnload);\n      }\n      editor.editorManager.add(editor);\n      loadScripts(editor, editor.suffix);\n    };\n\n    const sectionResult = (sections, settings) => ({\n      sections: constant(sections),\n      options: constant(settings)\n    });\n    const deviceDetection = detect$2().deviceType;\n    const isPhone = deviceDetection.isPhone();\n    const isTablet = deviceDetection.isTablet();\n    const normalizePlugins = plugins => {\n      if (isNullable(plugins)) {\n        return [];\n      } else {\n        const pluginNames = isArray$1(plugins) ? plugins : plugins.split(/[ ,]/);\n        const trimmedPlugins = map$3(pluginNames, trim$3);\n        return filter$5(trimmedPlugins, isNotEmpty);\n      }\n    };\n    const extractSections = (keys, options) => {\n      const result = bifilter(options, (value, key) => {\n        return contains$2(keys, key);\n      });\n      return sectionResult(result.t, result.f);\n    };\n    const getSection = (sectionResult, name, defaults = {}) => {\n      const sections = sectionResult.sections();\n      const sectionOptions = get$a(sections, name).getOr({});\n      return Tools.extend({}, defaults, sectionOptions);\n    };\n    const hasSection = (sectionResult, name) => {\n      return has$2(sectionResult.sections(), name);\n    };\n    const getSectionConfig = (sectionResult, name) => {\n      return hasSection(sectionResult, name) ? sectionResult.sections()[name] : {};\n    };\n    const getMobileOverrideOptions = (mobileOptions, isPhone) => {\n      const defaultMobileOptions = {\n        table_grid: false,\n        object_resizing: false,\n        resize: false,\n        toolbar_mode: get$a(mobileOptions, 'toolbar_mode').getOr('scrolling'),\n        toolbar_sticky: false\n      };\n      const defaultPhoneOptions = { menubar: false };\n      return {\n        ...defaultMobileOptions,\n        ...isPhone ? defaultPhoneOptions : {}\n      };\n    };\n    const getExternalPlugins = (overrideOptions, options) => {\n      var _a;\n      const userDefinedExternalPlugins = (_a = options.external_plugins) !== null && _a !== void 0 ? _a : {};\n      if (overrideOptions && overrideOptions.external_plugins) {\n        return Tools.extend({}, overrideOptions.external_plugins, userDefinedExternalPlugins);\n      } else {\n        return userDefinedExternalPlugins;\n      }\n    };\n    const combinePlugins = (forcedPlugins, plugins) => [\n      ...normalizePlugins(forcedPlugins),\n      ...normalizePlugins(plugins)\n    ];\n    const getPlatformPlugins = (isMobileDevice, sectionResult, desktopPlugins, mobilePlugins) => {\n      if (isMobileDevice && hasSection(sectionResult, 'mobile')) {\n        return mobilePlugins;\n      } else {\n        return desktopPlugins;\n      }\n    };\n    const processPlugins = (isMobileDevice, sectionResult, defaultOverrideOptions, options) => {\n      const forcedPlugins = normalizePlugins(defaultOverrideOptions.forced_plugins);\n      const desktopPlugins = normalizePlugins(options.plugins);\n      const mobileConfig = getSectionConfig(sectionResult, 'mobile');\n      const mobilePlugins = mobileConfig.plugins ? normalizePlugins(mobileConfig.plugins) : desktopPlugins;\n      const platformPlugins = getPlatformPlugins(isMobileDevice, sectionResult, desktopPlugins, mobilePlugins);\n      const combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);\n      return Tools.extend(options, {\n        forced_plugins: forcedPlugins,\n        plugins: combinedPlugins\n      });\n    };\n    const isOnMobile = (isMobileDevice, sectionResult) => {\n      return isMobileDevice && hasSection(sectionResult, 'mobile');\n    };\n    const combineOptions = (isMobileDevice, isPhone, defaultOptions, defaultOverrideOptions, options) => {\n      var _a;\n      const deviceOverrideOptions = isMobileDevice ? { mobile: getMobileOverrideOptions((_a = options.mobile) !== null && _a !== void 0 ? _a : {}, isPhone) } : {};\n      const sectionResult = extractSections(['mobile'], deepMerge(deviceOverrideOptions, options));\n      const extendedOptions = Tools.extend(defaultOptions, defaultOverrideOptions, sectionResult.options(), isOnMobile(isMobileDevice, sectionResult) ? getSection(sectionResult, 'mobile') : {}, { external_plugins: getExternalPlugins(defaultOverrideOptions, sectionResult.options()) });\n      return processPlugins(isMobileDevice, sectionResult, defaultOverrideOptions, extendedOptions);\n    };\n    const normalizeOptions = (defaultOverrideOptions, options) => combineOptions(isPhone || isTablet, isPhone, options, defaultOverrideOptions, options);\n\n    const addVisual = (editor, elm) => addVisual$1(editor, elm);\n\n    const registerExecCommands$3 = editor => {\n      const toggleFormat = (name, value) => {\n        editor.formatter.toggle(name, value);\n        editor.nodeChanged();\n      };\n      const toggleAlign = align => () => {\n        each$e('left,center,right,justify'.split(','), name => {\n          if (align !== name) {\n            editor.formatter.remove('align' + name);\n          }\n        });\n        if (align !== 'none') {\n          toggleFormat('align' + align);\n        }\n      };\n      editor.editorCommands.addCommands({\n        JustifyLeft: toggleAlign('left'),\n        JustifyCenter: toggleAlign('center'),\n        JustifyRight: toggleAlign('right'),\n        JustifyFull: toggleAlign('justify'),\n        JustifyNone: toggleAlign('none')\n      });\n    };\n    const registerQueryStateCommands$1 = editor => {\n      const alignStates = name => () => {\n        const selection = editor.selection;\n        const nodes = selection.isCollapsed() ? [editor.dom.getParent(selection.getNode(), editor.dom.isBlock)] : selection.getSelectedBlocks();\n        return exists(nodes, node => isNonNullable(editor.formatter.matchNode(node, name)));\n      };\n      editor.editorCommands.addCommands({\n        JustifyLeft: alignStates('alignleft'),\n        JustifyCenter: alignStates('aligncenter'),\n        JustifyRight: alignStates('alignright'),\n        JustifyFull: alignStates('alignjustify')\n      }, 'state');\n    };\n    const registerCommands$a = editor => {\n      registerExecCommands$3(editor);\n      registerQueryStateCommands$1(editor);\n    };\n\n    const registerCommands$9 = editor => {\n      editor.editorCommands.addCommands({\n        'Cut,Copy,Paste': command => {\n          const doc = editor.getDoc();\n          let failed;\n          try {\n            doc.execCommand(command);\n          } catch (ex) {\n            failed = true;\n          }\n          if (command === 'paste' && !doc.queryCommandEnabled(command)) {\n            failed = true;\n          }\n          if (failed || !doc.queryCommandSupported(command)) {\n            let msg = editor.translate(`Your browser doesn't support direct access to the clipboard. ` + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');\n            if (Env.os.isMacOS() || Env.os.isiOS()) {\n              msg = msg.replace(/Ctrl\\+/g, '\\u2318+');\n            }\n            editor.notificationManager.open({\n              text: msg,\n              type: 'error'\n            });\n          }\n        }\n      });\n    };\n\n    const trimOrPadLeftRight = (dom, rng, html) => {\n      const root = SugarElement.fromDom(dom.getRoot());\n      if (needsToBeNbspLeft(root, CaretPosition.fromRangeStart(rng))) {\n        html = html.replace(/^ /, '&nbsp;');\n      } else {\n        html = html.replace(/^&nbsp;/, ' ');\n      }\n      if (needsToBeNbspRight(root, CaretPosition.fromRangeEnd(rng))) {\n        html = html.replace(/(&nbsp;| )(<br( \\/)>)?$/, '&nbsp;');\n      } else {\n        html = html.replace(/&nbsp;(<br( \\/)?>)?$/, ' ');\n      }\n      return html;\n    };\n\n    const processValue$1 = value => {\n      if (typeof value !== 'string') {\n        const details = Tools.extend({\n          paste: value.paste,\n          data: { paste: value.paste }\n        }, value);\n        return {\n          content: value.content,\n          details\n        };\n      }\n      return {\n        content: value,\n        details: {}\n      };\n    };\n    const trimOrPad = (editor, value) => {\n      const selection = editor.selection;\n      const dom = editor.dom;\n      if (/^ | $/.test(value)) {\n        return trimOrPadLeftRight(dom, selection.getRng(), value);\n      } else {\n        return value;\n      }\n    };\n    const insertAtCaret = (editor, value) => {\n      const {content, details} = processValue$1(value);\n      preProcessSetContent(editor, {\n        ...details,\n        content: trimOrPad(editor, content),\n        format: 'html',\n        set: false,\n        selection: true\n      }).each(args => {\n        const insertedContent = insertContent$1(editor, args.content, details);\n        postProcessSetContent(editor, insertedContent, args);\n        editor.addVisual();\n      });\n    };\n\n    const registerCommands$8 = editor => {\n      editor.editorCommands.addCommands({\n        mceCleanup: () => {\n          const bm = editor.selection.getBookmark();\n          editor.setContent(editor.getContent());\n          editor.selection.moveToBookmark(bm);\n        },\n        insertImage: (_command, _ui, value) => {\n          insertAtCaret(editor, editor.dom.createHTML('img', { src: value }));\n        },\n        insertHorizontalRule: () => {\n          editor.execCommand('mceInsertContent', false, '<hr>');\n        },\n        insertText: (_command, _ui, value) => {\n          insertAtCaret(editor, editor.dom.encode(value));\n        },\n        insertHTML: (_command, _ui, value) => {\n          insertAtCaret(editor, value);\n        },\n        mceInsertContent: (_command, _ui, value) => {\n          insertAtCaret(editor, value);\n        },\n        mceSetContent: (_command, _ui, value) => {\n          editor.setContent(value);\n        },\n        mceReplaceContent: (_command, _ui, value) => {\n          editor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, editor.selection.getContent({ format: 'text' })));\n        },\n        mceNewDocument: () => {\n          editor.setContent('');\n        }\n      });\n    };\n\n    const legacyPropNames = {\n      'font-size': 'size',\n      'font-family': 'face'\n    };\n    const isFont = isTag('font');\n    const getSpecifiedFontProp = (propName, rootElm, elm) => {\n      const getProperty = elm => getRaw$1(elm, propName).orThunk(() => {\n        if (isFont(elm)) {\n          return get$a(legacyPropNames, propName).bind(legacyPropName => getOpt(elm, legacyPropName));\n        } else {\n          return Optional.none();\n        }\n      });\n      const isRoot = elm => eq(SugarElement.fromDom(rootElm), elm);\n      return closest$2(SugarElement.fromDom(elm), elm => getProperty(elm), isRoot);\n    };\n    const normalizeFontFamily = fontFamily => fontFamily.replace(/[\\'\\\"\\\\]/g, '').replace(/,\\s+/g, ',');\n    const getComputedFontProp = (propName, elm) => Optional.from(DOMUtils.DOM.getStyle(elm, propName, true));\n    const getFontProp = propName => (rootElm, elm) => Optional.from(elm).map(SugarElement.fromDom).filter(isElement$7).bind(element => getSpecifiedFontProp(propName, rootElm, element.dom).or(getComputedFontProp(propName, element.dom))).getOr('');\n    const getFontSize = getFontProp('font-size');\n    const getFontFamily = compose(normalizeFontFamily, getFontProp('font-family'));\n\n    const findFirstCaretElement = editor => firstPositionIn(editor.getBody()).bind(caret => {\n      const container = caret.container();\n      return Optional.from(isText$a(container) ? container.parentNode : container);\n    });\n    const getCaretElement = editor => Optional.from(editor.selection.getRng()).bind(rng => {\n      const root = editor.getBody();\n      const atStartOfNode = rng.startContainer === root && rng.startOffset === 0;\n      return atStartOfNode ? Optional.none() : Optional.from(editor.selection.getStart(true));\n    });\n    const bindRange = (editor, binder) => getCaretElement(editor).orThunk(curry(findFirstCaretElement, editor)).map(SugarElement.fromDom).filter(isElement$7).bind(binder);\n    const mapRange = (editor, mapper) => bindRange(editor, compose1(Optional.some, mapper));\n\n    const fromFontSizeNumber = (editor, value) => {\n      if (/^[0-9.]+$/.test(value)) {\n        const fontSizeNumber = parseInt(value, 10);\n        if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {\n          const fontSizes = getFontStyleValues(editor);\n          const fontClasses = getFontSizeClasses(editor);\n          if (fontClasses.length > 0) {\n            return fontClasses[fontSizeNumber - 1] || value;\n          } else {\n            return fontSizes[fontSizeNumber - 1] || value;\n          }\n        } else {\n          return value;\n        }\n      } else {\n        return value;\n      }\n    };\n    const normalizeFontNames = font => {\n      const fonts = font.split(/\\s*,\\s*/);\n      return map$3(fonts, font => {\n        if (font.indexOf(' ') !== -1 && !(startsWith(font, '\"') || startsWith(font, `'`))) {\n          return `'${ font }'`;\n        } else {\n          return font;\n        }\n      }).join(',');\n    };\n    const fontNameAction = (editor, value) => {\n      const font = fromFontSizeNumber(editor, value);\n      editor.formatter.toggle('fontname', { value: normalizeFontNames(font) });\n      editor.nodeChanged();\n    };\n    const fontNameQuery = editor => mapRange(editor, elm => getFontFamily(editor.getBody(), elm.dom)).getOr('');\n    const fontSizeAction = (editor, value) => {\n      editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) });\n      editor.nodeChanged();\n    };\n    const fontSizeQuery = editor => mapRange(editor, elm => getFontSize(editor.getBody(), elm.dom)).getOr('');\n\n    const lineHeightQuery = editor => mapRange(editor, elm => {\n      const root = SugarElement.fromDom(editor.getBody());\n      const specifiedStyle = closest$2(elm, elm => getRaw$1(elm, 'line-height'), curry(eq, root));\n      const computedStyle = () => {\n        const lineHeight = parseFloat(get$7(elm, 'line-height'));\n        const fontSize = parseFloat(get$7(elm, 'font-size'));\n        return String(lineHeight / fontSize);\n      };\n      return specifiedStyle.getOrThunk(computedStyle);\n    }).getOr('');\n    const lineHeightAction = (editor, lineHeight) => {\n      editor.formatter.toggle('lineheight', { value: String(lineHeight) });\n      editor.nodeChanged();\n    };\n\n    const registerExecCommands$2 = editor => {\n      const toggleFormat = (name, value) => {\n        editor.formatter.toggle(name, value);\n        editor.nodeChanged();\n      };\n      editor.editorCommands.addCommands({\n        'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': command => {\n          toggleFormat(command);\n        },\n        'ForeColor,HiliteColor': (command, _ui, value) => {\n          toggleFormat(command, { value });\n        },\n        'BackColor': (_command, _ui, value) => {\n          toggleFormat('hilitecolor', { value });\n        },\n        'FontName': (_command, _ui, value) => {\n          fontNameAction(editor, value);\n        },\n        'FontSize': (_command, _ui, value) => {\n          fontSizeAction(editor, value);\n        },\n        'LineHeight': (_command, _ui, value) => {\n          lineHeightAction(editor, value);\n        },\n        'Lang': (command, _ui, lang) => {\n          var _a;\n          toggleFormat(command, {\n            value: lang.code,\n            customValue: (_a = lang.customCode) !== null && _a !== void 0 ? _a : null\n          });\n        },\n        'RemoveFormat': command => {\n          editor.formatter.remove(command);\n        },\n        'mceBlockQuote': () => {\n          toggleFormat('blockquote');\n        },\n        'FormatBlock': (_command, _ui, value) => {\n          toggleFormat(isString(value) ? value : 'p');\n        },\n        'mceToggleFormat': (_command, _ui, value) => {\n          toggleFormat(value);\n        }\n      });\n    };\n    const registerQueryValueCommands = editor => {\n      const isFormatMatch = name => editor.formatter.match(name);\n      editor.editorCommands.addCommands({\n        'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': command => isFormatMatch(command),\n        'mceBlockQuote': () => isFormatMatch('blockquote')\n      }, 'state');\n      editor.editorCommands.addQueryValueHandler('FontName', () => fontNameQuery(editor));\n      editor.editorCommands.addQueryValueHandler('FontSize', () => fontSizeQuery(editor));\n      editor.editorCommands.addQueryValueHandler('LineHeight', () => lineHeightQuery(editor));\n    };\n    const registerCommands$7 = editor => {\n      registerExecCommands$2(editor);\n      registerQueryValueCommands(editor);\n    };\n\n    const registerCommands$6 = editor => {\n      editor.editorCommands.addCommands({\n        mceAddUndoLevel: () => {\n          editor.undoManager.add();\n        },\n        mceEndUndoLevel: () => {\n          editor.undoManager.add();\n        },\n        Undo: () => {\n          editor.undoManager.undo();\n        },\n        Redo: () => {\n          editor.undoManager.redo();\n        }\n      });\n    };\n\n    const registerCommands$5 = editor => {\n      editor.editorCommands.addCommands({\n        Indent: () => {\n          indent(editor);\n        },\n        Outdent: () => {\n          outdent(editor);\n        }\n      });\n      editor.editorCommands.addCommands({ Outdent: () => canOutdent(editor) }, 'state');\n    };\n\n    const registerCommands$4 = editor => {\n      const applyLinkToSelection = (_command, _ui, value) => {\n        const linkDetails = isString(value) ? { href: value } : value;\n        const anchor = editor.dom.getParent(editor.selection.getNode(), 'a');\n        if (isObject(linkDetails) && isString(linkDetails.href)) {\n          linkDetails.href = linkDetails.href.replace(/ /g, '%20');\n          if (!anchor || !linkDetails.href) {\n            editor.formatter.remove('link');\n          }\n          if (linkDetails.href) {\n            editor.formatter.apply('link', linkDetails, anchor);\n          }\n        }\n      };\n      editor.editorCommands.addCommands({\n        unlink: () => {\n          if (editor.selection.isCollapsed()) {\n            const elm = editor.dom.getParent(editor.selection.getStart(), 'a');\n            if (elm) {\n              editor.dom.remove(elm, true);\n            }\n            return;\n          }\n          editor.formatter.remove('link');\n        },\n        mceInsertLink: applyLinkToSelection,\n        createLink: applyLinkToSelection\n      });\n    };\n\n    const registerExecCommands$1 = editor => {\n      editor.editorCommands.addCommands({\n        'InsertUnorderedList,InsertOrderedList': command => {\n          editor.getDoc().execCommand(command);\n          const listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');\n          if (listElm) {\n            const listParent = listElm.parentNode;\n            if (listParent && /^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) {\n              const bm = editor.selection.getBookmark();\n              editor.dom.split(listParent, listElm);\n              editor.selection.moveToBookmark(bm);\n            }\n          }\n        }\n      });\n    };\n    const registerQueryStateCommands = editor => {\n      editor.editorCommands.addCommands({\n        'InsertUnorderedList,InsertOrderedList': command => {\n          const list = editor.dom.getParent(editor.selection.getNode(), 'ul,ol');\n          return list && (command === 'insertunorderedlist' && list.tagName === 'UL' || command === 'insertorderedlist' && list.tagName === 'OL');\n        }\n      }, 'state');\n    };\n    const registerCommands$3 = editor => {\n      registerExecCommands$1(editor);\n      registerQueryStateCommands(editor);\n    };\n\n    const registerCommands$2 = editor => {\n      editor.editorCommands.addCommands({\n        insertParagraph: () => {\n          insertBreak(blockbreak, editor);\n        },\n        mceInsertNewLine: (_command, _ui, value) => {\n          insert(editor, value);\n        },\n        InsertLineBreak: (_command, _ui, _value) => {\n          insertBreak(linebreak, editor);\n        }\n      });\n    };\n\n    const registerCommands$1 = editor => {\n      editor.editorCommands.addCommands({\n        mceSelectNodeDepth: (_command, _ui, value) => {\n          let counter = 0;\n          editor.dom.getParent(editor.selection.getNode(), node => {\n            if (isElement$6(node) && counter++ === value) {\n              editor.selection.select(node);\n              return false;\n            } else {\n              return true;\n            }\n          }, editor.getBody());\n        },\n        mceSelectNode: (_command, _ui, value) => {\n          editor.selection.select(value);\n        },\n        selectAll: () => {\n          const editingHost = editor.dom.getParent(editor.selection.getStart(), isContentEditableTrue$3);\n          if (editingHost) {\n            const rng = editor.dom.createRng();\n            rng.selectNodeContents(editingHost);\n            editor.selection.setRng(rng);\n          }\n        }\n      });\n    };\n\n    const registerExecCommands = editor => {\n      editor.editorCommands.addCommands({\n        mceRemoveNode: (_command, _ui, value) => {\n          const node = value !== null && value !== void 0 ? value : editor.selection.getNode();\n          if (node !== editor.getBody()) {\n            const bm = editor.selection.getBookmark();\n            editor.dom.remove(node, true);\n            editor.selection.moveToBookmark(bm);\n          }\n        },\n        mcePrint: () => {\n          editor.getWin().print();\n        },\n        mceFocus: (_command, _ui, value) => {\n          focus(editor, value === true);\n        },\n        mceToggleVisualAid: () => {\n          editor.hasVisual = !editor.hasVisual;\n          editor.addVisual();\n        }\n      });\n    };\n    const registerCommands = editor => {\n      registerCommands$a(editor);\n      registerCommands$9(editor);\n      registerCommands$6(editor);\n      registerCommands$1(editor);\n      registerCommands$8(editor);\n      registerCommands$4(editor);\n      registerCommands$5(editor);\n      registerCommands$2(editor);\n      registerCommands$3(editor);\n      registerCommands$7(editor);\n      registerExecCommands(editor);\n    };\n\n    const selectionSafeCommands = ['toggleview'];\n    const isSelectionSafeCommand = command => contains$2(selectionSafeCommands, command.toLowerCase());\n    class EditorCommands {\n      constructor(editor) {\n        this.commands = {\n          state: {},\n          exec: {},\n          value: {}\n        };\n        this.editor = editor;\n      }\n      execCommand(command, ui = false, value, args) {\n        const editor = this.editor;\n        const lowerCaseCommand = command.toLowerCase();\n        const skipFocus = args === null || args === void 0 ? void 0 : args.skip_focus;\n        if (editor.removed) {\n          return false;\n        }\n        if (lowerCaseCommand !== 'mcefocus') {\n          if (!/^(mceAddUndoLevel|mceEndUndoLevel)$/i.test(lowerCaseCommand) && !skipFocus) {\n            editor.focus();\n          } else {\n            restore(editor);\n          }\n        }\n        const eventArgs = editor.dispatch('BeforeExecCommand', {\n          command,\n          ui,\n          value\n        });\n        if (eventArgs.isDefaultPrevented()) {\n          return false;\n        }\n        const func = this.commands.exec[lowerCaseCommand];\n        if (isFunction(func)) {\n          func(lowerCaseCommand, ui, value);\n          editor.dispatch('ExecCommand', {\n            command,\n            ui,\n            value\n          });\n          return true;\n        }\n        return false;\n      }\n      queryCommandState(command) {\n        if (!isSelectionSafeCommand(command) && this.editor.quirks.isHidden() || this.editor.removed) {\n          return false;\n        }\n        const lowerCaseCommand = command.toLowerCase();\n        const func = this.commands.state[lowerCaseCommand];\n        if (isFunction(func)) {\n          return func(lowerCaseCommand);\n        }\n        return false;\n      }\n      queryCommandValue(command) {\n        if (!isSelectionSafeCommand(command) && this.editor.quirks.isHidden() || this.editor.removed) {\n          return '';\n        }\n        const lowerCaseCommand = command.toLowerCase();\n        const func = this.commands.value[lowerCaseCommand];\n        if (isFunction(func)) {\n          return func(lowerCaseCommand);\n        }\n        return '';\n      }\n      addCommands(commandList, type = 'exec') {\n        const commands = this.commands;\n        each$d(commandList, (callback, command) => {\n          each$e(command.toLowerCase().split(','), command => {\n            commands[type][command] = callback;\n          });\n        });\n      }\n      addCommand(command, callback, scope) {\n        const lowerCaseCommand = command.toLowerCase();\n        this.commands.exec[lowerCaseCommand] = (_command, ui, value) => callback.call(scope !== null && scope !== void 0 ? scope : this.editor, ui, value);\n      }\n      queryCommandSupported(command) {\n        const lowerCaseCommand = command.toLowerCase();\n        if (this.commands.exec[lowerCaseCommand]) {\n          return true;\n        } else {\n          return false;\n        }\n      }\n      addQueryStateHandler(command, callback, scope) {\n        this.commands.state[command.toLowerCase()] = () => callback.call(scope !== null && scope !== void 0 ? scope : this.editor);\n      }\n      addQueryValueHandler(command, callback, scope) {\n        this.commands.value[command.toLowerCase()] = () => callback.call(scope !== null && scope !== void 0 ? scope : this.editor);\n      }\n    }\n\n    const internalContentEditableAttr = 'data-mce-contenteditable';\n    const toggleClass = (elm, cls, state) => {\n      if (has(elm, cls) && !state) {\n        remove$8(elm, cls);\n      } else if (state) {\n        add$2(elm, cls);\n      }\n    };\n    const setEditorCommandState = (editor, cmd, state) => {\n      try {\n        editor.getDoc().execCommand(cmd, false, String(state));\n      } catch (ex) {\n      }\n    };\n    const setContentEditable = (elm, state) => {\n      elm.dom.contentEditable = state ? 'true' : 'false';\n    };\n    const switchOffContentEditableTrue = elm => {\n      each$e(descendants(elm, '*[contenteditable=\"true\"]'), elm => {\n        set$2(elm, internalContentEditableAttr, 'true');\n        setContentEditable(elm, false);\n      });\n    };\n    const switchOnContentEditableTrue = elm => {\n      each$e(descendants(elm, `*[${ internalContentEditableAttr }=\"true\"]`), elm => {\n        remove$b(elm, internalContentEditableAttr);\n        setContentEditable(elm, true);\n      });\n    };\n    const removeFakeSelection = editor => {\n      Optional.from(editor.selection.getNode()).each(elm => {\n        elm.removeAttribute('data-mce-selected');\n      });\n    };\n    const restoreFakeSelection = editor => {\n      editor.selection.setRng(editor.selection.getRng());\n    };\n    const toggleReadOnly = (editor, state) => {\n      const body = SugarElement.fromDom(editor.getBody());\n      toggleClass(body, 'mce-content-readonly', state);\n      if (state) {\n        editor.selection.controlSelection.hideResizeRect();\n        editor._selectionOverrides.hideFakeCaret();\n        removeFakeSelection(editor);\n        editor.readonly = true;\n        setContentEditable(body, false);\n        switchOffContentEditableTrue(body);\n      } else {\n        editor.readonly = false;\n        setContentEditable(body, true);\n        switchOnContentEditableTrue(body);\n        setEditorCommandState(editor, 'StyleWithCSS', false);\n        setEditorCommandState(editor, 'enableInlineTableEditing', false);\n        setEditorCommandState(editor, 'enableObjectResizing', false);\n        if (hasEditorOrUiFocus(editor)) {\n          editor.focus();\n        }\n        restoreFakeSelection(editor);\n        editor.nodeChanged();\n      }\n    };\n    const isReadOnly = editor => editor.readonly;\n    const registerFilters = editor => {\n      editor.parser.addAttributeFilter('contenteditable', nodes => {\n        if (isReadOnly(editor)) {\n          each$e(nodes, node => {\n            node.attr(internalContentEditableAttr, node.attr('contenteditable'));\n            node.attr('contenteditable', 'false');\n          });\n        }\n      });\n      editor.serializer.addAttributeFilter(internalContentEditableAttr, nodes => {\n        if (isReadOnly(editor)) {\n          each$e(nodes, node => {\n            node.attr('contenteditable', node.attr(internalContentEditableAttr));\n          });\n        }\n      });\n      editor.serializer.addTempAttr(internalContentEditableAttr);\n    };\n    const registerReadOnlyContentFilters = editor => {\n      if (editor.serializer) {\n        registerFilters(editor);\n      } else {\n        editor.on('PreInit', () => {\n          registerFilters(editor);\n        });\n      }\n    };\n    const isClickEvent = e => e.type === 'click';\n    const allowedEvents = ['copy'];\n    const isReadOnlyAllowedEvent = e => contains$2(allowedEvents, e.type);\n    const getAnchorHrefOpt = (editor, elm) => {\n      const isRoot = elm => eq(elm, SugarElement.fromDom(editor.getBody()));\n      return closest$3(elm, 'a', isRoot).bind(a => getOpt(a, 'href'));\n    };\n    const processReadonlyEvents = (editor, e) => {\n      if (isClickEvent(e) && !VK.metaKeyPressed(e)) {\n        const elm = SugarElement.fromDom(e.target);\n        getAnchorHrefOpt(editor, elm).each(href => {\n          e.preventDefault();\n          if (/^#/.test(href)) {\n            const targetEl = editor.dom.select(`${ href },[name=\"${ removeLeading(href, '#') }\"]`);\n            if (targetEl.length) {\n              editor.selection.scrollIntoView(targetEl[0], true);\n            }\n          } else {\n            window.open(href, '_blank', 'rel=noopener noreferrer,menubar=yes,toolbar=yes,location=yes,status=yes,resizable=yes,scrollbars=yes');\n          }\n        });\n      } else if (isReadOnlyAllowedEvent(e)) {\n        editor.dispatch(e.type, e);\n      }\n    };\n    const registerReadOnlySelectionBlockers = editor => {\n      editor.on('ShowCaret', e => {\n        if (isReadOnly(editor)) {\n          e.preventDefault();\n        }\n      });\n      editor.on('ObjectSelected', e => {\n        if (isReadOnly(editor)) {\n          e.preventDefault();\n        }\n      });\n    };\n\n    const nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel', ' ');\n    class EventDispatcher {\n      constructor(settings) {\n        this.bindings = {};\n        this.settings = settings || {};\n        this.scope = this.settings.scope || this;\n        this.toggleEvent = this.settings.toggleEvent || never;\n      }\n      static isNative(name) {\n        return !!nativeEvents[name.toLowerCase()];\n      }\n      fire(name, args) {\n        return this.dispatch(name, args);\n      }\n      dispatch(name, args) {\n        const lcName = name.toLowerCase();\n        const event = normalize$3(lcName, args !== null && args !== void 0 ? args : {}, this.scope);\n        if (this.settings.beforeFire) {\n          this.settings.beforeFire(event);\n        }\n        const handlers = this.bindings[lcName];\n        if (handlers) {\n          for (let i = 0, l = handlers.length; i < l; i++) {\n            const callback = handlers[i];\n            if (callback.removed) {\n              continue;\n            }\n            if (callback.once) {\n              this.off(lcName, callback.func);\n            }\n            if (event.isImmediatePropagationStopped()) {\n              return event;\n            }\n            if (callback.func.call(this.scope, event) === false) {\n              event.preventDefault();\n              return event;\n            }\n          }\n        }\n        return event;\n      }\n      on(name, callback, prepend, extra) {\n        if (callback === false) {\n          callback = never;\n        }\n        if (callback) {\n          const wrappedCallback = {\n            func: callback,\n            removed: false\n          };\n          if (extra) {\n            Tools.extend(wrappedCallback, extra);\n          }\n          const names = name.toLowerCase().split(' ');\n          let i = names.length;\n          while (i--) {\n            const currentName = names[i];\n            let handlers = this.bindings[currentName];\n            if (!handlers) {\n              handlers = [];\n              this.toggleEvent(currentName, true);\n            }\n            if (prepend) {\n              handlers = [\n                wrappedCallback,\n                ...handlers\n              ];\n            } else {\n              handlers = [\n                ...handlers,\n                wrappedCallback\n              ];\n            }\n            this.bindings[currentName] = handlers;\n          }\n        }\n        return this;\n      }\n      off(name, callback) {\n        if (name) {\n          const names = name.toLowerCase().split(' ');\n          let i = names.length;\n          while (i--) {\n            const currentName = names[i];\n            let handlers = this.bindings[currentName];\n            if (!currentName) {\n              each$d(this.bindings, (_value, bindingName) => {\n                this.toggleEvent(bindingName, false);\n                delete this.bindings[bindingName];\n              });\n              return this;\n            }\n            if (handlers) {\n              if (!callback) {\n                handlers.length = 0;\n              } else {\n                const filteredHandlers = partition$2(handlers, handler => handler.func === callback);\n                handlers = filteredHandlers.fail;\n                this.bindings[currentName] = handlers;\n                each$e(filteredHandlers.pass, handler => {\n                  handler.removed = true;\n                });\n              }\n              if (!handlers.length) {\n                this.toggleEvent(name, false);\n                delete this.bindings[currentName];\n              }\n            }\n          }\n        } else {\n          each$d(this.bindings, (_value, name) => {\n            this.toggleEvent(name, false);\n          });\n          this.bindings = {};\n        }\n        return this;\n      }\n      once(name, callback, prepend) {\n        return this.on(name, callback, prepend, { once: true });\n      }\n      has(name) {\n        name = name.toLowerCase();\n        const binding = this.bindings[name];\n        return !(!binding || binding.length === 0);\n      }\n    }\n\n    const getEventDispatcher = obj => {\n      if (!obj._eventDispatcher) {\n        obj._eventDispatcher = new EventDispatcher({\n          scope: obj,\n          toggleEvent: (name, state) => {\n            if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) {\n              obj.toggleNativeEvent(name, state);\n            }\n          }\n        });\n      }\n      return obj._eventDispatcher;\n    };\n    const Observable = {\n      fire(name, args, bubble) {\n        return this.dispatch(name, args, bubble);\n      },\n      dispatch(name, args, bubble) {\n        const self = this;\n        if (self.removed && name !== 'remove' && name !== 'detach') {\n          return normalize$3(name.toLowerCase(), args !== null && args !== void 0 ? args : {}, self);\n        }\n        const dispatcherArgs = getEventDispatcher(self).dispatch(name, args);\n        if (bubble !== false && self.parent) {\n          let parent = self.parent();\n          while (parent && !dispatcherArgs.isPropagationStopped()) {\n            parent.dispatch(name, dispatcherArgs, false);\n            parent = parent.parent ? parent.parent() : undefined;\n          }\n        }\n        return dispatcherArgs;\n      },\n      on(name, callback, prepend) {\n        return getEventDispatcher(this).on(name, callback, prepend);\n      },\n      off(name, callback) {\n        return getEventDispatcher(this).off(name, callback);\n      },\n      once(name, callback) {\n        return getEventDispatcher(this).once(name, callback);\n      },\n      hasEventListeners(name) {\n        return getEventDispatcher(this).has(name);\n      }\n    };\n\n    const DOM$2 = DOMUtils.DOM;\n    let customEventRootDelegates;\n    const getEventTarget = (editor, eventName) => {\n      if (eventName === 'selectionchange') {\n        return editor.getDoc();\n      }\n      if (!editor.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(eventName)) {\n        return editor.getDoc().documentElement;\n      }\n      const eventRoot = getEventRoot(editor);\n      if (eventRoot) {\n        if (!editor.eventRoot) {\n          editor.eventRoot = DOM$2.select(eventRoot)[0];\n        }\n        return editor.eventRoot;\n      }\n      return editor.getBody();\n    };\n    const isListening = editor => !editor.hidden && !isReadOnly(editor);\n    const fireEvent = (editor, eventName, e) => {\n      if (isListening(editor)) {\n        editor.dispatch(eventName, e);\n      } else if (isReadOnly(editor)) {\n        processReadonlyEvents(editor, e);\n      }\n    };\n    const bindEventDelegate = (editor, eventName) => {\n      if (!editor.delegates) {\n        editor.delegates = {};\n      }\n      if (editor.delegates[eventName] || editor.removed) {\n        return;\n      }\n      const eventRootElm = getEventTarget(editor, eventName);\n      if (getEventRoot(editor)) {\n        if (!customEventRootDelegates) {\n          customEventRootDelegates = {};\n          editor.editorManager.on('removeEditor', () => {\n            if (!editor.editorManager.activeEditor) {\n              if (customEventRootDelegates) {\n                each$d(customEventRootDelegates, (_value, name) => {\n                  editor.dom.unbind(getEventTarget(editor, name));\n                });\n                customEventRootDelegates = null;\n              }\n            }\n          });\n        }\n        if (customEventRootDelegates[eventName]) {\n          return;\n        }\n        const delegate = e => {\n          const target = e.target;\n          const editors = editor.editorManager.get();\n          let i = editors.length;\n          while (i--) {\n            const body = editors[i].getBody();\n            if (body === target || DOM$2.isChildOf(target, body)) {\n              fireEvent(editors[i], eventName, e);\n            }\n          }\n        };\n        customEventRootDelegates[eventName] = delegate;\n        DOM$2.bind(eventRootElm, eventName, delegate);\n      } else {\n        const delegate = e => {\n          fireEvent(editor, eventName, e);\n        };\n        DOM$2.bind(eventRootElm, eventName, delegate);\n        editor.delegates[eventName] = delegate;\n      }\n    };\n    const EditorObservable = {\n      ...Observable,\n      bindPendingEventDelegates() {\n        const self = this;\n        Tools.each(self._pendingNativeEvents, name => {\n          bindEventDelegate(self, name);\n        });\n      },\n      toggleNativeEvent(name, state) {\n        const self = this;\n        if (name === 'focus' || name === 'blur') {\n          return;\n        }\n        if (self.removed) {\n          return;\n        }\n        if (state) {\n          if (self.initialized) {\n            bindEventDelegate(self, name);\n          } else {\n            if (!self._pendingNativeEvents) {\n              self._pendingNativeEvents = [name];\n            } else {\n              self._pendingNativeEvents.push(name);\n            }\n          }\n        } else if (self.initialized && self.delegates) {\n          self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n          delete self.delegates[name];\n        }\n      },\n      unbindAllNativeEvents() {\n        const self = this;\n        const body = self.getBody();\n        const dom = self.dom;\n        if (self.delegates) {\n          each$d(self.delegates, (value, name) => {\n            self.dom.unbind(getEventTarget(self, name), name, value);\n          });\n          delete self.delegates;\n        }\n        if (!self.inline && body && dom) {\n          body.onload = null;\n          dom.unbind(self.getWin());\n          dom.unbind(self.getDoc());\n        }\n        if (dom) {\n          dom.unbind(body);\n          dom.unbind(self.getContainer());\n        }\n      }\n    };\n\n    const stringListProcessor = value => {\n      if (isString(value)) {\n        return {\n          value: value.split(/[ ,]/),\n          valid: true\n        };\n      } else if (isArrayOf(value, isString)) {\n        return {\n          value,\n          valid: true\n        };\n      } else {\n        return {\n          valid: false,\n          message: `The value must be a string[] or a comma/space separated string.`\n        };\n      }\n    };\n    const getBuiltInProcessor = type => {\n      const validator = (() => {\n        switch (type) {\n        case 'array':\n          return isArray$1;\n        case 'boolean':\n          return isBoolean;\n        case 'function':\n          return isFunction;\n        case 'number':\n          return isNumber;\n        case 'object':\n          return isObject;\n        case 'string':\n          return isString;\n        case 'string[]':\n          return stringListProcessor;\n        case 'object[]':\n          return val => isArrayOf(val, isObject);\n        case 'regexp':\n          return val => is$4(val, RegExp);\n        default:\n          return always;\n        }\n      })();\n      return value => processValue(value, validator, `The value must be a ${ type }.`);\n    };\n    const isBuiltInSpec = spec => isString(spec.processor);\n    const getErrorMessage = (message, result) => {\n      const additionalText = isEmpty$3(result.message) ? '' : `. ${ result.message }`;\n      return message + additionalText;\n    };\n    const isValidResult = result => result.valid;\n    const processValue = (value, processor, message = '') => {\n      const result = processor(value);\n      if (isBoolean(result)) {\n        return result ? {\n          value: value,\n          valid: true\n        } : {\n          valid: false,\n          message\n        };\n      } else {\n        return result;\n      }\n    };\n    const processDefaultValue = (name, defaultValue, processor) => {\n      if (!isUndefined(defaultValue)) {\n        const result = processValue(defaultValue, processor);\n        if (isValidResult(result)) {\n          return result.value;\n        } else {\n          console.error(getErrorMessage(`Invalid default value passed for the \"${ name }\" option`, result));\n        }\n      }\n      return undefined;\n    };\n    const create$5 = (editor, initialOptions) => {\n      const registry = {};\n      const values = {};\n      const setValue = (name, value, processor) => {\n        const result = processValue(value, processor);\n        if (isValidResult(result)) {\n          values[name] = result.value;\n          return true;\n        } else {\n          console.warn(getErrorMessage(`Invalid value passed for the ${ name } option`, result));\n          return false;\n        }\n      };\n      const register = (name, spec) => {\n        const processor = isBuiltInSpec(spec) ? getBuiltInProcessor(spec.processor) : spec.processor;\n        const defaultValue = processDefaultValue(name, spec.default, processor);\n        registry[name] = {\n          ...spec,\n          default: defaultValue,\n          processor\n        };\n        const initValue = get$a(values, name).orThunk(() => get$a(initialOptions, name));\n        initValue.each(value => setValue(name, value, processor));\n      };\n      const isRegistered = name => has$2(registry, name);\n      const get = name => get$a(values, name).orThunk(() => get$a(registry, name).map(spec => spec.default)).getOrUndefined();\n      const set = (name, value) => {\n        if (!isRegistered(name)) {\n          console.warn(`\"${ name }\" is not a registered option. Ensure the option has been registered before setting a value.`);\n          return false;\n        } else {\n          const spec = registry[name];\n          if (spec.immutable) {\n            console.error(`\"${ name }\" is an immutable option and cannot be updated`);\n            return false;\n          } else {\n            return setValue(name, value, spec.processor);\n          }\n        }\n      };\n      const unset = name => {\n        const registered = isRegistered(name);\n        if (registered) {\n          delete values[name];\n        }\n        return registered;\n      };\n      const isSet = name => has$2(values, name);\n      return {\n        register,\n        isRegistered,\n        get,\n        set,\n        unset,\n        isSet\n      };\n    };\n\n    const defaultModes = [\n      'design',\n      'readonly'\n    ];\n    const switchToMode = (editor, activeMode, availableModes, mode) => {\n      const oldMode = availableModes[activeMode.get()];\n      const newMode = availableModes[mode];\n      try {\n        newMode.activate();\n      } catch (e) {\n        console.error(`problem while activating editor mode ${ mode }:`, e);\n        return;\n      }\n      oldMode.deactivate();\n      if (oldMode.editorReadOnly !== newMode.editorReadOnly) {\n        toggleReadOnly(editor, newMode.editorReadOnly);\n      }\n      activeMode.set(mode);\n      fireSwitchMode(editor, mode);\n    };\n    const setMode = (editor, availableModes, activeMode, mode) => {\n      if (mode === activeMode.get()) {\n        return;\n      } else if (!has$2(availableModes, mode)) {\n        throw new Error(`Editor mode '${ mode }' is invalid`);\n      }\n      if (editor.initialized) {\n        switchToMode(editor, activeMode, availableModes, mode);\n      } else {\n        editor.on('init', () => switchToMode(editor, activeMode, availableModes, mode));\n      }\n    };\n    const registerMode = (availableModes, mode, api) => {\n      if (contains$2(defaultModes, mode)) {\n        throw new Error(`Cannot override default mode ${ mode }`);\n      }\n      return {\n        ...availableModes,\n        [mode]: {\n          ...api,\n          deactivate: () => {\n            try {\n              api.deactivate();\n            } catch (e) {\n              console.error(`problem while deactivating editor mode ${ mode }:`, e);\n            }\n          }\n        }\n      };\n    };\n\n    const create$4 = editor => {\n      const activeMode = Cell('design');\n      const availableModes = Cell({\n        design: {\n          activate: noop,\n          deactivate: noop,\n          editorReadOnly: false\n        },\n        readonly: {\n          activate: noop,\n          deactivate: noop,\n          editorReadOnly: true\n        }\n      });\n      registerReadOnlyContentFilters(editor);\n      registerReadOnlySelectionBlockers(editor);\n      return {\n        isReadOnly: () => isReadOnly(editor),\n        set: mode => setMode(editor, availableModes.get(), activeMode, mode),\n        get: () => activeMode.get(),\n        register: (mode, api) => {\n          availableModes.set(registerMode(availableModes.get(), mode, api));\n        }\n      };\n    };\n\n    const each$2 = Tools.each, explode = Tools.explode;\n    const keyCodeLookup = {\n      f1: 112,\n      f2: 113,\n      f3: 114,\n      f4: 115,\n      f5: 116,\n      f6: 117,\n      f7: 118,\n      f8: 119,\n      f9: 120,\n      f10: 121,\n      f11: 122,\n      f12: 123\n    };\n    const modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access');\n    const isModifier = key => key in modifierNames;\n    const parseShortcut = pattern => {\n      const shortcut = {};\n      const isMac = Env.os.isMacOS() || Env.os.isiOS();\n      each$2(explode(pattern.toLowerCase(), '+'), value => {\n        if (isModifier(value)) {\n          shortcut[value] = true;\n        } else {\n          if (/^[0-9]{2,}$/.test(value)) {\n            shortcut.keyCode = parseInt(value, 10);\n          } else {\n            shortcut.charCode = value.charCodeAt(0);\n            shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);\n          }\n        }\n      });\n      const id = [shortcut.keyCode];\n      let key;\n      for (key in modifierNames) {\n        if (shortcut[key]) {\n          id.push(key);\n        } else {\n          shortcut[key] = false;\n        }\n      }\n      shortcut.id = id.join(',');\n      if (shortcut.access) {\n        shortcut.alt = true;\n        if (isMac) {\n          shortcut.ctrl = true;\n        } else {\n          shortcut.shift = true;\n        }\n      }\n      if (shortcut.meta) {\n        if (isMac) {\n          shortcut.meta = true;\n        } else {\n          shortcut.ctrl = true;\n          shortcut.meta = false;\n        }\n      }\n      return shortcut;\n    };\n    class Shortcuts {\n      constructor(editor) {\n        this.shortcuts = {};\n        this.pendingPatterns = [];\n        this.editor = editor;\n        const self = this;\n        editor.on('keyup keypress keydown', e => {\n          if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) {\n            each$2(self.shortcuts, shortcut => {\n              if (self.matchShortcut(e, shortcut)) {\n                self.pendingPatterns = shortcut.subpatterns.slice(0);\n                if (e.type === 'keydown') {\n                  self.executeShortcutAction(shortcut);\n                }\n              }\n            });\n            if (self.matchShortcut(e, self.pendingPatterns[0])) {\n              if (self.pendingPatterns.length === 1) {\n                if (e.type === 'keydown') {\n                  self.executeShortcutAction(self.pendingPatterns[0]);\n                }\n              }\n              self.pendingPatterns.shift();\n            }\n          }\n        });\n      }\n      add(pattern, desc, cmdFunc, scope) {\n        const self = this;\n        const func = self.normalizeCommandFunc(cmdFunc);\n        each$2(explode(Tools.trim(pattern)), pattern => {\n          const shortcut = self.createShortcut(pattern, desc, func, scope);\n          self.shortcuts[shortcut.id] = shortcut;\n        });\n        return true;\n      }\n      remove(pattern) {\n        const shortcut = this.createShortcut(pattern);\n        if (this.shortcuts[shortcut.id]) {\n          delete this.shortcuts[shortcut.id];\n          return true;\n        }\n        return false;\n      }\n      normalizeCommandFunc(cmdFunc) {\n        const self = this;\n        const cmd = cmdFunc;\n        if (typeof cmd === 'string') {\n          return () => {\n            self.editor.execCommand(cmd, false, null);\n          };\n        } else if (Tools.isArray(cmd)) {\n          return () => {\n            self.editor.execCommand(cmd[0], cmd[1], cmd[2]);\n          };\n        } else {\n          return cmd;\n        }\n      }\n      createShortcut(pattern, desc, cmdFunc, scope) {\n        const shortcuts = Tools.map(explode(pattern, '>'), parseShortcut);\n        shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], {\n          func: cmdFunc,\n          scope: scope || this.editor\n        });\n        return Tools.extend(shortcuts[0], {\n          desc: this.editor.translate(desc),\n          subpatterns: shortcuts.slice(1)\n        });\n      }\n      hasModifier(e) {\n        return e.altKey || e.ctrlKey || e.metaKey;\n      }\n      isFunctionKey(e) {\n        return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123;\n      }\n      matchShortcut(e, shortcut) {\n        if (!shortcut) {\n          return false;\n        }\n        if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) {\n          return false;\n        }\n        if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) {\n          return false;\n        }\n        if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) {\n          e.preventDefault();\n          return true;\n        }\n        return false;\n      }\n      executeShortcutAction(shortcut) {\n        return shortcut.func ? shortcut.func.call(shortcut.scope) : null;\n      }\n    }\n\n    const create$3 = () => {\n      const buttons = {};\n      const menuItems = {};\n      const popups = {};\n      const icons = {};\n      const contextMenus = {};\n      const contextToolbars = {};\n      const sidebars = {};\n      const views = {};\n      const add = (collection, type) => (name, spec) => {\n        collection[name.toLowerCase()] = {\n          ...spec,\n          type\n        };\n      };\n      const addIcon = (name, svgData) => icons[name.toLowerCase()] = svgData;\n      return {\n        addButton: add(buttons, 'button'),\n        addGroupToolbarButton: add(buttons, 'grouptoolbarbutton'),\n        addToggleButton: add(buttons, 'togglebutton'),\n        addMenuButton: add(buttons, 'menubutton'),\n        addSplitButton: add(buttons, 'splitbutton'),\n        addMenuItem: add(menuItems, 'menuitem'),\n        addNestedMenuItem: add(menuItems, 'nestedmenuitem'),\n        addToggleMenuItem: add(menuItems, 'togglemenuitem'),\n        addAutocompleter: add(popups, 'autocompleter'),\n        addContextMenu: add(contextMenus, 'contextmenu'),\n        addContextToolbar: add(contextToolbars, 'contexttoolbar'),\n        addContextForm: add(contextToolbars, 'contextform'),\n        addSidebar: add(sidebars, 'sidebar'),\n        addView: add(views, 'views'),\n        addIcon,\n        getAll: () => ({\n          buttons,\n          menuItems,\n          icons,\n          popups,\n          contextMenus,\n          contextToolbars,\n          sidebars,\n          views\n        })\n      };\n    };\n\n    const registry = () => {\n      const bridge = create$3();\n      return {\n        addAutocompleter: bridge.addAutocompleter,\n        addButton: bridge.addButton,\n        addContextForm: bridge.addContextForm,\n        addContextMenu: bridge.addContextMenu,\n        addContextToolbar: bridge.addContextToolbar,\n        addIcon: bridge.addIcon,\n        addMenuButton: bridge.addMenuButton,\n        addMenuItem: bridge.addMenuItem,\n        addNestedMenuItem: bridge.addNestedMenuItem,\n        addSidebar: bridge.addSidebar,\n        addSplitButton: bridge.addSplitButton,\n        addToggleButton: bridge.addToggleButton,\n        addGroupToolbarButton: bridge.addGroupToolbarButton,\n        addToggleMenuItem: bridge.addToggleMenuItem,\n        addView: bridge.addView,\n        getAll: bridge.getAll\n      };\n    };\n\n    const DOM$1 = DOMUtils.DOM;\n    const extend = Tools.extend, each$1 = Tools.each;\n    class Editor {\n      constructor(id, options, editorManager) {\n        this.plugins = {};\n        this.contentCSS = [];\n        this.contentStyles = [];\n        this.loadedCSS = {};\n        this.isNotDirty = false;\n        this.composing = false;\n        this.destroyed = false;\n        this.hasHiddenInput = false;\n        this.iframeElement = null;\n        this.initialized = false;\n        this.readonly = false;\n        this.removed = false;\n        this.startContent = '';\n        this._pendingNativeEvents = [];\n        this._skinLoaded = false;\n        this.editorManager = editorManager;\n        this.documentBaseUrl = editorManager.documentBaseURL;\n        extend(this, EditorObservable);\n        const self = this;\n        this.id = id;\n        this.hidden = false;\n        const normalizedOptions = normalizeOptions(editorManager.defaultOptions, options);\n        this.options = create$5(self, normalizedOptions);\n        register$7(self);\n        const getOption = this.options.get;\n        if (getOption('deprecation_warnings')) {\n          logWarnings(options, normalizedOptions);\n        }\n        const suffix = getOption('suffix');\n        if (suffix) {\n          editorManager.suffix = suffix;\n        }\n        this.suffix = editorManager.suffix;\n        const baseUrl = getOption('base_url');\n        if (baseUrl) {\n          editorManager._setBaseUrl(baseUrl);\n        }\n        this.baseUri = editorManager.baseURI;\n        const referrerPolicy = getReferrerPolicy(self);\n        if (referrerPolicy) {\n          ScriptLoader.ScriptLoader._setReferrerPolicy(referrerPolicy);\n          DOMUtils.DOM.styleSheetLoader._setReferrerPolicy(referrerPolicy);\n        }\n        const contentCssCors = hasContentCssCors(self);\n        if (isNonNullable(contentCssCors)) {\n          DOMUtils.DOM.styleSheetLoader._setContentCssCors(contentCssCors);\n        }\n        AddOnManager.languageLoad = getOption('language_load');\n        AddOnManager.baseURL = editorManager.baseURL;\n        this.setDirty(false);\n        this.documentBaseURI = new URI(getDocumentBaseUrl(self), { base_uri: this.baseUri });\n        this.baseURI = this.baseUri;\n        this.inline = isInline(self);\n        this.hasVisual = isVisualAidsEnabled(self);\n        this.shortcuts = new Shortcuts(this);\n        this.editorCommands = new EditorCommands(this);\n        registerCommands(this);\n        const cacheSuffix = getOption('cache_suffix');\n        if (cacheSuffix) {\n          Env.cacheSuffix = cacheSuffix.replace(/^[\\?\\&]+/, '');\n        }\n        this.ui = {\n          registry: registry(),\n          styleSheetLoader: undefined,\n          show: noop,\n          hide: noop,\n          setEnabled: noop,\n          isEnabled: always\n        };\n        this.mode = create$4(self);\n        editorManager.dispatch('SetupEditor', { editor: this });\n        const setupCallback = getSetupCallback(self);\n        if (isFunction(setupCallback)) {\n          setupCallback.call(self, self);\n        }\n      }\n      render() {\n        render(this);\n      }\n      focus(skipFocus) {\n        this.execCommand('mceFocus', false, skipFocus);\n      }\n      hasFocus() {\n        return hasFocus(this);\n      }\n      translate(text) {\n        return I18n.translate(text);\n      }\n      getParam(name, defaultVal, type) {\n        const options = this.options;\n        if (!options.isRegistered(name)) {\n          if (isNonNullable(type)) {\n            options.register(name, {\n              processor: type,\n              default: defaultVal\n            });\n          } else {\n            options.register(name, {\n              processor: always,\n              default: defaultVal\n            });\n          }\n        }\n        return !options.isSet(name) && !isUndefined(defaultVal) ? defaultVal : options.get(name);\n      }\n      hasPlugin(name, loaded) {\n        const hasPlugin = contains$2(getPlugins(this), name);\n        if (hasPlugin) {\n          return loaded ? PluginManager.get(name) !== undefined : true;\n        } else {\n          return false;\n        }\n      }\n      nodeChanged(args) {\n        this._nodeChangeDispatcher.nodeChanged(args);\n      }\n      addCommand(name, callback, scope) {\n        this.editorCommands.addCommand(name, callback, scope);\n      }\n      addQueryStateHandler(name, callback, scope) {\n        this.editorCommands.addQueryStateHandler(name, callback, scope);\n      }\n      addQueryValueHandler(name, callback, scope) {\n        this.editorCommands.addQueryValueHandler(name, callback, scope);\n      }\n      addShortcut(pattern, desc, cmdFunc, scope) {\n        this.shortcuts.add(pattern, desc, cmdFunc, scope);\n      }\n      execCommand(cmd, ui, value, args) {\n        return this.editorCommands.execCommand(cmd, ui, value, args);\n      }\n      queryCommandState(cmd) {\n        return this.editorCommands.queryCommandState(cmd);\n      }\n      queryCommandValue(cmd) {\n        return this.editorCommands.queryCommandValue(cmd);\n      }\n      queryCommandSupported(cmd) {\n        return this.editorCommands.queryCommandSupported(cmd);\n      }\n      show() {\n        const self = this;\n        if (self.hidden) {\n          self.hidden = false;\n          if (self.inline) {\n            self.getBody().contentEditable = 'true';\n          } else {\n            DOM$1.show(self.getContainer());\n            DOM$1.hide(self.id);\n          }\n          self.load();\n          self.dispatch('show');\n        }\n      }\n      hide() {\n        const self = this;\n        if (!self.hidden) {\n          self.save();\n          if (self.inline) {\n            self.getBody().contentEditable = 'false';\n            if (self === self.editorManager.focusedEditor) {\n              self.editorManager.focusedEditor = null;\n            }\n          } else {\n            DOM$1.hide(self.getContainer());\n            DOM$1.setStyle(self.id, 'display', self.orgDisplay);\n          }\n          self.hidden = true;\n          self.dispatch('hide');\n        }\n      }\n      isHidden() {\n        return this.hidden;\n      }\n      setProgressState(state, time) {\n        this.dispatch('ProgressState', {\n          state,\n          time\n        });\n      }\n      load(args = {}) {\n        const self = this;\n        const elm = self.getElement();\n        if (self.removed) {\n          return '';\n        }\n        if (elm) {\n          const loadArgs = {\n            ...args,\n            load: true\n          };\n          const value = isTextareaOrInput(elm) ? elm.value : elm.innerHTML;\n          const html = self.setContent(value, loadArgs);\n          if (!loadArgs.no_events) {\n            self.dispatch('LoadContent', {\n              ...loadArgs,\n              element: elm\n            });\n          }\n          return html;\n        } else {\n          return '';\n        }\n      }\n      save(args = {}) {\n        const self = this;\n        let elm = self.getElement();\n        if (!elm || !self.initialized || self.removed) {\n          return '';\n        }\n        const getArgs = {\n          ...args,\n          save: true,\n          element: elm\n        };\n        let html = self.getContent(getArgs);\n        const saveArgs = {\n          ...getArgs,\n          content: html\n        };\n        if (!saveArgs.no_events) {\n          self.dispatch('SaveContent', saveArgs);\n        }\n        if (saveArgs.format === 'raw') {\n          self.dispatch('RawSaveContent', saveArgs);\n        }\n        html = saveArgs.content;\n        if (!isTextareaOrInput(elm)) {\n          if (args.is_removing || !self.inline) {\n            elm.innerHTML = html;\n          }\n          const form = DOM$1.getParent(self.id, 'form');\n          if (form) {\n            each$1(form.elements, elm => {\n              if (elm.name === self.id) {\n                elm.value = html;\n                return false;\n              } else {\n                return true;\n              }\n            });\n          }\n        } else {\n          elm.value = html;\n        }\n        saveArgs.element = getArgs.element = elm = null;\n        if (saveArgs.set_dirty !== false) {\n          self.setDirty(false);\n        }\n        return html;\n      }\n      setContent(content, args) {\n        return setContent(this, content, args);\n      }\n      getContent(args) {\n        return getContent(this, args);\n      }\n      insertContent(content, args) {\n        if (args) {\n          content = extend({ content }, args);\n        }\n        this.execCommand('mceInsertContent', false, content);\n      }\n      resetContent(initialContent) {\n        if (initialContent === undefined) {\n          setContent(this, this.startContent, { format: 'raw' });\n        } else {\n          setContent(this, initialContent);\n        }\n        this.undoManager.reset();\n        this.setDirty(false);\n        this.nodeChanged();\n      }\n      isDirty() {\n        return !this.isNotDirty;\n      }\n      setDirty(state) {\n        const oldState = !this.isNotDirty;\n        this.isNotDirty = !state;\n        if (state && state !== oldState) {\n          this.dispatch('dirty');\n        }\n      }\n      getContainer() {\n        const self = this;\n        if (!self.container) {\n          self.container = self.editorContainer || DOM$1.get(self.id + '_parent');\n        }\n        return self.container;\n      }\n      getContentAreaContainer() {\n        return this.contentAreaContainer;\n      }\n      getElement() {\n        if (!this.targetElm) {\n          this.targetElm = DOM$1.get(this.id);\n        }\n        return this.targetElm;\n      }\n      getWin() {\n        const self = this;\n        if (!self.contentWindow) {\n          const elm = self.iframeElement;\n          if (elm) {\n            self.contentWindow = elm.contentWindow;\n          }\n        }\n        return self.contentWindow;\n      }\n      getDoc() {\n        const self = this;\n        if (!self.contentDocument) {\n          const win = self.getWin();\n          if (win) {\n            self.contentDocument = win.document;\n          }\n        }\n        return self.contentDocument;\n      }\n      getBody() {\n        var _a, _b;\n        const doc = this.getDoc();\n        return (_b = (_a = this.bodyElement) !== null && _a !== void 0 ? _a : doc === null || doc === void 0 ? void 0 : doc.body) !== null && _b !== void 0 ? _b : null;\n      }\n      convertURL(url, name, elm) {\n        const self = this, getOption = self.options.get;\n        const urlConverterCallback = getUrlConverterCallback(self);\n        if (isFunction(urlConverterCallback)) {\n          return urlConverterCallback.call(self, url, elm, true, name);\n        }\n        if (!getOption('convert_urls') || elm === 'link' || isObject(elm) && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) {\n          return url;\n        }\n        if (getOption('relative_urls')) {\n          return self.documentBaseURI.toRelative(url);\n        }\n        url = self.documentBaseURI.toAbsolute(url, getOption('remove_script_host'));\n        return url;\n      }\n      addVisual(elm) {\n        addVisual(this, elm);\n      }\n      remove() {\n        remove$1(this);\n      }\n      destroy(automatic) {\n        destroy(this, automatic);\n      }\n      uploadImages() {\n        return this.editorUpload.uploadImages();\n      }\n      _scanForImages() {\n        return this.editorUpload.scanForImages();\n      }\n    }\n\n    const DOM = DOMUtils.DOM;\n    const each = Tools.each;\n    let boundGlobalEvents = false;\n    let beforeUnloadDelegate;\n    let editors = [];\n    const globalEventDelegate = e => {\n      const type = e.type;\n      each(EditorManager.get(), editor => {\n        switch (type) {\n        case 'scroll':\n          editor.dispatch('ScrollWindow', e);\n          break;\n        case 'resize':\n          editor.dispatch('ResizeWindow', e);\n          break;\n        }\n      });\n    };\n    const toggleGlobalEvents = state => {\n      if (state !== boundGlobalEvents) {\n        const DOM = DOMUtils.DOM;\n        if (state) {\n          DOM.bind(window, 'resize', globalEventDelegate);\n          DOM.bind(window, 'scroll', globalEventDelegate);\n        } else {\n          DOM.unbind(window, 'resize', globalEventDelegate);\n          DOM.unbind(window, 'scroll', globalEventDelegate);\n        }\n        boundGlobalEvents = state;\n      }\n    };\n    const removeEditorFromList = targetEditor => {\n      const oldEditors = editors;\n      editors = filter$5(editors, editor => {\n        return targetEditor !== editor;\n      });\n      if (EditorManager.activeEditor === targetEditor) {\n        EditorManager.activeEditor = editors.length > 0 ? editors[0] : null;\n      }\n      if (EditorManager.focusedEditor === targetEditor) {\n        EditorManager.focusedEditor = null;\n      }\n      return oldEditors.length !== editors.length;\n    };\n    const purgeDestroyedEditor = editor => {\n      if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\n        removeEditorFromList(editor);\n        editor.unbindAllNativeEvents();\n        editor.destroy(true);\n        editor.removed = true;\n      }\n    };\n    const isQuirksMode = document.compatMode !== 'CSS1Compat';\n    const EditorManager = {\n      ...Observable,\n      baseURI: null,\n      baseURL: null,\n      defaultOptions: {},\n      documentBaseURL: null,\n      suffix: null,\n      majorVersion: '6',\n      minorVersion: '3.1',\n      releaseDate: '2022-12-06',\n      i18n: I18n,\n      activeEditor: null,\n      focusedEditor: null,\n      setup() {\n        const self = this;\n        let baseURL = '';\n        let suffix = '';\n        let documentBaseURL = URI.getDocumentBaseUrl(document.location);\n        if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\n          documentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n          if (!/[\\/\\\\]$/.test(documentBaseURL)) {\n            documentBaseURL += '/';\n          }\n        }\n        const preInit = window.tinymce || window.tinyMCEPreInit;\n        if (preInit) {\n          baseURL = preInit.base || preInit.baseURL;\n          suffix = preInit.suffix;\n        } else {\n          const scripts = document.getElementsByTagName('script');\n          for (let i = 0; i < scripts.length; i++) {\n            const src = scripts[i].src || '';\n            if (src === '') {\n              continue;\n            }\n            const srcScript = src.substring(src.lastIndexOf('/'));\n            if (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\n              if (srcScript.indexOf('.min') !== -1) {\n                suffix = '.min';\n              }\n              baseURL = src.substring(0, src.lastIndexOf('/'));\n              break;\n            }\n          }\n          if (!baseURL && document.currentScript) {\n            const src = document.currentScript.src;\n            if (src.indexOf('.min') !== -1) {\n              suffix = '.min';\n            }\n            baseURL = src.substring(0, src.lastIndexOf('/'));\n          }\n        }\n        self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\n        self.documentBaseURL = documentBaseURL;\n        self.baseURI = new URI(self.baseURL);\n        self.suffix = suffix;\n        setup$v(self);\n      },\n      overrideDefaults(defaultOptions) {\n        const baseUrl = defaultOptions.base_url;\n        if (baseUrl) {\n          this._setBaseUrl(baseUrl);\n        }\n        const suffix = defaultOptions.suffix;\n        if (suffix) {\n          this.suffix = suffix;\n        }\n        this.defaultOptions = defaultOptions;\n        const pluginBaseUrls = defaultOptions.plugin_base_urls;\n        if (pluginBaseUrls !== undefined) {\n          each$d(pluginBaseUrls, (pluginBaseUrl, pluginName) => {\n            AddOnManager.PluginManager.urls[pluginName] = pluginBaseUrl;\n          });\n        }\n      },\n      init(options) {\n        const self = this;\n        let result;\n        const invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' ');\n        const isInvalidInlineTarget = (options, elm) => options.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\n        const createId = elm => {\n          let id = elm.id;\n          if (!id) {\n            id = get$a(elm, 'name').filter(name => !DOM.get(name)).getOrThunk(DOM.uniqueId);\n            elm.setAttribute('id', id);\n          }\n          return id;\n        };\n        const execCallback = name => {\n          const callback = options[name];\n          if (!callback) {\n            return;\n          }\n          return callback.apply(self, []);\n        };\n        const findTargets = options => {\n          if (Env.browser.isIE() || Env.browser.isEdge()) {\n            initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tiny.cloud/docs/tinymce/6/support/#supportedwebbrowsers');\n            return [];\n          } else if (isQuirksMode) {\n            initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.');\n            return [];\n          } else if (isString(options.selector)) {\n            return DOM.select(options.selector);\n          } else if (isNonNullable(options.target)) {\n            return [options.target];\n          } else {\n            return [];\n          }\n        };\n        let provideResults = editors => {\n          result = editors;\n        };\n        const initEditors = () => {\n          let initCount = 0;\n          const editors = [];\n          let targets;\n          const createEditor = (id, options, targetElm) => {\n            const editor = new Editor(id, options, self);\n            editors.push(editor);\n            editor.on('init', () => {\n              if (++initCount === targets.length) {\n                provideResults(editors);\n              }\n            });\n            editor.targetElm = editor.targetElm || targetElm;\n            editor.render();\n          };\n          DOM.unbind(window, 'ready', initEditors);\n          execCallback('onpageload');\n          targets = unique$1(findTargets(options));\n          Tools.each(targets, elm => {\n            purgeDestroyedEditor(self.get(elm.id));\n          });\n          targets = Tools.grep(targets, elm => {\n            return !self.get(elm.id);\n          });\n          if (targets.length === 0) {\n            provideResults([]);\n          } else {\n            each(targets, elm => {\n              if (isInvalidInlineTarget(options, elm)) {\n                initError('Could not initialize inline editor on invalid inline target element', elm);\n              } else {\n                createEditor(createId(elm), options, elm);\n              }\n            });\n          }\n        };\n        DOM.bind(window, 'ready', initEditors);\n        return new Promise(resolve => {\n          if (result) {\n            resolve(result);\n          } else {\n            provideResults = editors => {\n              resolve(editors);\n            };\n          }\n        });\n      },\n      get(id) {\n        if (arguments.length === 0) {\n          return editors.slice(0);\n        } else if (isString(id)) {\n          return find$2(editors, editor => {\n            return editor.id === id;\n          }).getOr(null);\n        } else if (isNumber(id)) {\n          return editors[id] ? editors[id] : null;\n        } else {\n          return null;\n        }\n      },\n      add(editor) {\n        const self = this;\n        const existingEditor = self.get(editor.id);\n        if (existingEditor === editor) {\n          return editor;\n        }\n        if (existingEditor === null) {\n          editors.push(editor);\n        }\n        toggleGlobalEvents(true);\n        self.activeEditor = editor;\n        self.dispatch('AddEditor', { editor });\n        if (!beforeUnloadDelegate) {\n          beforeUnloadDelegate = e => {\n            const event = self.dispatch('BeforeUnload');\n            if (event.returnValue) {\n              e.preventDefault();\n              e.returnValue = event.returnValue;\n              return event.returnValue;\n            }\n          };\n          window.addEventListener('beforeunload', beforeUnloadDelegate);\n        }\n        return editor;\n      },\n      createEditor(id, options) {\n        return this.add(new Editor(id, options, this));\n      },\n      remove(selector) {\n        const self = this;\n        let editor;\n        if (!selector) {\n          for (let i = editors.length - 1; i >= 0; i--) {\n            self.remove(editors[i]);\n          }\n          return;\n        }\n        if (isString(selector)) {\n          each(DOM.select(selector), elm => {\n            editor = self.get(elm.id);\n            if (editor) {\n              self.remove(editor);\n            }\n          });\n          return;\n        }\n        editor = selector;\n        if (isNull(self.get(editor.id))) {\n          return null;\n        }\n        if (removeEditorFromList(editor)) {\n          self.dispatch('RemoveEditor', { editor });\n        }\n        if (editors.length === 0) {\n          window.removeEventListener('beforeunload', beforeUnloadDelegate);\n        }\n        editor.remove();\n        toggleGlobalEvents(editors.length > 0);\n        return editor;\n      },\n      execCommand(cmd, ui, value) {\n        var _a;\n        const self = this;\n        const editorId = isObject(value) ? (_a = value.id) !== null && _a !== void 0 ? _a : value.index : value;\n        switch (cmd) {\n        case 'mceAddEditor': {\n            if (!self.get(editorId)) {\n              const editorOptions = value.options;\n              new Editor(editorId, editorOptions, self).render();\n            }\n            return true;\n          }\n        case 'mceRemoveEditor': {\n            const editor = self.get(editorId);\n            if (editor) {\n              editor.remove();\n            }\n            return true;\n          }\n        case 'mceToggleEditor': {\n            const editor = self.get(editorId);\n            if (!editor) {\n              self.execCommand('mceAddEditor', false, value);\n              return true;\n            }\n            if (editor.isHidden()) {\n              editor.show();\n            } else {\n              editor.hide();\n            }\n            return true;\n          }\n        }\n        if (self.activeEditor) {\n          return self.activeEditor.execCommand(cmd, ui, value);\n        }\n        return false;\n      },\n      triggerSave: () => {\n        each(editors, editor => {\n          editor.save();\n        });\n      },\n      addI18n: (code, items) => {\n        I18n.add(code, items);\n      },\n      translate: text => {\n        return I18n.translate(text);\n      },\n      setActive(editor) {\n        const activeEditor = this.activeEditor;\n        if (this.activeEditor !== editor) {\n          if (activeEditor) {\n            activeEditor.dispatch('deactivate', { relatedTarget: editor });\n          }\n          editor.dispatch('activate', { relatedTarget: activeEditor });\n        }\n        this.activeEditor = editor;\n      },\n      _setBaseUrl(baseUrl) {\n        this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\n        this.baseURI = new URI(this.baseURL);\n      }\n    };\n    EditorManager.setup();\n\n    const setup = () => {\n      const dataValue = value$2();\n      const FakeClipboardItem = items => ({\n        items,\n        types: keys(items),\n        getType: type => get$a(items, type).getOrUndefined()\n      });\n      const write = data => {\n        dataValue.set(data);\n      };\n      const read = () => dataValue.get().getOrUndefined();\n      const clear = dataValue.clear;\n      return {\n        FakeClipboardItem,\n        write,\n        read,\n        clear\n      };\n    };\n    const FakeClipboard = setup();\n\n    const min = Math.min, max = Math.max, round = Math.round;\n    const relativePosition = (rect, targetRect, rel) => {\n      let x = targetRect.x;\n      let y = targetRect.y;\n      const w = rect.w;\n      const h = rect.h;\n      const targetW = targetRect.w;\n      const targetH = targetRect.h;\n      const relChars = (rel || '').split('');\n      if (relChars[0] === 'b') {\n        y += targetH;\n      }\n      if (relChars[1] === 'r') {\n        x += targetW;\n      }\n      if (relChars[0] === 'c') {\n        y += round(targetH / 2);\n      }\n      if (relChars[1] === 'c') {\n        x += round(targetW / 2);\n      }\n      if (relChars[3] === 'b') {\n        y -= h;\n      }\n      if (relChars[4] === 'r') {\n        x -= w;\n      }\n      if (relChars[3] === 'c') {\n        y -= round(h / 2);\n      }\n      if (relChars[4] === 'c') {\n        x -= round(w / 2);\n      }\n      return create$2(x, y, w, h);\n    };\n    const findBestRelativePosition = (rect, targetRect, constrainRect, rels) => {\n      for (let i = 0; i < rels.length; i++) {\n        const pos = relativePosition(rect, targetRect, rels[i]);\n        if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) {\n          return rels[i];\n        }\n      }\n      return null;\n    };\n    const inflate = (rect, w, h) => {\n      return create$2(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);\n    };\n    const intersect = (rect, cropRect) => {\n      const x1 = max(rect.x, cropRect.x);\n      const y1 = max(rect.y, cropRect.y);\n      const x2 = min(rect.x + rect.w, cropRect.x + cropRect.w);\n      const y2 = min(rect.y + rect.h, cropRect.y + cropRect.h);\n      if (x2 - x1 < 0 || y2 - y1 < 0) {\n        return null;\n      }\n      return create$2(x1, y1, x2 - x1, y2 - y1);\n    };\n    const clamp = (rect, clampRect, fixedSize) => {\n      let x1 = rect.x;\n      let y1 = rect.y;\n      let x2 = rect.x + rect.w;\n      let y2 = rect.y + rect.h;\n      const cx2 = clampRect.x + clampRect.w;\n      const cy2 = clampRect.y + clampRect.h;\n      const underflowX1 = max(0, clampRect.x - x1);\n      const underflowY1 = max(0, clampRect.y - y1);\n      const overflowX2 = max(0, x2 - cx2);\n      const overflowY2 = max(0, y2 - cy2);\n      x1 += underflowX1;\n      y1 += underflowY1;\n      if (fixedSize) {\n        x2 += underflowX1;\n        y2 += underflowY1;\n        x1 -= overflowX2;\n        y1 -= overflowY2;\n      }\n      x2 -= overflowX2;\n      y2 -= overflowY2;\n      return create$2(x1, y1, x2 - x1, y2 - y1);\n    };\n    const create$2 = (x, y, w, h) => {\n      return {\n        x,\n        y,\n        w,\n        h\n      };\n    };\n    const fromClientRect = clientRect => {\n      return create$2(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\n    };\n    const Rect = {\n      inflate,\n      relativePosition,\n      findBestRelativePosition,\n      intersect,\n      clamp,\n      create: create$2,\n      fromClientRect\n    };\n\n    const awaiter = (resolveCb, rejectCb, timeout = 1000) => {\n      let done = false;\n      let timer = null;\n      const complete = completer => (...args) => {\n        if (!done) {\n          done = true;\n          if (timer !== null) {\n            clearTimeout(timer);\n            timer = null;\n          }\n          completer.apply(null, args);\n        }\n      };\n      const resolve = complete(resolveCb);\n      const reject = complete(rejectCb);\n      const start = (...args) => {\n        if (!done && timer === null) {\n          timer = setTimeout(() => reject.apply(null, args), timeout);\n        }\n      };\n      return {\n        start,\n        resolve,\n        reject\n      };\n    };\n    const create$1 = () => {\n      const tasks = {};\n      const resultFns = {};\n      const load = (id, url) => {\n        const loadErrMsg = `Script at URL \"${ url }\" failed to load`;\n        const runErrMsg = `Script at URL \"${ url }\" did not call \\`tinymce.Resource.add('${ id }', data)\\` within 1 second`;\n        if (tasks[id] !== undefined) {\n          return tasks[id];\n        } else {\n          const task = new Promise((resolve, reject) => {\n            const waiter = awaiter(resolve, reject);\n            resultFns[id] = waiter.resolve;\n            ScriptLoader.ScriptLoader.loadScript(url).then(() => waiter.start(runErrMsg), () => waiter.reject(loadErrMsg));\n          });\n          tasks[id] = task;\n          return task;\n        }\n      };\n      const add = (id, data) => {\n        if (resultFns[id] !== undefined) {\n          resultFns[id](data);\n          delete resultFns[id];\n        }\n        tasks[id] = Promise.resolve(data);\n      };\n      const unload = id => {\n        delete tasks[id];\n      };\n      return {\n        load,\n        add,\n        unload\n      };\n    };\n    const Resource = create$1();\n\n    const create = () => (() => {\n      let data = {};\n      let keys = [];\n      const storage = {\n        getItem: key => {\n          const item = data[key];\n          return item ? item : null;\n        },\n        setItem: (key, value) => {\n          keys.push(key);\n          data[key] = String(value);\n        },\n        key: index => {\n          return keys[index];\n        },\n        removeItem: key => {\n          keys = keys.filter(k => k === key);\n          delete data[key];\n        },\n        clear: () => {\n          keys = [];\n          data = {};\n        },\n        length: 0\n      };\n      Object.defineProperty(storage, 'length', {\n        get: () => keys.length,\n        configurable: false,\n        enumerable: false\n      });\n      return storage;\n    })();\n\n    let localStorage;\n    try {\n      const test = '__storage_test__';\n      localStorage = window.localStorage;\n      localStorage.setItem(test, test);\n      localStorage.removeItem(test);\n    } catch (e) {\n      localStorage = create();\n    }\n    var LocalStorage = localStorage;\n\n    const publicApi = {\n      geom: { Rect },\n      util: {\n        Delay,\n        Tools,\n        VK,\n        URI,\n        EventDispatcher,\n        Observable,\n        I18n,\n        LocalStorage,\n        ImageUploader\n      },\n      dom: {\n        EventUtils,\n        TreeWalker: DomTreeWalker,\n        TextSeeker,\n        DOMUtils,\n        ScriptLoader,\n        RangeUtils,\n        Serializer: DomSerializer,\n        StyleSheetLoader,\n        ControlSelection,\n        BookmarkManager,\n        Selection: EditorSelection,\n        Event: EventUtils.Event\n      },\n      html: {\n        Styles,\n        Entities,\n        Node: AstNode,\n        Schema,\n        DomParser,\n        Writer,\n        Serializer: HtmlSerializer\n      },\n      Env,\n      AddOnManager,\n      Annotator,\n      Formatter,\n      UndoManager,\n      EditorCommands,\n      WindowManager,\n      NotificationManager,\n      EditorObservable,\n      Shortcuts,\n      Editor,\n      FocusManager,\n      EditorManager,\n      DOM: DOMUtils.DOM,\n      ScriptLoader: ScriptLoader.ScriptLoader,\n      PluginManager,\n      ThemeManager,\n      ModelManager,\n      IconManager,\n      Resource,\n      FakeClipboard,\n      trim: Tools.trim,\n      isArray: Tools.isArray,\n      is: Tools.is,\n      toArray: Tools.toArray,\n      makeMap: Tools.makeMap,\n      each: Tools.each,\n      map: Tools.map,\n      grep: Tools.grep,\n      inArray: Tools.inArray,\n      extend: Tools.extend,\n      walk: Tools.walk,\n      resolve: Tools.resolve,\n      explode: Tools.explode,\n      _addCacheSuffix: Tools._addCacheSuffix\n    };\n    const tinymce = Tools.extend(EditorManager, publicApi);\n\n    const exportToModuleLoaders = tinymce => {\n      if (typeof module === 'object') {\n        try {\n          module.exports = tinymce;\n        } catch (_) {\n        }\n      }\n    };\n    const exportToWindowGlobal = tinymce => {\n      window.tinymce = tinymce;\n      window.tinyMCE = tinymce;\n    };\n    exportToWindowGlobal(tinymce);\n    exportToModuleLoaders(tinymce);\n\n})();\n", "/*!\n * jQuery JavaScript Library v3.6.3\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-12-20T21:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.9\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2022-12-19\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// `qSA` may not throw for unrecognized parts using forgiving parsing:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#forgiving-selector\n\t\t\t\t\t// like the `:has()` pseudo-class:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#relational\n\t\t\t\t\t// `CSS.supports` is still expected to return `false` then:\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n\t\t\t\t\tif ( support.cssSupportsSelector &&\n\n\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t!CSS.supports( \"selector(:is(\" + newSelector + \"))\" ) ) {\n\n\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t// Throw to get to the same code path as an error directly in qSA.\n\t\t\t\t\t\t// Note: once we only support browser supporting\n\t\t\t\t\t\t// `CSS.supports('selector(...)')`, we can most likely drop\n\t\t\t\t\t\t// the `try-catch`. IE doesn't implement the API.\n\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t}\n\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105+, Firefox 104+, Safari 15.4+\n\t// Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n\t//\n\t// `:is()` uses a forgiving selector list as an argument and is widely\n\t// implemented, so it's a good one to test against.\n\tsupport.cssSupportsSelector = assert( function() {\n\t\t/* eslint-disable no-undef */\n\n\t\treturn CSS.supports( \"selector(*)\" ) &&\n\n\t\t\t// Support: Firefox 78-81 only\n\t\t\t// In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n\t\t\t// fail this test as there's no selector to test against that.\n\t\t\t// `CSS.supports` uses unforgiving parsing\n\t\t\tdocument.querySelectorAll( \":is(:jqfake)\" ) &&\n\n\t\t\t// `*` is needed as Safari & newer Chrome implemented something in between\n\t\t\t// for `:has()` - it throws in `qSA` if it only contains an unsupported\n\t\t\t// argument but multiple ones, one of which is supported, are fine.\n\t\t\t// We want to play safe in case `:is()` gets the same treatment.\n\t\t\t!CSS.supports( \"selector(:is(*,:jqfake))\" );\n\n\t\t/* eslint-enable */\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssSupportsSelector ) {\n\n\t\t// Support: Chrome 105+, Safari 15.4+\n\t\t// `:has()` uses a forgiving selector list as an argument so our regular\n\t\t// `try-catch` mechanism fails to catch `:has()` with arguments not supported\n\t\t// natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n\t\t// we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n\t\t// outside that we mark `:has` as buggy.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `<template/>` may have\n\t\t\t// a null one - a default behavior of all modern browsers.\n\t\t\tvar adown = a.nodeType === 9 && a.documentElement || a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, trac-12537)\n\t//   .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n", "/*\nTurbo 7.3.0\nCopyright \u00A9 2023 37signals LLC\n */\n(function () {\n    if (window.Reflect === undefined ||\n        window.customElements === undefined ||\n        window.customElements.polyfillWrapFlushCallback) {\n        return;\n    }\n    const BuiltInHTMLElement = HTMLElement;\n    const wrapperForTheName = {\n        HTMLElement: function HTMLElement() {\n            return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n        },\n    };\n    window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n    HTMLElement.prototype = BuiltInHTMLElement.prototype;\n    HTMLElement.prototype.constructor = HTMLElement;\n    Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n  if (typeof prototype.requestSubmit == \"function\") return\n\n  prototype.requestSubmit = function(submitter) {\n    if (submitter) {\n      validateSubmitter(submitter, this);\n      submitter.click();\n    } else {\n      submitter = document.createElement(\"input\");\n      submitter.type = \"submit\";\n      submitter.hidden = true;\n      this.appendChild(submitter);\n      submitter.click();\n      this.removeChild(submitter);\n    }\n  };\n\n  function validateSubmitter(submitter, form) {\n    submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n    submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n    submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n  }\n\n  function raise(errorConstructor, message, name) {\n    throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n  }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n    const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n    const candidate = element ? element.closest(\"input, button\") : null;\n    return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n    const submitter = findSubmitterFromClickTarget(event.target);\n    if (submitter && submitter.form) {\n        submittersByForm.set(submitter.form, submitter);\n    }\n}\n(function () {\n    if (\"submitter\" in Event.prototype)\n        return;\n    let prototype = window.Event.prototype;\n    if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n        prototype = window.SubmitEvent.prototype;\n    }\n    else if (\"SubmitEvent\" in window) {\n        return;\n    }\n    addEventListener(\"click\", clickCaptured, true);\n    Object.defineProperty(prototype, \"submitter\", {\n        get() {\n            if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n                return submittersByForm.get(this.target);\n            }\n        },\n    });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n    FrameLoadingStyle[\"eager\"] = \"eager\";\n    FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n    static get observedAttributes() {\n        return [\"disabled\", \"complete\", \"loading\", \"src\"];\n    }\n    constructor() {\n        super();\n        this.loaded = Promise.resolve();\n        this.delegate = new FrameElement.delegateConstructor(this);\n    }\n    connectedCallback() {\n        this.delegate.connect();\n    }\n    disconnectedCallback() {\n        this.delegate.disconnect();\n    }\n    reload() {\n        return this.delegate.sourceURLReloaded();\n    }\n    attributeChangedCallback(name) {\n        if (name == \"loading\") {\n            this.delegate.loadingStyleChanged();\n        }\n        else if (name == \"complete\") {\n            this.delegate.completeChanged();\n        }\n        else if (name == \"src\") {\n            this.delegate.sourceURLChanged();\n        }\n        else {\n            this.delegate.disabledChanged();\n        }\n    }\n    get src() {\n        return this.getAttribute(\"src\");\n    }\n    set src(value) {\n        if (value) {\n            this.setAttribute(\"src\", value);\n        }\n        else {\n            this.removeAttribute(\"src\");\n        }\n    }\n    get loading() {\n        return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n    }\n    set loading(value) {\n        if (value) {\n            this.setAttribute(\"loading\", value);\n        }\n        else {\n            this.removeAttribute(\"loading\");\n        }\n    }\n    get disabled() {\n        return this.hasAttribute(\"disabled\");\n    }\n    set disabled(value) {\n        if (value) {\n            this.setAttribute(\"disabled\", \"\");\n        }\n        else {\n            this.removeAttribute(\"disabled\");\n        }\n    }\n    get autoscroll() {\n        return this.hasAttribute(\"autoscroll\");\n    }\n    set autoscroll(value) {\n        if (value) {\n            this.setAttribute(\"autoscroll\", \"\");\n        }\n        else {\n            this.removeAttribute(\"autoscroll\");\n        }\n    }\n    get complete() {\n        return !this.delegate.isLoading;\n    }\n    get isActive() {\n        return this.ownerDocument === document && !this.isPreview;\n    }\n    get isPreview() {\n        var _a, _b;\n        return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n    }\n}\nfunction frameLoadingStyleFromString(style) {\n    switch (style.toLowerCase()) {\n        case \"lazy\":\n            return FrameLoadingStyle.lazy;\n        default:\n            return FrameLoadingStyle.eager;\n    }\n}\n\nfunction expandURL(locatable) {\n    return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n    let anchorMatch;\n    if (url.hash) {\n        return url.hash.slice(1);\n    }\n    else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n        return anchorMatch[1];\n    }\n}\nfunction getAction(form, submitter) {\n    const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n    return expandURL(action);\n}\nfunction getExtension(url) {\n    return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n    return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n    const prefix = getPrefix(url);\n    return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n    return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n    const anchor = getAnchor(url);\n    return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n    return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n    return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n    return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n    return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n    return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n    return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n    constructor(response) {\n        this.response = response;\n    }\n    get succeeded() {\n        return this.response.ok;\n    }\n    get failed() {\n        return !this.succeeded;\n    }\n    get clientError() {\n        return this.statusCode >= 400 && this.statusCode <= 499;\n    }\n    get serverError() {\n        return this.statusCode >= 500 && this.statusCode <= 599;\n    }\n    get redirected() {\n        return this.response.redirected;\n    }\n    get location() {\n        return expandURL(this.response.url);\n    }\n    get isHTML() {\n        return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n    }\n    get statusCode() {\n        return this.response.status;\n    }\n    get contentType() {\n        return this.header(\"Content-Type\");\n    }\n    get responseText() {\n        return this.response.clone().text();\n    }\n    get responseHTML() {\n        if (this.isHTML) {\n            return this.response.clone().text();\n        }\n        else {\n            return Promise.resolve(undefined);\n        }\n    }\n    header(name) {\n        return this.response.headers.get(name);\n    }\n}\n\nfunction activateScriptElement(element) {\n    if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n        return element;\n    }\n    else {\n        const createdScriptElement = document.createElement(\"script\");\n        const cspNonce = getMetaContent(\"csp-nonce\");\n        if (cspNonce) {\n            createdScriptElement.nonce = cspNonce;\n        }\n        createdScriptElement.textContent = element.textContent;\n        createdScriptElement.async = false;\n        copyElementAttributes(createdScriptElement, element);\n        return createdScriptElement;\n    }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n    for (const { name, value } of sourceElement.attributes) {\n        destinationElement.setAttribute(name, value);\n    }\n}\nfunction createDocumentFragment(html) {\n    const template = document.createElement(\"template\");\n    template.innerHTML = html;\n    return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n    const event = new CustomEvent(eventName, {\n        cancelable,\n        bubbles: true,\n        composed: true,\n        detail,\n    });\n    if (target && target.isConnected) {\n        target.dispatchEvent(event);\n    }\n    else {\n        document.documentElement.dispatchEvent(event);\n    }\n    return event;\n}\nfunction nextAnimationFrame() {\n    return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n    return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n    return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n    return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n    const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n    const match = lines[0].match(/^\\s+/);\n    const indent = match ? match[0].length : 0;\n    return lines.map((line) => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n    return strings.reduce((result, string, i) => {\n        const value = values[i] == undefined ? \"\" : values[i];\n        return result + string + value;\n    }, \"\");\n}\nfunction uuid() {\n    return Array.from({ length: 36 })\n        .map((_, i) => {\n        if (i == 8 || i == 13 || i == 18 || i == 23) {\n            return \"-\";\n        }\n        else if (i == 14) {\n            return \"4\";\n        }\n        else if (i == 19) {\n            return (Math.floor(Math.random() * 4) + 8).toString(16);\n        }\n        else {\n            return Math.floor(Math.random() * 15).toString(16);\n        }\n    })\n        .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n    for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n        if (typeof value == \"string\")\n            return value;\n    }\n    return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n    return elements.some((element) => element && element.hasAttribute(attributeName));\n}\nfunction markAsBusy(...elements) {\n    for (const element of elements) {\n        if (element.localName == \"turbo-frame\") {\n            element.setAttribute(\"busy\", \"\");\n        }\n        element.setAttribute(\"aria-busy\", \"true\");\n    }\n}\nfunction clearBusyState(...elements) {\n    for (const element of elements) {\n        if (element.localName == \"turbo-frame\") {\n            element.removeAttribute(\"busy\");\n        }\n        element.removeAttribute(\"aria-busy\");\n    }\n}\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n    return new Promise((resolve) => {\n        const onComplete = () => {\n            element.removeEventListener(\"error\", onComplete);\n            element.removeEventListener(\"load\", onComplete);\n            resolve();\n        };\n        element.addEventListener(\"load\", onComplete, { once: true });\n        element.addEventListener(\"error\", onComplete, { once: true });\n        setTimeout(resolve, timeoutInMilliseconds);\n    });\n}\nfunction getHistoryMethodForAction(action) {\n    switch (action) {\n        case \"replace\":\n            return history.replaceState;\n        case \"advance\":\n        case \"restore\":\n            return history.pushState;\n    }\n}\nfunction isAction(action) {\n    return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\nfunction getVisitAction(...elements) {\n    const action = getAttribute(\"data-turbo-action\", ...elements);\n    return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n    return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n    const element = getMetaElement(name);\n    return element && element.content;\n}\nfunction setMetaContent(name, content) {\n    let element = getMetaElement(name);\n    if (!element) {\n        element = document.createElement(\"meta\");\n        element.setAttribute(\"name\", name);\n        document.head.appendChild(element);\n    }\n    element.setAttribute(\"content\", content);\n    return element;\n}\nfunction findClosestRecursively(element, selector) {\n    var _a;\n    if (element instanceof Element) {\n        return (element.closest(selector) ||\n            findClosestRecursively(element.assignedSlot || ((_a = element.getRootNode()) === null || _a === void 0 ? void 0 : _a.host), selector));\n    }\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n    FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n    FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n    FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n    FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n    FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n    switch (method.toLowerCase()) {\n        case \"get\":\n            return FetchMethod.get;\n        case \"post\":\n            return FetchMethod.post;\n        case \"put\":\n            return FetchMethod.put;\n        case \"patch\":\n            return FetchMethod.patch;\n        case \"delete\":\n            return FetchMethod.delete;\n    }\n}\nclass FetchRequest {\n    constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n        this.abortController = new AbortController();\n        this.resolveRequestPromise = (_value) => { };\n        this.delegate = delegate;\n        this.method = method;\n        this.headers = this.defaultHeaders;\n        this.body = body;\n        this.url = location;\n        this.target = target;\n    }\n    get location() {\n        return this.url;\n    }\n    get params() {\n        return this.url.searchParams;\n    }\n    get entries() {\n        return this.body ? Array.from(this.body.entries()) : [];\n    }\n    cancel() {\n        this.abortController.abort();\n    }\n    async perform() {\n        const { fetchOptions } = this;\n        this.delegate.prepareRequest(this);\n        await this.allowRequestToBeIntercepted(fetchOptions);\n        try {\n            this.delegate.requestStarted(this);\n            const response = await fetch(this.url.href, fetchOptions);\n            return await this.receive(response);\n        }\n        catch (error) {\n            if (error.name !== \"AbortError\") {\n                if (this.willDelegateErrorHandling(error)) {\n                    this.delegate.requestErrored(this, error);\n                }\n                throw error;\n            }\n        }\n        finally {\n            this.delegate.requestFinished(this);\n        }\n    }\n    async receive(response) {\n        const fetchResponse = new FetchResponse(response);\n        const event = dispatch(\"turbo:before-fetch-response\", {\n            cancelable: true,\n            detail: { fetchResponse },\n            target: this.target,\n        });\n        if (event.defaultPrevented) {\n            this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n        }\n        else if (fetchResponse.succeeded) {\n            this.delegate.requestSucceededWithResponse(this, fetchResponse);\n        }\n        else {\n            this.delegate.requestFailedWithResponse(this, fetchResponse);\n        }\n        return fetchResponse;\n    }\n    get fetchOptions() {\n        var _a;\n        return {\n            method: FetchMethod[this.method].toUpperCase(),\n            credentials: \"same-origin\",\n            headers: this.headers,\n            redirect: \"follow\",\n            body: this.isSafe ? null : this.body,\n            signal: this.abortSignal,\n            referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n        };\n    }\n    get defaultHeaders() {\n        return {\n            Accept: \"text/html, application/xhtml+xml\",\n        };\n    }\n    get isSafe() {\n        return this.method === FetchMethod.get;\n    }\n    get abortSignal() {\n        return this.abortController.signal;\n    }\n    acceptResponseType(mimeType) {\n        this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n    }\n    async allowRequestToBeIntercepted(fetchOptions) {\n        const requestInterception = new Promise((resolve) => (this.resolveRequestPromise = resolve));\n        const event = dispatch(\"turbo:before-fetch-request\", {\n            cancelable: true,\n            detail: {\n                fetchOptions,\n                url: this.url,\n                resume: this.resolveRequestPromise,\n            },\n            target: this.target,\n        });\n        if (event.defaultPrevented)\n            await requestInterception;\n    }\n    willDelegateErrorHandling(error) {\n        const event = dispatch(\"turbo:fetch-request-error\", {\n            target: this.target,\n            cancelable: true,\n            detail: { request: this, error: error },\n        });\n        return !event.defaultPrevented;\n    }\n}\n\nclass AppearanceObserver {\n    constructor(delegate, element) {\n        this.started = false;\n        this.intersect = (entries) => {\n            const lastEntry = entries.slice(-1)[0];\n            if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n                this.delegate.elementAppearedInViewport(this.element);\n            }\n        };\n        this.delegate = delegate;\n        this.element = element;\n        this.intersectionObserver = new IntersectionObserver(this.intersect);\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.intersectionObserver.observe(this.element);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.intersectionObserver.unobserve(this.element);\n        }\n    }\n}\n\nclass StreamMessage {\n    static wrap(message) {\n        if (typeof message == \"string\") {\n            return new this(createDocumentFragment(message));\n        }\n        else {\n            return message;\n        }\n    }\n    constructor(fragment) {\n        this.fragment = importStreamElements(fragment);\n    }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n    for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n        const streamElement = document.importNode(element, true);\n        for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n            inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n        }\n        element.replaceWith(streamElement);\n    }\n    return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n    FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n    FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n    FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n    FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n    FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n    FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n    FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n    FormEnctype[\"multipart\"] = \"multipart/form-data\";\n    FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n    switch (encoding.toLowerCase()) {\n        case FormEnctype.multipart:\n            return FormEnctype.multipart;\n        case FormEnctype.plain:\n            return FormEnctype.plain;\n        default:\n            return FormEnctype.urlEncoded;\n    }\n}\nclass FormSubmission {\n    static confirmMethod(message, _element, _submitter) {\n        return Promise.resolve(confirm(message));\n    }\n    constructor(delegate, formElement, submitter, mustRedirect = false) {\n        this.state = FormSubmissionState.initialized;\n        this.delegate = delegate;\n        this.formElement = formElement;\n        this.submitter = submitter;\n        this.formData = buildFormData(formElement, submitter);\n        this.location = expandURL(this.action);\n        if (this.method == FetchMethod.get) {\n            mergeFormDataEntries(this.location, [...this.body.entries()]);\n        }\n        this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n        this.mustRedirect = mustRedirect;\n    }\n    get method() {\n        var _a;\n        const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n        return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n    }\n    get action() {\n        var _a;\n        const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n        if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n            return this.submitter.getAttribute(\"formaction\") || \"\";\n        }\n        else {\n            return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n        }\n    }\n    get body() {\n        if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n            return new URLSearchParams(this.stringFormData);\n        }\n        else {\n            return this.formData;\n        }\n    }\n    get enctype() {\n        var _a;\n        return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n    }\n    get isSafe() {\n        return this.fetchRequest.isSafe;\n    }\n    get stringFormData() {\n        return [...this.formData].reduce((entries, [name, value]) => {\n            return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n        }, []);\n    }\n    async start() {\n        const { initialized, requesting } = FormSubmissionState;\n        const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n        if (typeof confirmationMessage === \"string\") {\n            const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n            if (!answer) {\n                return;\n            }\n        }\n        if (this.state == initialized) {\n            this.state = requesting;\n            return this.fetchRequest.perform();\n        }\n    }\n    stop() {\n        const { stopping, stopped } = FormSubmissionState;\n        if (this.state != stopping && this.state != stopped) {\n            this.state = stopping;\n            this.fetchRequest.cancel();\n            return true;\n        }\n    }\n    prepareRequest(request) {\n        if (!request.isSafe) {\n            const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n            if (token) {\n                request.headers[\"X-CSRF-Token\"] = token;\n            }\n        }\n        if (this.requestAcceptsTurboStreamResponse(request)) {\n            request.acceptResponseType(StreamMessage.contentType);\n        }\n    }\n    requestStarted(_request) {\n        var _a;\n        this.state = FormSubmissionState.waiting;\n        (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n        this.setSubmitsWith();\n        dispatch(\"turbo:submit-start\", {\n            target: this.formElement,\n            detail: { formSubmission: this },\n        });\n        this.delegate.formSubmissionStarted(this);\n    }\n    requestPreventedHandlingResponse(request, response) {\n        this.result = { success: response.succeeded, fetchResponse: response };\n    }\n    requestSucceededWithResponse(request, response) {\n        if (response.clientError || response.serverError) {\n            this.delegate.formSubmissionFailedWithResponse(this, response);\n        }\n        else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n            const error = new Error(\"Form responses must redirect to another location\");\n            this.delegate.formSubmissionErrored(this, error);\n        }\n        else {\n            this.state = FormSubmissionState.receiving;\n            this.result = { success: true, fetchResponse: response };\n            this.delegate.formSubmissionSucceededWithResponse(this, response);\n        }\n    }\n    requestFailedWithResponse(request, response) {\n        this.result = { success: false, fetchResponse: response };\n        this.delegate.formSubmissionFailedWithResponse(this, response);\n    }\n    requestErrored(request, error) {\n        this.result = { success: false, error };\n        this.delegate.formSubmissionErrored(this, error);\n    }\n    requestFinished(_request) {\n        var _a;\n        this.state = FormSubmissionState.stopped;\n        (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n        this.resetSubmitterText();\n        dispatch(\"turbo:submit-end\", {\n            target: this.formElement,\n            detail: Object.assign({ formSubmission: this }, this.result),\n        });\n        this.delegate.formSubmissionFinished(this);\n    }\n    setSubmitsWith() {\n        if (!this.submitter || !this.submitsWith)\n            return;\n        if (this.submitter.matches(\"button\")) {\n            this.originalSubmitText = this.submitter.innerHTML;\n            this.submitter.innerHTML = this.submitsWith;\n        }\n        else if (this.submitter.matches(\"input\")) {\n            const input = this.submitter;\n            this.originalSubmitText = input.value;\n            input.value = this.submitsWith;\n        }\n    }\n    resetSubmitterText() {\n        if (!this.submitter || !this.originalSubmitText)\n            return;\n        if (this.submitter.matches(\"button\")) {\n            this.submitter.innerHTML = this.originalSubmitText;\n        }\n        else if (this.submitter.matches(\"input\")) {\n            const input = this.submitter;\n            input.value = this.originalSubmitText;\n        }\n    }\n    requestMustRedirect(request) {\n        return !request.isSafe && this.mustRedirect;\n    }\n    requestAcceptsTurboStreamResponse(request) {\n        return !request.isSafe || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n    }\n    get submitsWith() {\n        var _a;\n        return (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"data-turbo-submits-with\");\n    }\n}\nfunction buildFormData(formElement, submitter) {\n    const formData = new FormData(formElement);\n    const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n    const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n    if (name) {\n        formData.append(name, value || \"\");\n    }\n    return formData;\n}\nfunction getCookieValue(cookieName) {\n    if (cookieName != null) {\n        const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n        const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n        if (cookie) {\n            const value = cookie.split(\"=\").slice(1).join(\"=\");\n            return value ? decodeURIComponent(value) : undefined;\n        }\n    }\n}\nfunction responseSucceededWithoutRedirect(response) {\n    return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n    const searchParams = new URLSearchParams();\n    for (const [name, value] of entries) {\n        if (value instanceof File)\n            continue;\n        searchParams.append(name, value);\n    }\n    url.search = searchParams.toString();\n    return url;\n}\n\nclass Snapshot {\n    constructor(element) {\n        this.element = element;\n    }\n    get activeElement() {\n        return this.element.ownerDocument.activeElement;\n    }\n    get children() {\n        return [...this.element.children];\n    }\n    hasAnchor(anchor) {\n        return this.getElementForAnchor(anchor) != null;\n    }\n    getElementForAnchor(anchor) {\n        return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n    }\n    get isConnected() {\n        return this.element.isConnected;\n    }\n    get firstAutofocusableElement() {\n        const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n        for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n            if (element.closest(inertDisabledOrHidden) == null)\n                return element;\n            else\n                continue;\n        }\n        return null;\n    }\n    get permanentElements() {\n        return queryPermanentElementsAll(this.element);\n    }\n    getPermanentElementById(id) {\n        return getPermanentElementById(this.element, id);\n    }\n    getPermanentElementMapForSnapshot(snapshot) {\n        const permanentElementMap = {};\n        for (const currentPermanentElement of this.permanentElements) {\n            const { id } = currentPermanentElement;\n            const newPermanentElement = snapshot.getPermanentElementById(id);\n            if (newPermanentElement) {\n                permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n            }\n        }\n        return permanentElementMap;\n    }\n}\nfunction getPermanentElementById(node, id) {\n    return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n    return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n    constructor(delegate, eventTarget) {\n        this.started = false;\n        this.submitCaptured = () => {\n            this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n            this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n        };\n        this.submitBubbled = ((event) => {\n            if (!event.defaultPrevented) {\n                const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n                const submitter = event.submitter || undefined;\n                if (form &&\n                    submissionDoesNotDismissDialog(form, submitter) &&\n                    submissionDoesNotTargetIFrame(form, submitter) &&\n                    this.delegate.willSubmitForm(form, submitter)) {\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n                    this.delegate.formSubmitted(form, submitter);\n                }\n            }\n        });\n        this.delegate = delegate;\n        this.eventTarget = eventTarget;\n    }\n    start() {\n        if (!this.started) {\n            this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n            this.started = false;\n        }\n    }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n    const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n    return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n    if ((submitter === null || submitter === void 0 ? void 0 : submitter.hasAttribute(\"formtarget\")) || form.hasAttribute(\"target\")) {\n        const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n        for (const element of document.getElementsByName(target)) {\n            if (element instanceof HTMLIFrameElement)\n                return false;\n        }\n        return true;\n    }\n    else {\n        return true;\n    }\n}\n\nclass View {\n    constructor(delegate, element) {\n        this.resolveRenderPromise = (_value) => { };\n        this.resolveInterceptionPromise = (_value) => { };\n        this.delegate = delegate;\n        this.element = element;\n    }\n    scrollToAnchor(anchor) {\n        const element = this.snapshot.getElementForAnchor(anchor);\n        if (element) {\n            this.scrollToElement(element);\n            this.focusElement(element);\n        }\n        else {\n            this.scrollToPosition({ x: 0, y: 0 });\n        }\n    }\n    scrollToAnchorFromLocation(location) {\n        this.scrollToAnchor(getAnchor(location));\n    }\n    scrollToElement(element) {\n        element.scrollIntoView();\n    }\n    focusElement(element) {\n        if (element instanceof HTMLElement) {\n            if (element.hasAttribute(\"tabindex\")) {\n                element.focus();\n            }\n            else {\n                element.setAttribute(\"tabindex\", \"-1\");\n                element.focus();\n                element.removeAttribute(\"tabindex\");\n            }\n        }\n    }\n    scrollToPosition({ x, y }) {\n        this.scrollRoot.scrollTo(x, y);\n    }\n    scrollToTop() {\n        this.scrollToPosition({ x: 0, y: 0 });\n    }\n    get scrollRoot() {\n        return window;\n    }\n    async render(renderer) {\n        const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n        if (shouldRender) {\n            try {\n                this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n                this.renderer = renderer;\n                await this.prepareToRenderSnapshot(renderer);\n                const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n                const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n                const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n                if (!immediateRender)\n                    await renderInterception;\n                await this.renderSnapshot(renderer);\n                this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n                this.delegate.preloadOnLoadLinksForView(this.element);\n                this.finishRenderingSnapshot(renderer);\n            }\n            finally {\n                delete this.renderer;\n                this.resolveRenderPromise(undefined);\n                delete this.renderPromise;\n            }\n        }\n        else {\n            this.invalidate(renderer.reloadReason);\n        }\n    }\n    invalidate(reason) {\n        this.delegate.viewInvalidated(reason);\n    }\n    async prepareToRenderSnapshot(renderer) {\n        this.markAsPreview(renderer.isPreview);\n        await renderer.prepareToRender();\n    }\n    markAsPreview(isPreview) {\n        if (isPreview) {\n            this.element.setAttribute(\"data-turbo-preview\", \"\");\n        }\n        else {\n            this.element.removeAttribute(\"data-turbo-preview\");\n        }\n    }\n    async renderSnapshot(renderer) {\n        await renderer.render();\n    }\n    finishRenderingSnapshot(renderer) {\n        renderer.finishRendering();\n    }\n}\n\nclass FrameView extends View {\n    missing() {\n        this.element.innerHTML = `<strong class=\"turbo-frame-error\">Content missing</strong>`;\n    }\n    get snapshot() {\n        return new Snapshot(this.element);\n    }\n}\n\nclass LinkInterceptor {\n    constructor(delegate, element) {\n        this.clickBubbled = (event) => {\n            if (this.respondsToEventTarget(event.target)) {\n                this.clickEvent = event;\n            }\n            else {\n                delete this.clickEvent;\n            }\n        };\n        this.linkClicked = ((event) => {\n            if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n                if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n                    this.clickEvent.preventDefault();\n                    event.preventDefault();\n                    this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n                }\n            }\n            delete this.clickEvent;\n        });\n        this.willVisit = ((_event) => {\n            delete this.clickEvent;\n        });\n        this.delegate = delegate;\n        this.element = element;\n    }\n    start() {\n        this.element.addEventListener(\"click\", this.clickBubbled);\n        document.addEventListener(\"turbo:click\", this.linkClicked);\n        document.addEventListener(\"turbo:before-visit\", this.willVisit);\n    }\n    stop() {\n        this.element.removeEventListener(\"click\", this.clickBubbled);\n        document.removeEventListener(\"turbo:click\", this.linkClicked);\n        document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n    }\n    respondsToEventTarget(target) {\n        const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n        return element && element.closest(\"turbo-frame, html\") == this.element;\n    }\n}\n\nclass LinkClickObserver {\n    constructor(delegate, eventTarget) {\n        this.started = false;\n        this.clickCaptured = () => {\n            this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n            this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n        };\n        this.clickBubbled = (event) => {\n            if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n                const target = (event.composedPath && event.composedPath()[0]) || event.target;\n                const link = this.findLinkFromClickTarget(target);\n                if (link && doesNotTargetIFrame(link)) {\n                    const location = this.getLocationForLink(link);\n                    if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n                        event.preventDefault();\n                        this.delegate.followedLinkToLocation(link, location);\n                    }\n                }\n            }\n        };\n        this.delegate = delegate;\n        this.eventTarget = eventTarget;\n    }\n    start() {\n        if (!this.started) {\n            this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n            this.started = false;\n        }\n    }\n    clickEventIsSignificant(event) {\n        return !((event.target && event.target.isContentEditable) ||\n            event.defaultPrevented ||\n            event.which > 1 ||\n            event.altKey ||\n            event.ctrlKey ||\n            event.metaKey ||\n            event.shiftKey);\n    }\n    findLinkFromClickTarget(target) {\n        return findClosestRecursively(target, \"a[href]:not([target^=_]):not([download])\");\n    }\n    getLocationForLink(link) {\n        return expandURL(link.getAttribute(\"href\") || \"\");\n    }\n}\nfunction doesNotTargetIFrame(anchor) {\n    if (anchor.hasAttribute(\"target\")) {\n        for (const element of document.getElementsByName(anchor.target)) {\n            if (element instanceof HTMLIFrameElement)\n                return false;\n        }\n        return true;\n    }\n    else {\n        return true;\n    }\n}\n\nclass FormLinkClickObserver {\n    constructor(delegate, element) {\n        this.delegate = delegate;\n        this.linkInterceptor = new LinkClickObserver(this, element);\n    }\n    start() {\n        this.linkInterceptor.start();\n    }\n    stop() {\n        this.linkInterceptor.stop();\n    }\n    willFollowLinkToLocation(link, location, originalEvent) {\n        return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n            link.hasAttribute(\"data-turbo-method\"));\n    }\n    followedLinkToLocation(link, location) {\n        const form = document.createElement(\"form\");\n        const type = \"hidden\";\n        for (const [name, value] of location.searchParams) {\n            form.append(Object.assign(document.createElement(\"input\"), { type, name, value }));\n        }\n        const action = Object.assign(location, { search: \"\" });\n        form.setAttribute(\"data-turbo\", \"true\");\n        form.setAttribute(\"action\", action.href);\n        form.setAttribute(\"hidden\", \"\");\n        const method = link.getAttribute(\"data-turbo-method\");\n        if (method)\n            form.setAttribute(\"method\", method);\n        const turboFrame = link.getAttribute(\"data-turbo-frame\");\n        if (turboFrame)\n            form.setAttribute(\"data-turbo-frame\", turboFrame);\n        const turboAction = getVisitAction(link);\n        if (turboAction)\n            form.setAttribute(\"data-turbo-action\", turboAction);\n        const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n        if (turboConfirm)\n            form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n        const turboStream = link.hasAttribute(\"data-turbo-stream\");\n        if (turboStream)\n            form.setAttribute(\"data-turbo-stream\", \"\");\n        this.delegate.submittedFormLinkToLocation(link, location, form);\n        document.body.appendChild(form);\n        form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n        requestAnimationFrame(() => form.requestSubmit());\n    }\n}\n\nclass Bardo {\n    static async preservingPermanentElements(delegate, permanentElementMap, callback) {\n        const bardo = new this(delegate, permanentElementMap);\n        bardo.enter();\n        await callback();\n        bardo.leave();\n    }\n    constructor(delegate, permanentElementMap) {\n        this.delegate = delegate;\n        this.permanentElementMap = permanentElementMap;\n    }\n    enter() {\n        for (const id in this.permanentElementMap) {\n            const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n            this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n            this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n        }\n    }\n    leave() {\n        for (const id in this.permanentElementMap) {\n            const [currentPermanentElement] = this.permanentElementMap[id];\n            this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n            this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n            this.delegate.leavingBardo(currentPermanentElement);\n        }\n    }\n    replaceNewPermanentElementWithPlaceholder(permanentElement) {\n        const placeholder = createPlaceholderForPermanentElement(permanentElement);\n        permanentElement.replaceWith(placeholder);\n    }\n    replaceCurrentPermanentElementWithClone(permanentElement) {\n        const clone = permanentElement.cloneNode(true);\n        permanentElement.replaceWith(clone);\n    }\n    replacePlaceholderWithPermanentElement(permanentElement) {\n        const placeholder = this.getPlaceholderById(permanentElement.id);\n        placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n    }\n    getPlaceholderById(id) {\n        return this.placeholders.find((element) => element.content == id);\n    }\n    get placeholders() {\n        return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n    }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n    const element = document.createElement(\"meta\");\n    element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n    element.setAttribute(\"content\", permanentElement.id);\n    return element;\n}\n\nclass Renderer {\n    constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n        this.activeElement = null;\n        this.currentSnapshot = currentSnapshot;\n        this.newSnapshot = newSnapshot;\n        this.isPreview = isPreview;\n        this.willRender = willRender;\n        this.renderElement = renderElement;\n        this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n    }\n    get shouldRender() {\n        return true;\n    }\n    get reloadReason() {\n        return;\n    }\n    prepareToRender() {\n        return;\n    }\n    finishRendering() {\n        if (this.resolvingFunctions) {\n            this.resolvingFunctions.resolve();\n            delete this.resolvingFunctions;\n        }\n    }\n    async preservingPermanentElements(callback) {\n        await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n    }\n    focusFirstAutofocusableElement() {\n        const element = this.connectedSnapshot.firstAutofocusableElement;\n        if (elementIsFocusable(element)) {\n            element.focus();\n        }\n    }\n    enteringBardo(currentPermanentElement) {\n        if (this.activeElement)\n            return;\n        if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n            this.activeElement = this.currentSnapshot.activeElement;\n        }\n    }\n    leavingBardo(currentPermanentElement) {\n        if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n            this.activeElement.focus();\n            this.activeElement = null;\n        }\n    }\n    get connectedSnapshot() {\n        return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n    }\n    get currentElement() {\n        return this.currentSnapshot.element;\n    }\n    get newElement() {\n        return this.newSnapshot.element;\n    }\n    get permanentElementMap() {\n        return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n    }\n}\nfunction elementIsFocusable(element) {\n    return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n    static renderElement(currentElement, newElement) {\n        var _a;\n        const destinationRange = document.createRange();\n        destinationRange.selectNodeContents(currentElement);\n        destinationRange.deleteContents();\n        const frameElement = newElement;\n        const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n        if (sourceRange) {\n            sourceRange.selectNodeContents(frameElement);\n            currentElement.appendChild(sourceRange.extractContents());\n        }\n    }\n    constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n        super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n        this.delegate = delegate;\n    }\n    get shouldRender() {\n        return true;\n    }\n    async render() {\n        await nextAnimationFrame();\n        this.preservingPermanentElements(() => {\n            this.loadFrameElement();\n        });\n        this.scrollFrameIntoView();\n        await nextAnimationFrame();\n        this.focusFirstAutofocusableElement();\n        await nextAnimationFrame();\n        this.activateScriptElements();\n    }\n    loadFrameElement() {\n        this.delegate.willRenderFrame(this.currentElement, this.newElement);\n        this.renderElement(this.currentElement, this.newElement);\n    }\n    scrollFrameIntoView() {\n        if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n            const element = this.currentElement.firstElementChild;\n            const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n            const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n            if (element) {\n                element.scrollIntoView({ block, behavior });\n                return true;\n            }\n        }\n        return false;\n    }\n    activateScriptElements() {\n        for (const inertScriptElement of this.newScriptElements) {\n            const activatedScriptElement = activateScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    get newScriptElements() {\n        return this.currentElement.querySelectorAll(\"script\");\n    }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n    if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n        return value;\n    }\n    else {\n        return defaultValue;\n    }\n}\nfunction readScrollBehavior(value, defaultValue) {\n    if (value == \"auto\" || value == \"smooth\") {\n        return value;\n    }\n    else {\n        return defaultValue;\n    }\n}\n\nclass ProgressBar {\n    static get defaultCSS() {\n        return unindent `\n      .turbo-progress-bar {\n        position: fixed;\n        display: block;\n        top: 0;\n        left: 0;\n        height: 3px;\n        background: #0076ff;\n        z-index: 2147483647;\n        transition:\n          width ${ProgressBar.animationDuration}ms ease-out,\n          opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n        transform: translate3d(0, 0, 0);\n      }\n    `;\n    }\n    constructor() {\n        this.hiding = false;\n        this.value = 0;\n        this.visible = false;\n        this.trickle = () => {\n            this.setValue(this.value + Math.random() / 100);\n        };\n        this.stylesheetElement = this.createStylesheetElement();\n        this.progressElement = this.createProgressElement();\n        this.installStylesheetElement();\n        this.setValue(0);\n    }\n    show() {\n        if (!this.visible) {\n            this.visible = true;\n            this.installProgressElement();\n            this.startTrickling();\n        }\n    }\n    hide() {\n        if (this.visible && !this.hiding) {\n            this.hiding = true;\n            this.fadeProgressElement(() => {\n                this.uninstallProgressElement();\n                this.stopTrickling();\n                this.visible = false;\n                this.hiding = false;\n            });\n        }\n    }\n    setValue(value) {\n        this.value = value;\n        this.refresh();\n    }\n    installStylesheetElement() {\n        document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n    }\n    installProgressElement() {\n        this.progressElement.style.width = \"0\";\n        this.progressElement.style.opacity = \"1\";\n        document.documentElement.insertBefore(this.progressElement, document.body);\n        this.refresh();\n    }\n    fadeProgressElement(callback) {\n        this.progressElement.style.opacity = \"0\";\n        setTimeout(callback, ProgressBar.animationDuration * 1.5);\n    }\n    uninstallProgressElement() {\n        if (this.progressElement.parentNode) {\n            document.documentElement.removeChild(this.progressElement);\n        }\n    }\n    startTrickling() {\n        if (!this.trickleInterval) {\n            this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n        }\n    }\n    stopTrickling() {\n        window.clearInterval(this.trickleInterval);\n        delete this.trickleInterval;\n    }\n    refresh() {\n        requestAnimationFrame(() => {\n            this.progressElement.style.width = `${10 + this.value * 90}%`;\n        });\n    }\n    createStylesheetElement() {\n        const element = document.createElement(\"style\");\n        element.type = \"text/css\";\n        element.textContent = ProgressBar.defaultCSS;\n        if (this.cspNonce) {\n            element.nonce = this.cspNonce;\n        }\n        return element;\n    }\n    createProgressElement() {\n        const element = document.createElement(\"div\");\n        element.className = \"turbo-progress-bar\";\n        return element;\n    }\n    get cspNonce() {\n        return getMetaContent(\"csp-nonce\");\n    }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n    constructor() {\n        super(...arguments);\n        this.detailsByOuterHTML = this.children\n            .filter((element) => !elementIsNoscript(element))\n            .map((element) => elementWithoutNonce(element))\n            .reduce((result, element) => {\n            const { outerHTML } = element;\n            const details = outerHTML in result\n                ? result[outerHTML]\n                : {\n                    type: elementType(element),\n                    tracked: elementIsTracked(element),\n                    elements: [],\n                };\n            return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n        }, {});\n    }\n    get trackedElementSignature() {\n        return Object.keys(this.detailsByOuterHTML)\n            .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n            .join(\"\");\n    }\n    getScriptElementsNotInSnapshot(snapshot) {\n        return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n    }\n    getStylesheetElementsNotInSnapshot(snapshot) {\n        return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n    }\n    getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n        return Object.keys(this.detailsByOuterHTML)\n            .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n            .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n            .filter(({ type }) => type == matchedType)\n            .map(({ elements: [element] }) => element);\n    }\n    get provisionalElements() {\n        return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n            const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n            if (type == null && !tracked) {\n                return [...result, ...elements];\n            }\n            else if (elements.length > 1) {\n                return [...result, ...elements.slice(1)];\n            }\n            else {\n                return result;\n            }\n        }, []);\n    }\n    getMetaValue(name) {\n        const element = this.findMetaElementByName(name);\n        return element ? element.getAttribute(\"content\") : null;\n    }\n    findMetaElementByName(name) {\n        return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n            const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n            return elementIsMetaElementWithName(element, name) ? element : result;\n        }, undefined);\n    }\n}\nfunction elementType(element) {\n    if (elementIsScript(element)) {\n        return \"script\";\n    }\n    else if (elementIsStylesheet(element)) {\n        return \"stylesheet\";\n    }\n}\nfunction elementIsTracked(element) {\n    return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n    const tagName = element.localName;\n    return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n    const tagName = element.localName;\n    return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n    const tagName = element.localName;\n    return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n    const tagName = element.localName;\n    return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n    if (element.hasAttribute(\"nonce\")) {\n        element.setAttribute(\"nonce\", \"\");\n    }\n    return element;\n}\n\nclass PageSnapshot extends Snapshot {\n    static fromHTMLString(html = \"\") {\n        return this.fromDocument(parseHTMLDocument(html));\n    }\n    static fromElement(element) {\n        return this.fromDocument(element.ownerDocument);\n    }\n    static fromDocument({ head, body }) {\n        return new this(body, new HeadSnapshot(head));\n    }\n    constructor(element, headSnapshot) {\n        super(element);\n        this.headSnapshot = headSnapshot;\n    }\n    clone() {\n        const clonedElement = this.element.cloneNode(true);\n        const selectElements = this.element.querySelectorAll(\"select\");\n        const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n        for (const [index, source] of selectElements.entries()) {\n            const clone = clonedSelectElements[index];\n            for (const option of clone.selectedOptions)\n                option.selected = false;\n            for (const option of source.selectedOptions)\n                clone.options[option.index].selected = true;\n        }\n        for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n            clonedPasswordInput.value = \"\";\n        }\n        return new PageSnapshot(clonedElement, this.headSnapshot);\n    }\n    get headElement() {\n        return this.headSnapshot.element;\n    }\n    get rootLocation() {\n        var _a;\n        const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n        return expandURL(root);\n    }\n    get cacheControlValue() {\n        return this.getSetting(\"cache-control\");\n    }\n    get isPreviewable() {\n        return this.cacheControlValue != \"no-preview\";\n    }\n    get isCacheable() {\n        return this.cacheControlValue != \"no-cache\";\n    }\n    get isVisitable() {\n        return this.getSetting(\"visit-control\") != \"reload\";\n    }\n    getSetting(name) {\n        return this.headSnapshot.getMetaValue(`turbo-${name}`);\n    }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n    TimingMetric[\"visitStart\"] = \"visitStart\";\n    TimingMetric[\"requestStart\"] = \"requestStart\";\n    TimingMetric[\"requestEnd\"] = \"requestEnd\";\n    TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n    VisitState[\"initialized\"] = \"initialized\";\n    VisitState[\"started\"] = \"started\";\n    VisitState[\"canceled\"] = \"canceled\";\n    VisitState[\"failed\"] = \"failed\";\n    VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n    action: \"advance\",\n    historyChanged: false,\n    visitCachedSnapshot: () => { },\n    willRender: true,\n    updateHistory: true,\n    shouldCacheSnapshot: true,\n    acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n    SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n    SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n    SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n    constructor(delegate, location, restorationIdentifier, options = {}) {\n        this.identifier = uuid();\n        this.timingMetrics = {};\n        this.followedRedirect = false;\n        this.historyChanged = false;\n        this.scrolled = false;\n        this.shouldCacheSnapshot = true;\n        this.acceptsStreamResponse = false;\n        this.snapshotCached = false;\n        this.state = VisitState.initialized;\n        this.delegate = delegate;\n        this.location = location;\n        this.restorationIdentifier = restorationIdentifier || uuid();\n        const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\n        this.action = action;\n        this.historyChanged = historyChanged;\n        this.referrer = referrer;\n        this.snapshot = snapshot;\n        this.snapshotHTML = snapshotHTML;\n        this.response = response;\n        this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n        this.visitCachedSnapshot = visitCachedSnapshot;\n        this.willRender = willRender;\n        this.updateHistory = updateHistory;\n        this.scrolled = !willRender;\n        this.shouldCacheSnapshot = shouldCacheSnapshot;\n        this.acceptsStreamResponse = acceptsStreamResponse;\n    }\n    get adapter() {\n        return this.delegate.adapter;\n    }\n    get view() {\n        return this.delegate.view;\n    }\n    get history() {\n        return this.delegate.history;\n    }\n    get restorationData() {\n        return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n    }\n    get silent() {\n        return this.isSamePage;\n    }\n    start() {\n        if (this.state == VisitState.initialized) {\n            this.recordTimingMetric(TimingMetric.visitStart);\n            this.state = VisitState.started;\n            this.adapter.visitStarted(this);\n            this.delegate.visitStarted(this);\n        }\n    }\n    cancel() {\n        if (this.state == VisitState.started) {\n            if (this.request) {\n                this.request.cancel();\n            }\n            this.cancelRender();\n            this.state = VisitState.canceled;\n        }\n    }\n    complete() {\n        if (this.state == VisitState.started) {\n            this.recordTimingMetric(TimingMetric.visitEnd);\n            this.state = VisitState.completed;\n            this.followRedirect();\n            if (!this.followedRedirect) {\n                this.adapter.visitCompleted(this);\n                this.delegate.visitCompleted(this);\n            }\n        }\n    }\n    fail() {\n        if (this.state == VisitState.started) {\n            this.state = VisitState.failed;\n            this.adapter.visitFailed(this);\n        }\n    }\n    changeHistory() {\n        var _a;\n        if (!this.historyChanged && this.updateHistory) {\n            const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n            const method = getHistoryMethodForAction(actionForHistory);\n            this.history.update(method, this.location, this.restorationIdentifier);\n            this.historyChanged = true;\n        }\n    }\n    issueRequest() {\n        if (this.hasPreloadedResponse()) {\n            this.simulateRequest();\n        }\n        else if (this.shouldIssueRequest() && !this.request) {\n            this.request = new FetchRequest(this, FetchMethod.get, this.location);\n            this.request.perform();\n        }\n    }\n    simulateRequest() {\n        if (this.response) {\n            this.startRequest();\n            this.recordResponse();\n            this.finishRequest();\n        }\n    }\n    startRequest() {\n        this.recordTimingMetric(TimingMetric.requestStart);\n        this.adapter.visitRequestStarted(this);\n    }\n    recordResponse(response = this.response) {\n        this.response = response;\n        if (response) {\n            const { statusCode } = response;\n            if (isSuccessful(statusCode)) {\n                this.adapter.visitRequestCompleted(this);\n            }\n            else {\n                this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n            }\n        }\n    }\n    finishRequest() {\n        this.recordTimingMetric(TimingMetric.requestEnd);\n        this.adapter.visitRequestFinished(this);\n    }\n    loadResponse() {\n        if (this.response) {\n            const { statusCode, responseHTML } = this.response;\n            this.render(async () => {\n                if (this.shouldCacheSnapshot)\n                    this.cacheSnapshot();\n                if (this.view.renderPromise)\n                    await this.view.renderPromise;\n                if (isSuccessful(statusCode) && responseHTML != null) {\n                    await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n                    this.performScroll();\n                    this.adapter.visitRendered(this);\n                    this.complete();\n                }\n                else {\n                    await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n                    this.adapter.visitRendered(this);\n                    this.fail();\n                }\n            });\n        }\n    }\n    getCachedSnapshot() {\n        const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n        if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n            if (this.action == \"restore\" || snapshot.isPreviewable) {\n                return snapshot;\n            }\n        }\n    }\n    getPreloadedSnapshot() {\n        if (this.snapshotHTML) {\n            return PageSnapshot.fromHTMLString(this.snapshotHTML);\n        }\n    }\n    hasCachedSnapshot() {\n        return this.getCachedSnapshot() != null;\n    }\n    loadCachedSnapshot() {\n        const snapshot = this.getCachedSnapshot();\n        if (snapshot) {\n            const isPreview = this.shouldIssueRequest();\n            this.render(async () => {\n                this.cacheSnapshot();\n                if (this.isSamePage) {\n                    this.adapter.visitRendered(this);\n                }\n                else {\n                    if (this.view.renderPromise)\n                        await this.view.renderPromise;\n                    await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n                    this.performScroll();\n                    this.adapter.visitRendered(this);\n                    if (!isPreview) {\n                        this.complete();\n                    }\n                }\n            });\n        }\n    }\n    followRedirect() {\n        var _a;\n        if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n            this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n                action: \"replace\",\n                response: this.response,\n                shouldCacheSnapshot: false,\n                willRender: false,\n            });\n            this.followedRedirect = true;\n        }\n    }\n    goToSamePageAnchor() {\n        if (this.isSamePage) {\n            this.render(async () => {\n                this.cacheSnapshot();\n                this.performScroll();\n                this.changeHistory();\n                this.adapter.visitRendered(this);\n            });\n        }\n    }\n    prepareRequest(request) {\n        if (this.acceptsStreamResponse) {\n            request.acceptResponseType(StreamMessage.contentType);\n        }\n    }\n    requestStarted() {\n        this.startRequest();\n    }\n    requestPreventedHandlingResponse(_request, _response) { }\n    async requestSucceededWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({\n                statusCode: SystemStatusCode.contentTypeMismatch,\n                redirected,\n            });\n        }\n        else {\n            this.redirectedToLocation = response.redirected ? response.location : undefined;\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    async requestFailedWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({\n                statusCode: SystemStatusCode.contentTypeMismatch,\n                redirected,\n            });\n        }\n        else {\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    requestErrored(_request, _error) {\n        this.recordResponse({\n            statusCode: SystemStatusCode.networkFailure,\n            redirected: false,\n        });\n    }\n    requestFinished() {\n        this.finishRequest();\n    }\n    performScroll() {\n        if (!this.scrolled && !this.view.forceReloaded) {\n            if (this.action == \"restore\") {\n                this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n            }\n            else {\n                this.scrollToAnchor() || this.view.scrollToTop();\n            }\n            if (this.isSamePage) {\n                this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n            }\n            this.scrolled = true;\n        }\n    }\n    scrollToRestoredPosition() {\n        const { scrollPosition } = this.restorationData;\n        if (scrollPosition) {\n            this.view.scrollToPosition(scrollPosition);\n            return true;\n        }\n    }\n    scrollToAnchor() {\n        const anchor = getAnchor(this.location);\n        if (anchor != null) {\n            this.view.scrollToAnchor(anchor);\n            return true;\n        }\n    }\n    recordTimingMetric(metric) {\n        this.timingMetrics[metric] = new Date().getTime();\n    }\n    getTimingMetrics() {\n        return Object.assign({}, this.timingMetrics);\n    }\n    getHistoryMethodForAction(action) {\n        switch (action) {\n            case \"replace\":\n                return history.replaceState;\n            case \"advance\":\n            case \"restore\":\n                return history.pushState;\n        }\n    }\n    hasPreloadedResponse() {\n        return typeof this.response == \"object\";\n    }\n    shouldIssueRequest() {\n        if (this.isSamePage) {\n            return false;\n        }\n        else if (this.action == \"restore\") {\n            return !this.hasCachedSnapshot();\n        }\n        else {\n            return this.willRender;\n        }\n    }\n    cacheSnapshot() {\n        if (!this.snapshotCached) {\n            this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n            this.snapshotCached = true;\n        }\n    }\n    async render(callback) {\n        this.cancelRender();\n        await new Promise((resolve) => {\n            this.frame = requestAnimationFrame(() => resolve());\n        });\n        await callback();\n        delete this.frame;\n    }\n    cancelRender() {\n        if (this.frame) {\n            cancelAnimationFrame(this.frame);\n            delete this.frame;\n        }\n    }\n}\nfunction isSuccessful(statusCode) {\n    return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n    constructor(session) {\n        this.progressBar = new ProgressBar();\n        this.showProgressBar = () => {\n            this.progressBar.show();\n        };\n        this.session = session;\n    }\n    visitProposedToLocation(location, options) {\n        this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n    }\n    visitStarted(visit) {\n        this.location = visit.location;\n        visit.loadCachedSnapshot();\n        visit.issueRequest();\n        visit.goToSamePageAnchor();\n    }\n    visitRequestStarted(visit) {\n        this.progressBar.setValue(0);\n        if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n            this.showVisitProgressBarAfterDelay();\n        }\n        else {\n            this.showProgressBar();\n        }\n    }\n    visitRequestCompleted(visit) {\n        visit.loadResponse();\n    }\n    visitRequestFailedWithStatusCode(visit, statusCode) {\n        switch (statusCode) {\n            case SystemStatusCode.networkFailure:\n            case SystemStatusCode.timeoutFailure:\n            case SystemStatusCode.contentTypeMismatch:\n                return this.reload({\n                    reason: \"request_failed\",\n                    context: {\n                        statusCode,\n                    },\n                });\n            default:\n                return visit.loadResponse();\n        }\n    }\n    visitRequestFinished(_visit) {\n        this.progressBar.setValue(1);\n        this.hideVisitProgressBar();\n    }\n    visitCompleted(_visit) { }\n    pageInvalidated(reason) {\n        this.reload(reason);\n    }\n    visitFailed(_visit) { }\n    visitRendered(_visit) { }\n    formSubmissionStarted(_formSubmission) {\n        this.progressBar.setValue(0);\n        this.showFormProgressBarAfterDelay();\n    }\n    formSubmissionFinished(_formSubmission) {\n        this.progressBar.setValue(1);\n        this.hideFormProgressBar();\n    }\n    showVisitProgressBarAfterDelay() {\n        this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n    }\n    hideVisitProgressBar() {\n        this.progressBar.hide();\n        if (this.visitProgressBarTimeout != null) {\n            window.clearTimeout(this.visitProgressBarTimeout);\n            delete this.visitProgressBarTimeout;\n        }\n    }\n    showFormProgressBarAfterDelay() {\n        if (this.formProgressBarTimeout == null) {\n            this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n        }\n    }\n    hideFormProgressBar() {\n        this.progressBar.hide();\n        if (this.formProgressBarTimeout != null) {\n            window.clearTimeout(this.formProgressBarTimeout);\n            delete this.formProgressBarTimeout;\n        }\n    }\n    reload(reason) {\n        var _a;\n        dispatch(\"turbo:reload\", { detail: reason });\n        window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n    }\n    get navigator() {\n        return this.session.navigator;\n    }\n}\n\nclass CacheObserver {\n    constructor() {\n        this.selector = \"[data-turbo-temporary]\";\n        this.deprecatedSelector = \"[data-turbo-cache=false]\";\n        this.started = false;\n        this.removeTemporaryElements = ((_event) => {\n            for (const element of this.temporaryElements) {\n                element.remove();\n            }\n        });\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n        }\n    }\n    get temporaryElements() {\n        return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation];\n    }\n    get temporaryElementsWithDeprecation() {\n        const elements = document.querySelectorAll(this.deprecatedSelector);\n        if (elements.length) {\n            console.warn(`The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`);\n        }\n        return [...elements];\n    }\n}\n\nclass FrameRedirector {\n    constructor(session, element) {\n        this.session = session;\n        this.element = element;\n        this.linkInterceptor = new LinkInterceptor(this, element);\n        this.formSubmitObserver = new FormSubmitObserver(this, element);\n    }\n    start() {\n        this.linkInterceptor.start();\n        this.formSubmitObserver.start();\n    }\n    stop() {\n        this.linkInterceptor.stop();\n        this.formSubmitObserver.stop();\n    }\n    shouldInterceptLinkClick(element, _location, _event) {\n        return this.shouldRedirect(element);\n    }\n    linkClickIntercepted(element, url, event) {\n        const frame = this.findFrameElement(element);\n        if (frame) {\n            frame.delegate.linkClickIntercepted(element, url, event);\n        }\n    }\n    willSubmitForm(element, submitter) {\n        return (element.closest(\"turbo-frame\") == null &&\n            this.shouldSubmit(element, submitter) &&\n            this.shouldRedirect(element, submitter));\n    }\n    formSubmitted(element, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        if (frame) {\n            frame.delegate.formSubmitted(element, submitter);\n        }\n    }\n    shouldSubmit(form, submitter) {\n        var _a;\n        const action = getAction(form, submitter);\n        const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n        const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n        return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n    }\n    shouldRedirect(element, submitter) {\n        const isNavigatable = element instanceof HTMLFormElement\n            ? this.session.submissionIsNavigatable(element, submitter)\n            : this.session.elementIsNavigatable(element);\n        if (isNavigatable) {\n            const frame = this.findFrameElement(element, submitter);\n            return frame ? frame != element.closest(\"turbo-frame\") : false;\n        }\n        else {\n            return false;\n        }\n    }\n    findFrameElement(element, submitter) {\n        const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n        if (id && id != \"_top\") {\n            const frame = this.element.querySelector(`#${id}:not([disabled])`);\n            if (frame instanceof FrameElement) {\n                return frame;\n            }\n        }\n    }\n}\n\nclass History {\n    constructor(delegate) {\n        this.restorationIdentifier = uuid();\n        this.restorationData = {};\n        this.started = false;\n        this.pageLoaded = false;\n        this.onPopState = (event) => {\n            if (this.shouldHandlePopState()) {\n                const { turbo } = event.state || {};\n                if (turbo) {\n                    this.location = new URL(window.location.href);\n                    const { restorationIdentifier } = turbo;\n                    this.restorationIdentifier = restorationIdentifier;\n                    this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n                }\n            }\n        };\n        this.onPageLoad = async (_event) => {\n            await nextMicrotask();\n            this.pageLoaded = true;\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"popstate\", this.onPopState, false);\n            addEventListener(\"load\", this.onPageLoad, false);\n            this.started = true;\n            this.replace(new URL(window.location.href));\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"popstate\", this.onPopState, false);\n            removeEventListener(\"load\", this.onPageLoad, false);\n            this.started = false;\n        }\n    }\n    push(location, restorationIdentifier) {\n        this.update(history.pushState, location, restorationIdentifier);\n    }\n    replace(location, restorationIdentifier) {\n        this.update(history.replaceState, location, restorationIdentifier);\n    }\n    update(method, location, restorationIdentifier = uuid()) {\n        const state = { turbo: { restorationIdentifier } };\n        method.call(history, state, \"\", location.href);\n        this.location = location;\n        this.restorationIdentifier = restorationIdentifier;\n    }\n    getRestorationDataForIdentifier(restorationIdentifier) {\n        return this.restorationData[restorationIdentifier] || {};\n    }\n    updateRestorationData(additionalData) {\n        const { restorationIdentifier } = this;\n        const restorationData = this.restorationData[restorationIdentifier];\n        this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n    }\n    assumeControlOfScrollRestoration() {\n        var _a;\n        if (!this.previousScrollRestoration) {\n            this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n            history.scrollRestoration = \"manual\";\n        }\n    }\n    relinquishControlOfScrollRestoration() {\n        if (this.previousScrollRestoration) {\n            history.scrollRestoration = this.previousScrollRestoration;\n            delete this.previousScrollRestoration;\n        }\n    }\n    shouldHandlePopState() {\n        return this.pageIsLoaded();\n    }\n    pageIsLoaded() {\n        return this.pageLoaded || document.readyState == \"complete\";\n    }\n}\n\nclass Navigator {\n    constructor(delegate) {\n        this.delegate = delegate;\n    }\n    proposeVisit(location, options = {}) {\n        if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n            if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n                this.delegate.visitProposedToLocation(location, options);\n            }\n            else {\n                window.location.href = location.toString();\n            }\n        }\n    }\n    startVisit(locatable, restorationIdentifier, options = {}) {\n        this.stop();\n        this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n        this.currentVisit.start();\n    }\n    submitForm(form, submitter) {\n        this.stop();\n        this.formSubmission = new FormSubmission(this, form, submitter, true);\n        this.formSubmission.start();\n    }\n    stop() {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n            delete this.formSubmission;\n        }\n        if (this.currentVisit) {\n            this.currentVisit.cancel();\n            delete this.currentVisit;\n        }\n    }\n    get adapter() {\n        return this.delegate.adapter;\n    }\n    get view() {\n        return this.delegate.view;\n    }\n    get history() {\n        return this.delegate.history;\n    }\n    formSubmissionStarted(formSubmission) {\n        if (typeof this.adapter.formSubmissionStarted === \"function\") {\n            this.adapter.formSubmissionStarted(formSubmission);\n        }\n    }\n    async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n        if (formSubmission == this.formSubmission) {\n            const responseHTML = await fetchResponse.responseHTML;\n            if (responseHTML) {\n                const shouldCacheSnapshot = formSubmission.isSafe;\n                if (!shouldCacheSnapshot) {\n                    this.view.clearSnapshotCache();\n                }\n                const { statusCode, redirected } = fetchResponse;\n                const action = this.getActionForFormSubmission(formSubmission);\n                const visitOptions = {\n                    action,\n                    shouldCacheSnapshot,\n                    response: { statusCode, responseHTML, redirected },\n                };\n                this.proposeVisit(fetchResponse.location, visitOptions);\n            }\n        }\n    }\n    async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        const responseHTML = await fetchResponse.responseHTML;\n        if (responseHTML) {\n            const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n            if (fetchResponse.serverError) {\n                await this.view.renderError(snapshot, this.currentVisit);\n            }\n            else {\n                await this.view.renderPage(snapshot, false, true, this.currentVisit);\n            }\n            this.view.scrollToTop();\n            this.view.clearSnapshotCache();\n        }\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished(formSubmission) {\n        if (typeof this.adapter.formSubmissionFinished === \"function\") {\n            this.adapter.formSubmissionFinished(formSubmission);\n        }\n    }\n    visitStarted(visit) {\n        this.delegate.visitStarted(visit);\n    }\n    visitCompleted(visit) {\n        this.delegate.visitCompleted(visit);\n    }\n    locationWithActionIsSamePage(location, action) {\n        const anchor = getAnchor(location);\n        const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n        const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n        return (action !== \"replace\" &&\n            getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n            (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n    }\n    visitScrolledToSamePageLocation(oldURL, newURL) {\n        this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n    }\n    get location() {\n        return this.history.location;\n    }\n    get restorationIdentifier() {\n        return this.history.restorationIdentifier;\n    }\n    getActionForFormSubmission({ submitter, formElement }) {\n        return getVisitAction(submitter, formElement) || \"advance\";\n    }\n}\n\nvar PageStage;\n(function (PageStage) {\n    PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n    PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n    PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n    PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n    constructor(delegate) {\n        this.stage = PageStage.initial;\n        this.started = false;\n        this.interpretReadyState = () => {\n            const { readyState } = this;\n            if (readyState == \"interactive\") {\n                this.pageIsInteractive();\n            }\n            else if (readyState == \"complete\") {\n                this.pageIsComplete();\n            }\n        };\n        this.pageWillUnload = () => {\n            this.delegate.pageWillUnload();\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            if (this.stage == PageStage.initial) {\n                this.stage = PageStage.loading;\n            }\n            document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n            addEventListener(\"pagehide\", this.pageWillUnload, false);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n            removeEventListener(\"pagehide\", this.pageWillUnload, false);\n            this.started = false;\n        }\n    }\n    pageIsInteractive() {\n        if (this.stage == PageStage.loading) {\n            this.stage = PageStage.interactive;\n            this.delegate.pageBecameInteractive();\n        }\n    }\n    pageIsComplete() {\n        this.pageIsInteractive();\n        if (this.stage == PageStage.interactive) {\n            this.stage = PageStage.complete;\n            this.delegate.pageLoaded();\n        }\n    }\n    get readyState() {\n        return document.readyState;\n    }\n}\n\nclass ScrollObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.onScroll = () => {\n            this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"scroll\", this.onScroll, false);\n            this.onScroll();\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"scroll\", this.onScroll, false);\n            this.started = false;\n        }\n    }\n    updatePosition(position) {\n        this.delegate.scrollPositionChanged(position);\n    }\n}\n\nclass StreamMessageRenderer {\n    render({ fragment }) {\n        Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n    }\n    enteringBardo(currentPermanentElement, newPermanentElement) {\n        newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n    }\n    leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n    const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n    const permanentElementMap = {};\n    for (const permanentElementInDocument of permanentElementsInDocument) {\n        const { id } = permanentElementInDocument;\n        for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n            const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n            if (elementInStream) {\n                permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n            }\n        }\n    }\n    return permanentElementMap;\n}\n\nclass StreamObserver {\n    constructor(delegate) {\n        this.sources = new Set();\n        this.started = false;\n        this.inspectFetchResponse = ((event) => {\n            const response = fetchResponseFromEvent(event);\n            if (response && fetchResponseIsStream(response)) {\n                event.preventDefault();\n                this.receiveMessageResponse(response);\n            }\n        });\n        this.receiveMessageEvent = (event) => {\n            if (this.started && typeof event.data == \"string\") {\n                this.receiveMessageHTML(event.data);\n            }\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n        }\n    }\n    connectStreamSource(source) {\n        if (!this.streamSourceIsConnected(source)) {\n            this.sources.add(source);\n            source.addEventListener(\"message\", this.receiveMessageEvent, false);\n        }\n    }\n    disconnectStreamSource(source) {\n        if (this.streamSourceIsConnected(source)) {\n            this.sources.delete(source);\n            source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n        }\n    }\n    streamSourceIsConnected(source) {\n        return this.sources.has(source);\n    }\n    async receiveMessageResponse(response) {\n        const html = await response.responseHTML;\n        if (html) {\n            this.receiveMessageHTML(html);\n        }\n    }\n    receiveMessageHTML(html) {\n        this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n    }\n}\nfunction fetchResponseFromEvent(event) {\n    var _a;\n    const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n    if (fetchResponse instanceof FetchResponse) {\n        return fetchResponse;\n    }\n}\nfunction fetchResponseIsStream(response) {\n    var _a;\n    const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n    return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n    static renderElement(currentElement, newElement) {\n        const { documentElement, body } = document;\n        documentElement.replaceChild(newElement, body);\n    }\n    async render() {\n        this.replaceHeadAndBody();\n        this.activateScriptElements();\n    }\n    replaceHeadAndBody() {\n        const { documentElement, head } = document;\n        documentElement.replaceChild(this.newHead, head);\n        this.renderElement(this.currentElement, this.newElement);\n    }\n    activateScriptElements() {\n        for (const replaceableElement of this.scriptElements) {\n            const parentNode = replaceableElement.parentNode;\n            if (parentNode) {\n                const element = activateScriptElement(replaceableElement);\n                parentNode.replaceChild(element, replaceableElement);\n            }\n        }\n    }\n    get newHead() {\n        return this.newSnapshot.headSnapshot.element;\n    }\n    get scriptElements() {\n        return document.documentElement.querySelectorAll(\"script\");\n    }\n}\n\nclass PageRenderer extends Renderer {\n    static renderElement(currentElement, newElement) {\n        if (document.body && newElement instanceof HTMLBodyElement) {\n            document.body.replaceWith(newElement);\n        }\n        else {\n            document.documentElement.appendChild(newElement);\n        }\n    }\n    get shouldRender() {\n        return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n    }\n    get reloadReason() {\n        if (!this.newSnapshot.isVisitable) {\n            return {\n                reason: \"turbo_visit_control_is_reload\",\n            };\n        }\n        if (!this.trackedElementsAreIdentical) {\n            return {\n                reason: \"tracked_element_mismatch\",\n            };\n        }\n    }\n    async prepareToRender() {\n        await this.mergeHead();\n    }\n    async render() {\n        if (this.willRender) {\n            await this.replaceBody();\n        }\n    }\n    finishRendering() {\n        super.finishRendering();\n        if (!this.isPreview) {\n            this.focusFirstAutofocusableElement();\n        }\n    }\n    get currentHeadSnapshot() {\n        return this.currentSnapshot.headSnapshot;\n    }\n    get newHeadSnapshot() {\n        return this.newSnapshot.headSnapshot;\n    }\n    get newElement() {\n        return this.newSnapshot.element;\n    }\n    async mergeHead() {\n        const mergedHeadElements = this.mergeProvisionalElements();\n        const newStylesheetElements = this.copyNewHeadStylesheetElements();\n        this.copyNewHeadScriptElements();\n        await mergedHeadElements;\n        await newStylesheetElements;\n    }\n    async replaceBody() {\n        await this.preservingPermanentElements(async () => {\n            this.activateNewBody();\n            await this.assignNewBody();\n        });\n    }\n    get trackedElementsAreIdentical() {\n        return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n    }\n    async copyNewHeadStylesheetElements() {\n        const loadingElements = [];\n        for (const element of this.newHeadStylesheetElements) {\n            loadingElements.push(waitForLoad(element));\n            document.head.appendChild(element);\n        }\n        await Promise.all(loadingElements);\n    }\n    copyNewHeadScriptElements() {\n        for (const element of this.newHeadScriptElements) {\n            document.head.appendChild(activateScriptElement(element));\n        }\n    }\n    async mergeProvisionalElements() {\n        const newHeadElements = [...this.newHeadProvisionalElements];\n        for (const element of this.currentHeadProvisionalElements) {\n            if (!this.isCurrentElementInElementList(element, newHeadElements)) {\n                document.head.removeChild(element);\n            }\n        }\n        for (const element of newHeadElements) {\n            document.head.appendChild(element);\n        }\n    }\n    isCurrentElementInElementList(element, elementList) {\n        for (const [index, newElement] of elementList.entries()) {\n            if (element.tagName == \"TITLE\") {\n                if (newElement.tagName != \"TITLE\") {\n                    continue;\n                }\n                if (element.innerHTML == newElement.innerHTML) {\n                    elementList.splice(index, 1);\n                    return true;\n                }\n            }\n            if (newElement.isEqualNode(element)) {\n                elementList.splice(index, 1);\n                return true;\n            }\n        }\n        return false;\n    }\n    removeCurrentHeadProvisionalElements() {\n        for (const element of this.currentHeadProvisionalElements) {\n            document.head.removeChild(element);\n        }\n    }\n    copyNewHeadProvisionalElements() {\n        for (const element of this.newHeadProvisionalElements) {\n            document.head.appendChild(element);\n        }\n    }\n    activateNewBody() {\n        document.adoptNode(this.newElement);\n        this.activateNewBodyScriptElements();\n    }\n    activateNewBodyScriptElements() {\n        for (const inertScriptElement of this.newBodyScriptElements) {\n            const activatedScriptElement = activateScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    async assignNewBody() {\n        await this.renderElement(this.currentElement, this.newElement);\n    }\n    get newHeadStylesheetElements() {\n        return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n    }\n    get newHeadScriptElements() {\n        return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n    }\n    get currentHeadProvisionalElements() {\n        return this.currentHeadSnapshot.provisionalElements;\n    }\n    get newHeadProvisionalElements() {\n        return this.newHeadSnapshot.provisionalElements;\n    }\n    get newBodyScriptElements() {\n        return this.newElement.querySelectorAll(\"script\");\n    }\n}\n\nclass SnapshotCache {\n    constructor(size) {\n        this.keys = [];\n        this.snapshots = {};\n        this.size = size;\n    }\n    has(location) {\n        return toCacheKey(location) in this.snapshots;\n    }\n    get(location) {\n        if (this.has(location)) {\n            const snapshot = this.read(location);\n            this.touch(location);\n            return snapshot;\n        }\n    }\n    put(location, snapshot) {\n        this.write(location, snapshot);\n        this.touch(location);\n        return snapshot;\n    }\n    clear() {\n        this.snapshots = {};\n    }\n    read(location) {\n        return this.snapshots[toCacheKey(location)];\n    }\n    write(location, snapshot) {\n        this.snapshots[toCacheKey(location)] = snapshot;\n    }\n    touch(location) {\n        const key = toCacheKey(location);\n        const index = this.keys.indexOf(key);\n        if (index > -1)\n            this.keys.splice(index, 1);\n        this.keys.unshift(key);\n        this.trim();\n    }\n    trim() {\n        for (const key of this.keys.splice(this.size)) {\n            delete this.snapshots[key];\n        }\n    }\n}\n\nclass PageView extends View {\n    constructor() {\n        super(...arguments);\n        this.snapshotCache = new SnapshotCache(10);\n        this.lastRenderedLocation = new URL(location.href);\n        this.forceReloaded = false;\n    }\n    renderPage(snapshot, isPreview = false, willRender = true, visit) {\n        const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n        if (!renderer.shouldRender) {\n            this.forceReloaded = true;\n        }\n        else {\n            visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n        }\n        return this.render(renderer);\n    }\n    renderError(snapshot, visit) {\n        visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n        const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n        return this.render(renderer);\n    }\n    clearSnapshotCache() {\n        this.snapshotCache.clear();\n    }\n    async cacheSnapshot(snapshot = this.snapshot) {\n        if (snapshot.isCacheable) {\n            this.delegate.viewWillCacheSnapshot();\n            const { lastRenderedLocation: location } = this;\n            await nextEventLoopTick();\n            const cachedSnapshot = snapshot.clone();\n            this.snapshotCache.put(location, cachedSnapshot);\n            return cachedSnapshot;\n        }\n    }\n    getCachedSnapshotForLocation(location) {\n        return this.snapshotCache.get(location);\n    }\n    get snapshot() {\n        return PageSnapshot.fromElement(this.element);\n    }\n}\n\nclass Preloader {\n    constructor(delegate) {\n        this.selector = \"a[data-turbo-preload]\";\n        this.delegate = delegate;\n    }\n    get snapshotCache() {\n        return this.delegate.navigator.view.snapshotCache;\n    }\n    start() {\n        if (document.readyState === \"loading\") {\n            return document.addEventListener(\"DOMContentLoaded\", () => {\n                this.preloadOnLoadLinksForView(document.body);\n            });\n        }\n        else {\n            this.preloadOnLoadLinksForView(document.body);\n        }\n    }\n    preloadOnLoadLinksForView(element) {\n        for (const link of element.querySelectorAll(this.selector)) {\n            this.preloadURL(link);\n        }\n    }\n    async preloadURL(link) {\n        const location = new URL(link.href);\n        if (this.snapshotCache.has(location)) {\n            return;\n        }\n        try {\n            const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n            const responseText = await response.text();\n            const snapshot = PageSnapshot.fromHTMLString(responseText);\n            this.snapshotCache.put(location, snapshot);\n        }\n        catch (_) {\n        }\n    }\n}\n\nclass Session {\n    constructor() {\n        this.navigator = new Navigator(this);\n        this.history = new History(this);\n        this.preloader = new Preloader(this);\n        this.view = new PageView(this, document.documentElement);\n        this.adapter = new BrowserAdapter(this);\n        this.pageObserver = new PageObserver(this);\n        this.cacheObserver = new CacheObserver();\n        this.linkClickObserver = new LinkClickObserver(this, window);\n        this.formSubmitObserver = new FormSubmitObserver(this, document);\n        this.scrollObserver = new ScrollObserver(this);\n        this.streamObserver = new StreamObserver(this);\n        this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n        this.frameRedirector = new FrameRedirector(this, document.documentElement);\n        this.streamMessageRenderer = new StreamMessageRenderer();\n        this.drive = true;\n        this.enabled = true;\n        this.progressBarDelay = 500;\n        this.started = false;\n        this.formMode = \"on\";\n    }\n    start() {\n        if (!this.started) {\n            this.pageObserver.start();\n            this.cacheObserver.start();\n            this.formLinkClickObserver.start();\n            this.linkClickObserver.start();\n            this.formSubmitObserver.start();\n            this.scrollObserver.start();\n            this.streamObserver.start();\n            this.frameRedirector.start();\n            this.history.start();\n            this.preloader.start();\n            this.started = true;\n            this.enabled = true;\n        }\n    }\n    disable() {\n        this.enabled = false;\n    }\n    stop() {\n        if (this.started) {\n            this.pageObserver.stop();\n            this.cacheObserver.stop();\n            this.formLinkClickObserver.stop();\n            this.linkClickObserver.stop();\n            this.formSubmitObserver.stop();\n            this.scrollObserver.stop();\n            this.streamObserver.stop();\n            this.frameRedirector.stop();\n            this.history.stop();\n            this.started = false;\n        }\n    }\n    registerAdapter(adapter) {\n        this.adapter = adapter;\n    }\n    visit(location, options = {}) {\n        const frameElement = options.frame ? document.getElementById(options.frame) : null;\n        if (frameElement instanceof FrameElement) {\n            frameElement.src = location.toString();\n            frameElement.loaded;\n        }\n        else {\n            this.navigator.proposeVisit(expandURL(location), options);\n        }\n    }\n    connectStreamSource(source) {\n        this.streamObserver.connectStreamSource(source);\n    }\n    disconnectStreamSource(source) {\n        this.streamObserver.disconnectStreamSource(source);\n    }\n    renderStreamMessage(message) {\n        this.streamMessageRenderer.render(StreamMessage.wrap(message));\n    }\n    clearCache() {\n        this.view.clearSnapshotCache();\n    }\n    setProgressBarDelay(delay) {\n        this.progressBarDelay = delay;\n    }\n    setFormMode(mode) {\n        this.formMode = mode;\n    }\n    get location() {\n        return this.history.location;\n    }\n    get restorationIdentifier() {\n        return this.history.restorationIdentifier;\n    }\n    historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n        if (this.enabled) {\n            this.navigator.startVisit(location, restorationIdentifier, {\n                action: \"restore\",\n                historyChanged: true,\n            });\n        }\n        else {\n            this.adapter.pageInvalidated({\n                reason: \"turbo_disabled\",\n            });\n        }\n    }\n    scrollPositionChanged(position) {\n        this.history.updateRestorationData({ scrollPosition: position });\n    }\n    willSubmitFormLinkToLocation(link, location) {\n        return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n    }\n    submittedFormLinkToLocation() { }\n    willFollowLinkToLocation(link, location, event) {\n        return (this.elementIsNavigatable(link) &&\n            locationIsVisitable(location, this.snapshot.rootLocation) &&\n            this.applicationAllowsFollowingLinkToLocation(link, location, event));\n    }\n    followedLinkToLocation(link, location) {\n        const action = this.getActionForLink(link);\n        const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n        this.visit(location.href, { action, acceptsStreamResponse });\n    }\n    allowsVisitingLocationWithAction(location, action) {\n        return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n    }\n    visitProposedToLocation(location, options) {\n        extendURLWithDeprecatedProperties(location);\n        this.adapter.visitProposedToLocation(location, options);\n    }\n    visitStarted(visit) {\n        if (!visit.acceptsStreamResponse) {\n            markAsBusy(document.documentElement);\n        }\n        extendURLWithDeprecatedProperties(visit.location);\n        if (!visit.silent) {\n            this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n        }\n    }\n    visitCompleted(visit) {\n        clearBusyState(document.documentElement);\n        this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n    }\n    locationWithActionIsSamePage(location, action) {\n        return this.navigator.locationWithActionIsSamePage(location, action);\n    }\n    visitScrolledToSamePageLocation(oldURL, newURL) {\n        this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n    }\n    willSubmitForm(form, submitter) {\n        const action = getAction(form, submitter);\n        return (this.submissionIsNavigatable(form, submitter) &&\n            locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n    }\n    formSubmitted(form, submitter) {\n        this.navigator.submitForm(form, submitter);\n    }\n    pageBecameInteractive() {\n        this.view.lastRenderedLocation = this.location;\n        this.notifyApplicationAfterPageLoad();\n    }\n    pageLoaded() {\n        this.history.assumeControlOfScrollRestoration();\n    }\n    pageWillUnload() {\n        this.history.relinquishControlOfScrollRestoration();\n    }\n    receivedMessageFromStream(message) {\n        this.renderStreamMessage(message);\n    }\n    viewWillCacheSnapshot() {\n        var _a;\n        if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n            this.notifyApplicationBeforeCachingSnapshot();\n        }\n    }\n    allowsImmediateRender({ element }, options) {\n        const event = this.notifyApplicationBeforeRender(element, options);\n        const { defaultPrevented, detail: { render }, } = event;\n        if (this.view.renderer && render) {\n            this.view.renderer.renderElement = render;\n        }\n        return !defaultPrevented;\n    }\n    viewRenderedSnapshot(_snapshot, _isPreview) {\n        this.view.lastRenderedLocation = this.history.location;\n        this.notifyApplicationAfterRender();\n    }\n    preloadOnLoadLinksForView(element) {\n        this.preloader.preloadOnLoadLinksForView(element);\n    }\n    viewInvalidated(reason) {\n        this.adapter.pageInvalidated(reason);\n    }\n    frameLoaded(frame) {\n        this.notifyApplicationAfterFrameLoad(frame);\n    }\n    frameRendered(fetchResponse, frame) {\n        this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n    }\n    applicationAllowsFollowingLinkToLocation(link, location, ev) {\n        const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n        return !event.defaultPrevented;\n    }\n    applicationAllowsVisitingLocation(location) {\n        const event = this.notifyApplicationBeforeVisitingLocation(location);\n        return !event.defaultPrevented;\n    }\n    notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n        return dispatch(\"turbo:click\", {\n            target: link,\n            detail: { url: location.href, originalEvent: event },\n            cancelable: true,\n        });\n    }\n    notifyApplicationBeforeVisitingLocation(location) {\n        return dispatch(\"turbo:before-visit\", {\n            detail: { url: location.href },\n            cancelable: true,\n        });\n    }\n    notifyApplicationAfterVisitingLocation(location, action) {\n        return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n    }\n    notifyApplicationBeforeCachingSnapshot() {\n        return dispatch(\"turbo:before-cache\");\n    }\n    notifyApplicationBeforeRender(newBody, options) {\n        return dispatch(\"turbo:before-render\", {\n            detail: Object.assign({ newBody }, options),\n            cancelable: true,\n        });\n    }\n    notifyApplicationAfterRender() {\n        return dispatch(\"turbo:render\");\n    }\n    notifyApplicationAfterPageLoad(timing = {}) {\n        return dispatch(\"turbo:load\", {\n            detail: { url: this.location.href, timing },\n        });\n    }\n    notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n        dispatchEvent(new HashChangeEvent(\"hashchange\", {\n            oldURL: oldURL.toString(),\n            newURL: newURL.toString(),\n        }));\n    }\n    notifyApplicationAfterFrameLoad(frame) {\n        return dispatch(\"turbo:frame-load\", { target: frame });\n    }\n    notifyApplicationAfterFrameRender(fetchResponse, frame) {\n        return dispatch(\"turbo:frame-render\", {\n            detail: { fetchResponse },\n            target: frame,\n            cancelable: true,\n        });\n    }\n    submissionIsNavigatable(form, submitter) {\n        if (this.formMode == \"off\") {\n            return false;\n        }\n        else {\n            const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n            if (this.formMode == \"optin\") {\n                return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n            }\n            else {\n                return submitterIsNavigatable && this.elementIsNavigatable(form);\n            }\n        }\n    }\n    elementIsNavigatable(element) {\n        const container = findClosestRecursively(element, \"[data-turbo]\");\n        const withinFrame = findClosestRecursively(element, \"turbo-frame\");\n        if (this.drive || withinFrame) {\n            if (container) {\n                return container.getAttribute(\"data-turbo\") != \"false\";\n            }\n            else {\n                return true;\n            }\n        }\n        else {\n            if (container) {\n                return container.getAttribute(\"data-turbo\") == \"true\";\n            }\n            else {\n                return false;\n            }\n        }\n    }\n    getActionForLink(link) {\n        return getVisitAction(link) || \"advance\";\n    }\n    get snapshot() {\n        return this.view.snapshot;\n    }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n    Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n    absoluteURL: {\n        get() {\n            return this.toString();\n        },\n    },\n};\n\nclass Cache {\n    constructor(session) {\n        this.session = session;\n    }\n    clear() {\n        this.session.clearCache();\n    }\n    resetCacheControl() {\n        this.setCacheControl(\"\");\n    }\n    exemptPageFromCache() {\n        this.setCacheControl(\"no-cache\");\n    }\n    exemptPageFromPreview() {\n        this.setCacheControl(\"no-preview\");\n    }\n    setCacheControl(value) {\n        setMetaContent(\"turbo-cache-control\", value);\n    }\n}\n\nconst StreamActions = {\n    after() {\n        this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n    },\n    append() {\n        this.removeDuplicateTargetChildren();\n        this.targetElements.forEach((e) => e.append(this.templateContent));\n    },\n    before() {\n        this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n    },\n    prepend() {\n        this.removeDuplicateTargetChildren();\n        this.targetElements.forEach((e) => e.prepend(this.templateContent));\n    },\n    remove() {\n        this.targetElements.forEach((e) => e.remove());\n    },\n    replace() {\n        this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n    },\n    update() {\n        this.targetElements.forEach((targetElement) => {\n            targetElement.innerHTML = \"\";\n            targetElement.append(this.templateContent);\n        });\n    },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n    session.start();\n}\nfunction registerAdapter(adapter) {\n    session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n    session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n    session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n    session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n    session.renderStreamMessage(message);\n}\nfunction clearCache() {\n    console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n    session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n    session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n    FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n    session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    navigator: navigator$1,\n    session: session,\n    cache: cache,\n    PageRenderer: PageRenderer,\n    PageSnapshot: PageSnapshot,\n    FrameRenderer: FrameRenderer,\n    start: start,\n    registerAdapter: registerAdapter,\n    visit: visit,\n    connectStreamSource: connectStreamSource,\n    disconnectStreamSource: disconnectStreamSource,\n    renderStreamMessage: renderStreamMessage,\n    clearCache: clearCache,\n    setProgressBarDelay: setProgressBarDelay,\n    setConfirmMethod: setConfirmMethod,\n    setFormMode: setFormMode,\n    StreamActions: StreamActions\n});\n\nclass TurboFrameMissingError extends Error {\n}\n\nclass FrameController {\n    constructor(element) {\n        this.fetchResponseLoaded = (_fetchResponse) => { };\n        this.currentFetchRequest = null;\n        this.resolveVisitPromise = () => { };\n        this.connected = false;\n        this.hasBeenLoaded = false;\n        this.ignoredAttributes = new Set();\n        this.action = null;\n        this.visitCachedSnapshot = ({ element }) => {\n            const frame = element.querySelector(\"#\" + this.element.id);\n            if (frame && this.previousFrameElement) {\n                frame.replaceChildren(...this.previousFrameElement.children);\n            }\n            delete this.previousFrameElement;\n        };\n        this.element = element;\n        this.view = new FrameView(this, this.element);\n        this.appearanceObserver = new AppearanceObserver(this, this.element);\n        this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n        this.linkInterceptor = new LinkInterceptor(this, this.element);\n        this.restorationIdentifier = uuid();\n        this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n    }\n    connect() {\n        if (!this.connected) {\n            this.connected = true;\n            if (this.loadingStyle == FrameLoadingStyle.lazy) {\n                this.appearanceObserver.start();\n            }\n            else {\n                this.loadSourceURL();\n            }\n            this.formLinkClickObserver.start();\n            this.linkInterceptor.start();\n            this.formSubmitObserver.start();\n        }\n    }\n    disconnect() {\n        if (this.connected) {\n            this.connected = false;\n            this.appearanceObserver.stop();\n            this.formLinkClickObserver.stop();\n            this.linkInterceptor.stop();\n            this.formSubmitObserver.stop();\n        }\n    }\n    disabledChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.eager) {\n            this.loadSourceURL();\n        }\n    }\n    sourceURLChanged() {\n        if (this.isIgnoringChangesTo(\"src\"))\n            return;\n        if (this.element.isConnected) {\n            this.complete = false;\n        }\n        if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n            this.loadSourceURL();\n        }\n    }\n    sourceURLReloaded() {\n        const { src } = this.element;\n        this.ignoringChangesToAttribute(\"complete\", () => {\n            this.element.removeAttribute(\"complete\");\n        });\n        this.element.src = null;\n        this.element.src = src;\n        return this.element.loaded;\n    }\n    completeChanged() {\n        if (this.isIgnoringChangesTo(\"complete\"))\n            return;\n        this.loadSourceURL();\n    }\n    loadingStyleChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.lazy) {\n            this.appearanceObserver.start();\n        }\n        else {\n            this.appearanceObserver.stop();\n            this.loadSourceURL();\n        }\n    }\n    async loadSourceURL() {\n        if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n            this.element.loaded = this.visit(expandURL(this.sourceURL));\n            this.appearanceObserver.stop();\n            await this.element.loaded;\n            this.hasBeenLoaded = true;\n        }\n    }\n    async loadResponse(fetchResponse) {\n        if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n            this.sourceURL = fetchResponse.response.url;\n        }\n        try {\n            const html = await fetchResponse.responseHTML;\n            if (html) {\n                const document = parseHTMLDocument(html);\n                const pageSnapshot = PageSnapshot.fromDocument(document);\n                if (pageSnapshot.isVisitable) {\n                    await this.loadFrameResponse(fetchResponse, document);\n                }\n                else {\n                    await this.handleUnvisitableFrameResponse(fetchResponse);\n                }\n            }\n        }\n        finally {\n            this.fetchResponseLoaded = () => { };\n        }\n    }\n    elementAppearedInViewport(element) {\n        this.proposeVisitIfNavigatedWithAction(element, element);\n        this.loadSourceURL();\n    }\n    willSubmitFormLinkToLocation(link) {\n        return this.shouldInterceptNavigation(link);\n    }\n    submittedFormLinkToLocation(link, _location, form) {\n        const frame = this.findFrameElement(link);\n        if (frame)\n            form.setAttribute(\"data-turbo-frame\", frame.id);\n    }\n    shouldInterceptLinkClick(element, _location, _event) {\n        return this.shouldInterceptNavigation(element);\n    }\n    linkClickIntercepted(element, location) {\n        this.navigateFrame(element, location);\n    }\n    willSubmitForm(element, submitter) {\n        return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n    }\n    formSubmitted(element, submitter) {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n        }\n        this.formSubmission = new FormSubmission(this, element, submitter);\n        const { fetchRequest } = this.formSubmission;\n        this.prepareRequest(fetchRequest);\n        this.formSubmission.start();\n    }\n    prepareRequest(request) {\n        var _a;\n        request.headers[\"Turbo-Frame\"] = this.id;\n        if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n            request.acceptResponseType(StreamMessage.contentType);\n        }\n    }\n    requestStarted(_request) {\n        markAsBusy(this.element);\n    }\n    requestPreventedHandlingResponse(_request, _response) {\n        this.resolveVisitPromise();\n    }\n    async requestSucceededWithResponse(request, response) {\n        await this.loadResponse(response);\n        this.resolveVisitPromise();\n    }\n    async requestFailedWithResponse(request, response) {\n        await this.loadResponse(response);\n        this.resolveVisitPromise();\n    }\n    requestErrored(request, error) {\n        console.error(error);\n        this.resolveVisitPromise();\n    }\n    requestFinished(_request) {\n        clearBusyState(this.element);\n    }\n    formSubmissionStarted({ formElement }) {\n        markAsBusy(formElement, this.findFrameElement(formElement));\n    }\n    formSubmissionSucceededWithResponse(formSubmission, response) {\n        const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n        frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n        frame.delegate.loadResponse(response);\n        if (!formSubmission.isSafe) {\n            session.clearCache();\n        }\n    }\n    formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        this.element.delegate.loadResponse(fetchResponse);\n        session.clearCache();\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished({ formElement }) {\n        clearBusyState(formElement, this.findFrameElement(formElement));\n    }\n    allowsImmediateRender({ element: newFrame }, options) {\n        const event = dispatch(\"turbo:before-frame-render\", {\n            target: this.element,\n            detail: Object.assign({ newFrame }, options),\n            cancelable: true,\n        });\n        const { defaultPrevented, detail: { render }, } = event;\n        if (this.view.renderer && render) {\n            this.view.renderer.renderElement = render;\n        }\n        return !defaultPrevented;\n    }\n    viewRenderedSnapshot(_snapshot, _isPreview) { }\n    preloadOnLoadLinksForView(element) {\n        session.preloadOnLoadLinksForView(element);\n    }\n    viewInvalidated() { }\n    willRenderFrame(currentElement, _newElement) {\n        this.previousFrameElement = currentElement.cloneNode(true);\n    }\n    async loadFrameResponse(fetchResponse, document) {\n        const newFrameElement = await this.extractForeignFrameElement(document.body);\n        if (newFrameElement) {\n            const snapshot = new Snapshot(newFrameElement);\n            const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n            if (this.view.renderPromise)\n                await this.view.renderPromise;\n            this.changeHistory();\n            await this.view.render(renderer);\n            this.complete = true;\n            session.frameRendered(fetchResponse, this.element);\n            session.frameLoaded(this.element);\n            this.fetchResponseLoaded(fetchResponse);\n        }\n        else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n            this.handleFrameMissingFromResponse(fetchResponse);\n        }\n    }\n    async visit(url) {\n        var _a;\n        const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n        (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n        this.currentFetchRequest = request;\n        return new Promise((resolve) => {\n            this.resolveVisitPromise = () => {\n                this.resolveVisitPromise = () => { };\n                this.currentFetchRequest = null;\n                resolve();\n            };\n            request.perform();\n        });\n    }\n    navigateFrame(element, url, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n        this.withCurrentNavigationElement(element, () => {\n            frame.src = url;\n        });\n    }\n    proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n        this.action = getVisitAction(submitter, element, frame);\n        if (this.action) {\n            const pageSnapshot = PageSnapshot.fromElement(frame).clone();\n            const { visitCachedSnapshot } = frame.delegate;\n            frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n                if (frame.src) {\n                    const { statusCode, redirected } = fetchResponse;\n                    const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n                    const response = { statusCode, redirected, responseHTML };\n                    const options = {\n                        response,\n                        visitCachedSnapshot,\n                        willRender: false,\n                        updateHistory: false,\n                        restorationIdentifier: this.restorationIdentifier,\n                        snapshot: pageSnapshot,\n                    };\n                    if (this.action)\n                        options.action = this.action;\n                    session.visit(frame.src, options);\n                }\n            };\n        }\n    }\n    changeHistory() {\n        if (this.action) {\n            const method = getHistoryMethodForAction(this.action);\n            session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n        }\n    }\n    async handleUnvisitableFrameResponse(fetchResponse) {\n        console.warn(`The response (${fetchResponse.statusCode}) from <turbo-frame id=\"${this.element.id}\"> is performing a full page visit due to turbo-visit-control.`);\n        await this.visitResponse(fetchResponse.response);\n    }\n    willHandleFrameMissingFromResponse(fetchResponse) {\n        this.element.setAttribute(\"complete\", \"\");\n        const response = fetchResponse.response;\n        const visit = async (url, options = {}) => {\n            if (url instanceof Response) {\n                this.visitResponse(url);\n            }\n            else {\n                session.visit(url, options);\n            }\n        };\n        const event = dispatch(\"turbo:frame-missing\", {\n            target: this.element,\n            detail: { response, visit },\n            cancelable: true,\n        });\n        return !event.defaultPrevented;\n    }\n    handleFrameMissingFromResponse(fetchResponse) {\n        this.view.missing();\n        this.throwFrameMissingError(fetchResponse);\n    }\n    throwFrameMissingError(fetchResponse) {\n        const message = `The response (${fetchResponse.statusCode}) did not contain the expected <turbo-frame id=\"${this.element.id}\"> and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;\n        throw new TurboFrameMissingError(message);\n    }\n    async visitResponse(response) {\n        const wrapped = new FetchResponse(response);\n        const responseHTML = await wrapped.responseHTML;\n        const { location, redirected, statusCode } = wrapped;\n        return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n    }\n    findFrameElement(element, submitter) {\n        var _a;\n        const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n        return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n    }\n    async extractForeignFrameElement(container) {\n        let element;\n        const id = CSS.escape(this.id);\n        try {\n            element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n            if (element) {\n                return element;\n            }\n            element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n            if (element) {\n                await element.loaded;\n                return await this.extractForeignFrameElement(element);\n            }\n        }\n        catch (error) {\n            console.error(error);\n            return new FrameElement();\n        }\n        return null;\n    }\n    formActionIsVisitable(form, submitter) {\n        const action = getAction(form, submitter);\n        return locationIsVisitable(expandURL(action), this.rootLocation);\n    }\n    shouldInterceptNavigation(element, submitter) {\n        const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n        if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n            return false;\n        }\n        if (!this.enabled || id == \"_top\") {\n            return false;\n        }\n        if (id) {\n            const frameElement = getFrameElementById(id);\n            if (frameElement) {\n                return !frameElement.disabled;\n            }\n        }\n        if (!session.elementIsNavigatable(element)) {\n            return false;\n        }\n        if (submitter && !session.elementIsNavigatable(submitter)) {\n            return false;\n        }\n        return true;\n    }\n    get id() {\n        return this.element.id;\n    }\n    get enabled() {\n        return !this.element.disabled;\n    }\n    get sourceURL() {\n        if (this.element.src) {\n            return this.element.src;\n        }\n    }\n    set sourceURL(sourceURL) {\n        this.ignoringChangesToAttribute(\"src\", () => {\n            this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n        });\n    }\n    get loadingStyle() {\n        return this.element.loading;\n    }\n    get isLoading() {\n        return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n    }\n    get complete() {\n        return this.element.hasAttribute(\"complete\");\n    }\n    set complete(value) {\n        this.ignoringChangesToAttribute(\"complete\", () => {\n            if (value) {\n                this.element.setAttribute(\"complete\", \"\");\n            }\n            else {\n                this.element.removeAttribute(\"complete\");\n            }\n        });\n    }\n    get isActive() {\n        return this.element.isActive && this.connected;\n    }\n    get rootLocation() {\n        var _a;\n        const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n        const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n        return expandURL(root);\n    }\n    isIgnoringChangesTo(attributeName) {\n        return this.ignoredAttributes.has(attributeName);\n    }\n    ignoringChangesToAttribute(attributeName, callback) {\n        this.ignoredAttributes.add(attributeName);\n        callback();\n        this.ignoredAttributes.delete(attributeName);\n    }\n    withCurrentNavigationElement(element, callback) {\n        this.currentNavigationElement = element;\n        callback();\n        delete this.currentNavigationElement;\n    }\n}\nfunction getFrameElementById(id) {\n    if (id != null) {\n        const element = document.getElementById(id);\n        if (element instanceof FrameElement) {\n            return element;\n        }\n    }\n}\nfunction activateElement(element, currentURL) {\n    if (element) {\n        const src = element.getAttribute(\"src\");\n        if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n            throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`);\n        }\n        if (element.ownerDocument !== document) {\n            element = document.importNode(element, true);\n        }\n        if (element instanceof FrameElement) {\n            element.connectedCallback();\n            element.disconnectedCallback();\n            return element;\n        }\n    }\n}\n\nclass StreamElement extends HTMLElement {\n    static async renderElement(newElement) {\n        await newElement.performAction();\n    }\n    async connectedCallback() {\n        try {\n            await this.render();\n        }\n        catch (error) {\n            console.error(error);\n        }\n        finally {\n            this.disconnect();\n        }\n    }\n    async render() {\n        var _a;\n        return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n            const event = this.beforeRenderEvent;\n            if (this.dispatchEvent(event)) {\n                await nextAnimationFrame();\n                await event.detail.render(this);\n            }\n        })()));\n    }\n    disconnect() {\n        try {\n            this.remove();\n        }\n        catch (_a) { }\n    }\n    removeDuplicateTargetChildren() {\n        this.duplicateChildren.forEach((c) => c.remove());\n    }\n    get duplicateChildren() {\n        var _a;\n        const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n        const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n        return existingChildren.filter((c) => newChildrenIds.includes(c.id));\n    }\n    get performAction() {\n        if (this.action) {\n            const actionFunction = StreamActions[this.action];\n            if (actionFunction) {\n                return actionFunction;\n            }\n            this.raise(\"unknown action\");\n        }\n        this.raise(\"action attribute is missing\");\n    }\n    get targetElements() {\n        if (this.target) {\n            return this.targetElementsById;\n        }\n        else if (this.targets) {\n            return this.targetElementsByQuery;\n        }\n        else {\n            this.raise(\"target or targets attribute is missing\");\n        }\n    }\n    get templateContent() {\n        return this.templateElement.content.cloneNode(true);\n    }\n    get templateElement() {\n        if (this.firstElementChild === null) {\n            const template = this.ownerDocument.createElement(\"template\");\n            this.appendChild(template);\n            return template;\n        }\n        else if (this.firstElementChild instanceof HTMLTemplateElement) {\n            return this.firstElementChild;\n        }\n        this.raise(\"first child element must be a <template> element\");\n    }\n    get action() {\n        return this.getAttribute(\"action\");\n    }\n    get target() {\n        return this.getAttribute(\"target\");\n    }\n    get targets() {\n        return this.getAttribute(\"targets\");\n    }\n    raise(message) {\n        throw new Error(`${this.description}: ${message}`);\n    }\n    get description() {\n        var _a, _b;\n        return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\n    }\n    get beforeRenderEvent() {\n        return new CustomEvent(\"turbo:before-stream-render\", {\n            bubbles: true,\n            cancelable: true,\n            detail: { newStream: this, render: StreamElement.renderElement },\n        });\n    }\n    get targetElementsById() {\n        var _a;\n        const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n        if (element !== null) {\n            return [element];\n        }\n        else {\n            return [];\n        }\n    }\n    get targetElementsByQuery() {\n        var _a;\n        const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n        if (elements.length !== 0) {\n            return Array.prototype.slice.call(elements);\n        }\n        else {\n            return [];\n        }\n    }\n}\n\nclass StreamSourceElement extends HTMLElement {\n    constructor() {\n        super(...arguments);\n        this.streamSource = null;\n    }\n    connectedCallback() {\n        this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n        connectStreamSource(this.streamSource);\n    }\n    disconnectedCallback() {\n        if (this.streamSource) {\n            disconnectStreamSource(this.streamSource);\n        }\n    }\n    get src() {\n        return this.getAttribute(\"src\") || \"\";\n    }\n}\n\nFrameElement.delegateConstructor = FrameController;\nif (customElements.get(\"turbo-frame\") === undefined) {\n    customElements.define(\"turbo-frame\", FrameElement);\n}\nif (customElements.get(\"turbo-stream\") === undefined) {\n    customElements.define(\"turbo-stream\", StreamElement);\n}\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n    customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n    let element = document.currentScript;\n    if (!element)\n        return;\n    if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n        return;\n    element = element.parentElement;\n    while (element) {\n        if (element == document.body) {\n            return console.warn(unindent `\n        You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n        Load your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n        For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n        \u2014\u2014\n        Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n      `, element.outerHTML);\n        }\n        element = element.parentElement;\n    }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setFormMode, setProgressBarDelay, start, visit };\n", "let consumer\n\nexport async function getConsumer() {\n  return consumer || setConsumer(createConsumer().then(setConsumer))\n}\n\nexport function setConsumer(newConsumer) {\n  return consumer = newConsumer\n}\n\nexport async function createConsumer() {\n  const { createConsumer } = await import(/* webpackChunkName: \"actioncable\" */ \"@rails/actioncable/src\")\n  return createConsumer()\n}\n\nexport async function subscribeTo(channel, mixin) {\n  const { subscriptions } = await getConsumer()\n  return subscriptions.create(channel, mixin)\n}\n", "// Based on https://github.com/nathan7/snakeize\n//\n// This software is released under the MIT license:\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default function walk (obj) {\n    if (!obj || typeof obj !== 'object') return obj;\n    if (obj instanceof Date || obj instanceof RegExp) return obj;\n    if (Array.isArray(obj)) return obj.map(walk);\n    return Object.keys(obj).reduce(function (acc, key) {\n        var camel = key[0].toLowerCase() + key.slice(1).replace(/([A-Z]+)/g, function (m, x) {\n            return '_' + x.toLowerCase();\n        });\n        acc[camel] = walk(obj[key]);\n        return acc;\n    }, {});\n};", "import { connectStreamSource, disconnectStreamSource } from \"@hotwired/turbo\"\nimport { subscribeTo } from \"./cable\"\nimport snakeize from \"./snakeize\"\n\nclass TurboCableStreamSourceElement extends HTMLElement {\n  async connectedCallback() {\n    connectStreamSource(this)\n    this.subscription = await subscribeTo(this.channel, {\n      received: this.dispatchMessageEvent.bind(this),\n      connected: this.subscriptionConnected.bind(this),\n      disconnected: this.subscriptionDisconnected.bind(this)\n    })\n  }\n\n  disconnectedCallback() {\n    disconnectStreamSource(this)\n    if (this.subscription) this.subscription.unsubscribe()\n  }\n\n  dispatchMessageEvent(data) {\n    const event = new MessageEvent(\"message\", { data })\n    return this.dispatchEvent(event)\n  }\n\n  subscriptionConnected() {\n    this.setAttribute(\"connected\", \"\")\n  }\n\n  subscriptionDisconnected() {\n    this.removeAttribute(\"connected\")\n  }\n\n  get channel() {\n    const channel = this.getAttribute(\"channel\")\n    const signed_stream_name = this.getAttribute(\"signed-stream-name\")\n    return { channel, signed_stream_name, ...snakeize({ ...this.dataset }) }\n  }\n}\n\n\nif (customElements.get(\"turbo-cable-stream-source\") === undefined) {\n  customElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n}\n", "export function encodeMethodIntoRequestBody(event) {\n  if (event.target instanceof HTMLFormElement) {\n    const { target: form, detail: { fetchOptions } } = event\n\n    form.addEventListener(\"turbo:submit-start\", ({ detail: { formSubmission: { submitter } } }) => {\n      const body = isBodyInit(fetchOptions.body) ? fetchOptions.body : new URLSearchParams()\n      const method = determineFetchMethod(submitter, body, form)\n\n      if (!/get/i.test(method)) {\n        if (/post/i.test(method)) {\n          body.delete(\"_method\")\n        } else {\n          body.set(\"_method\", method)\n        }\n\n        fetchOptions.method = \"post\"\n      }\n    }, { once: true })\n  }\n}\n\nfunction determineFetchMethod(submitter, body, form) {\n  const formMethod = determineFormMethod(submitter)\n  const overrideMethod = body.get(\"_method\")\n  const method = form.getAttribute(\"method\") || \"get\"\n\n  if (typeof formMethod == \"string\") {\n    return formMethod\n  } else if (typeof overrideMethod == \"string\") {\n    return overrideMethod\n  } else {\n    return method\n  }\n}\n\nfunction determineFormMethod(submitter) {\n  if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) {\n    if (submitter.hasAttribute(\"formmethod\")) {\n      return submitter.formMethod\n    } else {\n      return null\n    }\n  } else {\n    return null\n  }\n}\n\nfunction isBodyInit(body) {\n  return body instanceof FormData || body instanceof URLSearchParams\n}\n", "import \"./cable_stream_source_element\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\nimport { encodeMethodIntoRequestBody } from \"./fetch_requests\"\n\naddEventListener(\"turbo:before-fetch-request\", encodeMethodIntoRequestBody)\n", "/*\nStimulus 3.2.1\nCopyright \u00A9 2022 Basecamp, LLC\n */\nclass EventListener {\n    constructor(eventTarget, eventName, eventOptions) {\n        this.eventTarget = eventTarget;\n        this.eventName = eventName;\n        this.eventOptions = eventOptions;\n        this.unorderedBindings = new Set();\n    }\n    connect() {\n        this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n    }\n    disconnect() {\n        this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n    }\n    bindingConnected(binding) {\n        this.unorderedBindings.add(binding);\n    }\n    bindingDisconnected(binding) {\n        this.unorderedBindings.delete(binding);\n    }\n    handleEvent(event) {\n        const extendedEvent = extendEvent(event);\n        for (const binding of this.bindings) {\n            if (extendedEvent.immediatePropagationStopped) {\n                break;\n            }\n            else {\n                binding.handleEvent(extendedEvent);\n            }\n        }\n    }\n    hasBindings() {\n        return this.unorderedBindings.size > 0;\n    }\n    get bindings() {\n        return Array.from(this.unorderedBindings).sort((left, right) => {\n            const leftIndex = left.index, rightIndex = right.index;\n            return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n        });\n    }\n}\nfunction extendEvent(event) {\n    if (\"immediatePropagationStopped\" in event) {\n        return event;\n    }\n    else {\n        const { stopImmediatePropagation } = event;\n        return Object.assign(event, {\n            immediatePropagationStopped: false,\n            stopImmediatePropagation() {\n                this.immediatePropagationStopped = true;\n                stopImmediatePropagation.call(this);\n            },\n        });\n    }\n}\n\nclass Dispatcher {\n    constructor(application) {\n        this.application = application;\n        this.eventListenerMaps = new Map();\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.eventListeners.forEach((eventListener) => eventListener.connect());\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n        }\n    }\n    get eventListeners() {\n        return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n    }\n    bindingConnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n    }\n    bindingDisconnected(binding, clearEventListeners = false) {\n        this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n        if (clearEventListeners)\n            this.clearEventListenersForBinding(binding);\n    }\n    handleError(error, message, detail = {}) {\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    clearEventListenersForBinding(binding) {\n        const eventListener = this.fetchEventListenerForBinding(binding);\n        if (!eventListener.hasBindings()) {\n            eventListener.disconnect();\n            this.removeMappedEventListenerFor(binding);\n        }\n    }\n    removeMappedEventListenerFor(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        eventListenerMap.delete(cacheKey);\n        if (eventListenerMap.size == 0)\n            this.eventListenerMaps.delete(eventTarget);\n    }\n    fetchEventListenerForBinding(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        return this.fetchEventListener(eventTarget, eventName, eventOptions);\n    }\n    fetchEventListener(eventTarget, eventName, eventOptions) {\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        let eventListener = eventListenerMap.get(cacheKey);\n        if (!eventListener) {\n            eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n            eventListenerMap.set(cacheKey, eventListener);\n        }\n        return eventListener;\n    }\n    createEventListener(eventTarget, eventName, eventOptions) {\n        const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n        if (this.started) {\n            eventListener.connect();\n        }\n        return eventListener;\n    }\n    fetchEventListenerMapForEventTarget(eventTarget) {\n        let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n        if (!eventListenerMap) {\n            eventListenerMap = new Map();\n            this.eventListenerMaps.set(eventTarget, eventListenerMap);\n        }\n        return eventListenerMap;\n    }\n    cacheKey(eventName, eventOptions) {\n        const parts = [eventName];\n        Object.keys(eventOptions)\n            .sort()\n            .forEach((key) => {\n            parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n        });\n        return parts.join(\":\");\n    }\n}\n\nconst defaultActionDescriptorFilters = {\n    stop({ event, value }) {\n        if (value)\n            event.stopPropagation();\n        return true;\n    },\n    prevent({ event, value }) {\n        if (value)\n            event.preventDefault();\n        return true;\n    },\n    self({ event, value, element }) {\n        if (value) {\n            return element === event.target;\n        }\n        else {\n            return true;\n        }\n    },\n};\nconst descriptorPattern = /^(?:(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n    const source = descriptorString.trim();\n    const matches = source.match(descriptorPattern) || [];\n    let eventName = matches[1];\n    let keyFilter = matches[2];\n    if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n        eventName += `.${keyFilter}`;\n        keyFilter = \"\";\n    }\n    return {\n        eventTarget: parseEventTarget(matches[3]),\n        eventName,\n        eventOptions: matches[6] ? parseEventOptions(matches[6]) : {},\n        identifier: matches[4],\n        methodName: matches[5],\n        keyFilter,\n    };\n}\nfunction parseEventTarget(eventTargetName) {\n    if (eventTargetName == \"window\") {\n        return window;\n    }\n    else if (eventTargetName == \"document\") {\n        return document;\n    }\n}\nfunction parseEventOptions(eventOptions) {\n    return eventOptions\n        .split(\":\")\n        .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n    if (eventTarget == window) {\n        return \"window\";\n    }\n    else if (eventTarget == document) {\n        return \"document\";\n    }\n}\n\nfunction camelize(value) {\n    return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n    return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n    return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n    return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n    return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n    constructor(element, index, descriptor, schema) {\n        this.element = element;\n        this.index = index;\n        this.eventTarget = descriptor.eventTarget || element;\n        this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n        this.eventOptions = descriptor.eventOptions || {};\n        this.identifier = descriptor.identifier || error(\"missing identifier\");\n        this.methodName = descriptor.methodName || error(\"missing method name\");\n        this.keyFilter = descriptor.keyFilter || \"\";\n        this.schema = schema;\n    }\n    static forToken(token, schema) {\n        return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n    }\n    toString() {\n        const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n        const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n        return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n    }\n    isFilterTarget(event) {\n        if (!this.keyFilter) {\n            return false;\n        }\n        const filteres = this.keyFilter.split(\"+\");\n        const modifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\n        const [meta, ctrl, alt, shift] = modifiers.map((modifier) => filteres.includes(modifier));\n        if (event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift) {\n            return true;\n        }\n        const standardFilter = filteres.filter((key) => !modifiers.includes(key))[0];\n        if (!standardFilter) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(this.keyMappings, standardFilter)) {\n            error(`contains unknown key filter: ${this.keyFilter}`);\n        }\n        return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n    }\n    get params() {\n        const params = {};\n        const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n        for (const { name, value } of Array.from(this.element.attributes)) {\n            const match = name.match(pattern);\n            const key = match && match[1];\n            if (key) {\n                params[camelize(key)] = typecast(value);\n            }\n        }\n        return params;\n    }\n    get eventTargetName() {\n        return stringifyEventTarget(this.eventTarget);\n    }\n    get keyMappings() {\n        return this.schema.keyMappings;\n    }\n}\nconst defaultEventNames = {\n    a: () => \"click\",\n    button: () => \"click\",\n    form: () => \"submit\",\n    details: () => \"toggle\",\n    input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n    select: () => \"change\",\n    textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n    const tagName = element.tagName.toLowerCase();\n    if (tagName in defaultEventNames) {\n        return defaultEventNames[tagName](element);\n    }\n}\nfunction error(message) {\n    throw new Error(message);\n}\nfunction typecast(value) {\n    try {\n        return JSON.parse(value);\n    }\n    catch (o_O) {\n        return value;\n    }\n}\n\nclass Binding {\n    constructor(context, action) {\n        this.context = context;\n        this.action = action;\n    }\n    get index() {\n        return this.action.index;\n    }\n    get eventTarget() {\n        return this.action.eventTarget;\n    }\n    get eventOptions() {\n        return this.action.eventOptions;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    handleEvent(event) {\n        if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n            this.invokeWithEvent(event);\n        }\n    }\n    get eventName() {\n        return this.action.eventName;\n    }\n    get method() {\n        const method = this.controller[this.methodName];\n        if (typeof method == \"function\") {\n            return method;\n        }\n        throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n    }\n    applyEventModifiers(event) {\n        const { element } = this.action;\n        const { actionDescriptorFilters } = this.context.application;\n        let passes = true;\n        for (const [name, value] of Object.entries(this.eventOptions)) {\n            if (name in actionDescriptorFilters) {\n                const filter = actionDescriptorFilters[name];\n                passes = passes && filter({ name, value, event, element });\n            }\n            else {\n                continue;\n            }\n        }\n        return passes;\n    }\n    invokeWithEvent(event) {\n        const { target, currentTarget } = event;\n        try {\n            const { params } = this.action;\n            const actionEvent = Object.assign(event, { params });\n            this.method.call(this.controller, actionEvent);\n            this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n        }\n        catch (error) {\n            const { identifier, controller, element, index } = this;\n            const detail = { identifier, controller, element, index, event };\n            this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n        }\n    }\n    willBeInvokedByEvent(event) {\n        const eventTarget = event.target;\n        if (event instanceof KeyboardEvent && this.action.isFilterTarget(event)) {\n            return false;\n        }\n        if (this.element === eventTarget) {\n            return true;\n        }\n        else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n            return this.scope.containsElement(eventTarget);\n        }\n        else {\n            return this.scope.containsElement(this.action.element);\n        }\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    get methodName() {\n        return this.action.methodName;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nclass ElementObserver {\n    constructor(element, delegate) {\n        this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n        this.element = element;\n        this.started = false;\n        this.delegate = delegate;\n        this.elements = new Set();\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.refresh();\n        }\n    }\n    pause(callback) {\n        if (this.started) {\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n        callback();\n        if (!this.started) {\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            const matches = new Set(this.matchElementsInTree());\n            for (const element of Array.from(this.elements)) {\n                if (!matches.has(element)) {\n                    this.removeElement(element);\n                }\n            }\n            for (const element of Array.from(matches)) {\n                this.addElement(element);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        if (mutation.type == \"attributes\") {\n            this.processAttributeChange(mutation.target, mutation.attributeName);\n        }\n        else if (mutation.type == \"childList\") {\n            this.processRemovedNodes(mutation.removedNodes);\n            this.processAddedNodes(mutation.addedNodes);\n        }\n    }\n    processAttributeChange(node, attributeName) {\n        const element = node;\n        if (this.elements.has(element)) {\n            if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n                this.delegate.elementAttributeChanged(element, attributeName);\n            }\n            else {\n                this.removeElement(element);\n            }\n        }\n        else if (this.matchElement(element)) {\n            this.addElement(element);\n        }\n    }\n    processRemovedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element) {\n                this.processTree(element, this.removeElement);\n            }\n        }\n    }\n    processAddedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element && this.elementIsActive(element)) {\n                this.processTree(element, this.addElement);\n            }\n        }\n    }\n    matchElement(element) {\n        return this.delegate.matchElement(element);\n    }\n    matchElementsInTree(tree = this.element) {\n        return this.delegate.matchElementsInTree(tree);\n    }\n    processTree(tree, processor) {\n        for (const element of this.matchElementsInTree(tree)) {\n            processor.call(this, element);\n        }\n    }\n    elementFromNode(node) {\n        if (node.nodeType == Node.ELEMENT_NODE) {\n            return node;\n        }\n    }\n    elementIsActive(element) {\n        if (element.isConnected != this.element.isConnected) {\n            return false;\n        }\n        else {\n            return this.element.contains(element);\n        }\n    }\n    addElement(element) {\n        if (!this.elements.has(element)) {\n            if (this.elementIsActive(element)) {\n                this.elements.add(element);\n                if (this.delegate.elementMatched) {\n                    this.delegate.elementMatched(element);\n                }\n            }\n        }\n    }\n    removeElement(element) {\n        if (this.elements.has(element)) {\n            this.elements.delete(element);\n            if (this.delegate.elementUnmatched) {\n                this.delegate.elementUnmatched(element);\n            }\n        }\n    }\n}\n\nclass AttributeObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeName = attributeName;\n        this.delegate = delegate;\n        this.elementObserver = new ElementObserver(element, this);\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    get selector() {\n        return `[${this.attributeName}]`;\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    matchElement(element) {\n        return element.hasAttribute(this.attributeName);\n    }\n    matchElementsInTree(tree) {\n        const match = this.matchElement(tree) ? [tree] : [];\n        const matches = Array.from(tree.querySelectorAll(this.selector));\n        return match.concat(matches);\n    }\n    elementMatched(element) {\n        if (this.delegate.elementMatchedAttribute) {\n            this.delegate.elementMatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementUnmatched(element) {\n        if (this.delegate.elementUnmatchedAttribute) {\n            this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementAttributeChanged(element, attributeName) {\n        if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n            this.delegate.elementAttributeValueChanged(element, attributeName);\n        }\n    }\n}\n\nfunction add(map, key, value) {\n    fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n    fetch(map, key).delete(value);\n    prune(map, key);\n}\nfunction fetch(map, key) {\n    let values = map.get(key);\n    if (!values) {\n        values = new Set();\n        map.set(key, values);\n    }\n    return values;\n}\nfunction prune(map, key) {\n    const values = map.get(key);\n    if (values != null && values.size == 0) {\n        map.delete(key);\n    }\n}\n\nclass Multimap {\n    constructor() {\n        this.valuesByKey = new Map();\n    }\n    get keys() {\n        return Array.from(this.valuesByKey.keys());\n    }\n    get values() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n    }\n    get size() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((size, set) => size + set.size, 0);\n    }\n    add(key, value) {\n        add(this.valuesByKey, key, value);\n    }\n    delete(key, value) {\n        del(this.valuesByKey, key, value);\n    }\n    has(key, value) {\n        const values = this.valuesByKey.get(key);\n        return values != null && values.has(value);\n    }\n    hasKey(key) {\n        return this.valuesByKey.has(key);\n    }\n    hasValue(value) {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.some((set) => set.has(value));\n    }\n    getValuesForKey(key) {\n        const values = this.valuesByKey.get(key);\n        return values ? Array.from(values) : [];\n    }\n    getKeysForValue(value) {\n        return Array.from(this.valuesByKey)\n            .filter(([_key, values]) => values.has(value))\n            .map(([key, _values]) => key);\n    }\n}\n\nclass IndexedMultimap extends Multimap {\n    constructor() {\n        super();\n        this.keysByValue = new Map();\n    }\n    get values() {\n        return Array.from(this.keysByValue.keys());\n    }\n    add(key, value) {\n        super.add(key, value);\n        add(this.keysByValue, value, key);\n    }\n    delete(key, value) {\n        super.delete(key, value);\n        del(this.keysByValue, value, key);\n    }\n    hasValue(value) {\n        return this.keysByValue.has(value);\n    }\n    getKeysForValue(value) {\n        const set = this.keysByValue.get(value);\n        return set ? Array.from(set) : [];\n    }\n}\n\nclass SelectorObserver {\n    constructor(element, selector, delegate, details = {}) {\n        this.selector = selector;\n        this.details = details;\n        this.elementObserver = new ElementObserver(element, this);\n        this.delegate = delegate;\n        this.matchesByElement = new Multimap();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    matchElement(element) {\n        const matches = element.matches(this.selector);\n        if (this.delegate.selectorMatchElement) {\n            return matches && this.delegate.selectorMatchElement(element, this.details);\n        }\n        return matches;\n    }\n    matchElementsInTree(tree) {\n        const match = this.matchElement(tree) ? [tree] : [];\n        const matches = Array.from(tree.querySelectorAll(this.selector)).filter((match) => this.matchElement(match));\n        return match.concat(matches);\n    }\n    elementMatched(element) {\n        this.selectorMatched(element);\n    }\n    elementUnmatched(element) {\n        this.selectorUnmatched(element);\n    }\n    elementAttributeChanged(element, _attributeName) {\n        const matches = this.matchElement(element);\n        const matchedBefore = this.matchesByElement.has(this.selector, element);\n        if (!matches && matchedBefore) {\n            this.selectorUnmatched(element);\n        }\n    }\n    selectorMatched(element) {\n        if (this.delegate.selectorMatched) {\n            this.delegate.selectorMatched(element, this.selector, this.details);\n            this.matchesByElement.add(this.selector, element);\n        }\n    }\n    selectorUnmatched(element) {\n        this.delegate.selectorUnmatched(element, this.selector, this.details);\n        this.matchesByElement.delete(this.selector, element);\n    }\n}\n\nclass StringMapObserver {\n    constructor(element, delegate) {\n        this.element = element;\n        this.delegate = delegate;\n        this.started = false;\n        this.stringMap = new Map();\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n            this.refresh();\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            for (const attributeName of this.knownAttributeNames) {\n                this.refreshAttribute(attributeName, null);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        const attributeName = mutation.attributeName;\n        if (attributeName) {\n            this.refreshAttribute(attributeName, mutation.oldValue);\n        }\n    }\n    refreshAttribute(attributeName, oldValue) {\n        const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n        if (key != null) {\n            if (!this.stringMap.has(attributeName)) {\n                this.stringMapKeyAdded(key, attributeName);\n            }\n            const value = this.element.getAttribute(attributeName);\n            if (this.stringMap.get(attributeName) != value) {\n                this.stringMapValueChanged(value, key, oldValue);\n            }\n            if (value == null) {\n                const oldValue = this.stringMap.get(attributeName);\n                this.stringMap.delete(attributeName);\n                if (oldValue)\n                    this.stringMapKeyRemoved(key, attributeName, oldValue);\n            }\n            else {\n                this.stringMap.set(attributeName, value);\n            }\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        if (this.delegate.stringMapKeyAdded) {\n            this.delegate.stringMapKeyAdded(key, attributeName);\n        }\n    }\n    stringMapValueChanged(value, key, oldValue) {\n        if (this.delegate.stringMapValueChanged) {\n            this.delegate.stringMapValueChanged(value, key, oldValue);\n        }\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        if (this.delegate.stringMapKeyRemoved) {\n            this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n        }\n    }\n    get knownAttributeNames() {\n        return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n    }\n    get currentAttributeNames() {\n        return Array.from(this.element.attributes).map((attribute) => attribute.name);\n    }\n    get recordedAttributeNames() {\n        return Array.from(this.stringMap.keys());\n    }\n}\n\nclass TokenListObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeObserver = new AttributeObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.tokensByElement = new Multimap();\n    }\n    get started() {\n        return this.attributeObserver.started;\n    }\n    start() {\n        this.attributeObserver.start();\n    }\n    pause(callback) {\n        this.attributeObserver.pause(callback);\n    }\n    stop() {\n        this.attributeObserver.stop();\n    }\n    refresh() {\n        this.attributeObserver.refresh();\n    }\n    get element() {\n        return this.attributeObserver.element;\n    }\n    get attributeName() {\n        return this.attributeObserver.attributeName;\n    }\n    elementMatchedAttribute(element) {\n        this.tokensMatched(this.readTokensForElement(element));\n    }\n    elementAttributeValueChanged(element) {\n        const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n        this.tokensUnmatched(unmatchedTokens);\n        this.tokensMatched(matchedTokens);\n    }\n    elementUnmatchedAttribute(element) {\n        this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n    }\n    tokensMatched(tokens) {\n        tokens.forEach((token) => this.tokenMatched(token));\n    }\n    tokensUnmatched(tokens) {\n        tokens.forEach((token) => this.tokenUnmatched(token));\n    }\n    tokenMatched(token) {\n        this.delegate.tokenMatched(token);\n        this.tokensByElement.add(token.element, token);\n    }\n    tokenUnmatched(token) {\n        this.delegate.tokenUnmatched(token);\n        this.tokensByElement.delete(token.element, token);\n    }\n    refreshTokensForElement(element) {\n        const previousTokens = this.tokensByElement.getValuesForKey(element);\n        const currentTokens = this.readTokensForElement(element);\n        const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n        if (firstDifferingIndex == -1) {\n            return [[], []];\n        }\n        else {\n            return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n        }\n    }\n    readTokensForElement(element) {\n        const attributeName = this.attributeName;\n        const tokenString = element.getAttribute(attributeName) || \"\";\n        return parseTokenString(tokenString, element, attributeName);\n    }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n    return tokenString\n        .trim()\n        .split(/\\s+/)\n        .filter((content) => content.length)\n        .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n    const length = Math.max(left.length, right.length);\n    return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n    return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n    constructor(element, attributeName, delegate) {\n        this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.parseResultsByToken = new WeakMap();\n        this.valuesByTokenByElement = new WeakMap();\n    }\n    get started() {\n        return this.tokenListObserver.started;\n    }\n    start() {\n        this.tokenListObserver.start();\n    }\n    stop() {\n        this.tokenListObserver.stop();\n    }\n    refresh() {\n        this.tokenListObserver.refresh();\n    }\n    get element() {\n        return this.tokenListObserver.element;\n    }\n    get attributeName() {\n        return this.tokenListObserver.attributeName;\n    }\n    tokenMatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).set(token, value);\n            this.delegate.elementMatchedValue(element, value);\n        }\n    }\n    tokenUnmatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).delete(token);\n            this.delegate.elementUnmatchedValue(element, value);\n        }\n    }\n    fetchParseResultForToken(token) {\n        let parseResult = this.parseResultsByToken.get(token);\n        if (!parseResult) {\n            parseResult = this.parseToken(token);\n            this.parseResultsByToken.set(token, parseResult);\n        }\n        return parseResult;\n    }\n    fetchValuesByTokenForElement(element) {\n        let valuesByToken = this.valuesByTokenByElement.get(element);\n        if (!valuesByToken) {\n            valuesByToken = new Map();\n            this.valuesByTokenByElement.set(element, valuesByToken);\n        }\n        return valuesByToken;\n    }\n    parseToken(token) {\n        try {\n            const value = this.delegate.parseValueForToken(token);\n            return { value };\n        }\n        catch (error) {\n            return { error };\n        }\n    }\n}\n\nclass BindingObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.bindingsByAction = new Map();\n    }\n    start() {\n        if (!this.valueListObserver) {\n            this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n            this.valueListObserver.start();\n        }\n    }\n    stop() {\n        if (this.valueListObserver) {\n            this.valueListObserver.stop();\n            delete this.valueListObserver;\n            this.disconnectAllActions();\n        }\n    }\n    get element() {\n        return this.context.element;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get actionAttribute() {\n        return this.schema.actionAttribute;\n    }\n    get schema() {\n        return this.context.schema;\n    }\n    get bindings() {\n        return Array.from(this.bindingsByAction.values());\n    }\n    connectAction(action) {\n        const binding = new Binding(this.context, action);\n        this.bindingsByAction.set(action, binding);\n        this.delegate.bindingConnected(binding);\n    }\n    disconnectAction(action) {\n        const binding = this.bindingsByAction.get(action);\n        if (binding) {\n            this.bindingsByAction.delete(action);\n            this.delegate.bindingDisconnected(binding);\n        }\n    }\n    disconnectAllActions() {\n        this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n        this.bindingsByAction.clear();\n    }\n    parseValueForToken(token) {\n        const action = Action.forToken(token, this.schema);\n        if (action.identifier == this.identifier) {\n            return action;\n        }\n    }\n    elementMatchedValue(element, action) {\n        this.connectAction(action);\n    }\n    elementUnmatchedValue(element, action) {\n        this.disconnectAction(action);\n    }\n}\n\nclass ValueObserver {\n    constructor(context, receiver) {\n        this.context = context;\n        this.receiver = receiver;\n        this.stringMapObserver = new StringMapObserver(this.element, this);\n        this.valueDescriptorMap = this.controller.valueDescriptorMap;\n    }\n    start() {\n        this.stringMapObserver.start();\n        this.invokeChangedCallbacksForDefaultValues();\n    }\n    stop() {\n        this.stringMapObserver.stop();\n    }\n    get element() {\n        return this.context.element;\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    getStringMapKeyForAttribute(attributeName) {\n        if (attributeName in this.valueDescriptorMap) {\n            return this.valueDescriptorMap[attributeName].name;\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        const descriptor = this.valueDescriptorMap[attributeName];\n        if (!this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n        }\n    }\n    stringMapValueChanged(value, name, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[name];\n        if (value === null)\n            return;\n        if (oldValue === null) {\n            oldValue = descriptor.writer(descriptor.defaultValue);\n        }\n        this.invokeChangedCallback(name, value, oldValue);\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[key];\n        if (this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n        }\n        else {\n            this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n        }\n    }\n    invokeChangedCallbacksForDefaultValues() {\n        for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n            if (defaultValue != undefined && !this.controller.data.has(key)) {\n                this.invokeChangedCallback(name, writer(defaultValue), undefined);\n            }\n        }\n    }\n    invokeChangedCallback(name, rawValue, rawOldValue) {\n        const changedMethodName = `${name}Changed`;\n        const changedMethod = this.receiver[changedMethodName];\n        if (typeof changedMethod == \"function\") {\n            const descriptor = this.valueDescriptorNameMap[name];\n            try {\n                const value = descriptor.reader(rawValue);\n                let oldValue = rawOldValue;\n                if (rawOldValue) {\n                    oldValue = descriptor.reader(rawOldValue);\n                }\n                changedMethod.call(this.receiver, value, oldValue);\n            }\n            catch (error) {\n                if (error instanceof TypeError) {\n                    error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n                }\n                throw error;\n            }\n        }\n    }\n    get valueDescriptors() {\n        const { valueDescriptorMap } = this;\n        return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n    }\n    get valueDescriptorNameMap() {\n        const descriptors = {};\n        Object.keys(this.valueDescriptorMap).forEach((key) => {\n            const descriptor = this.valueDescriptorMap[key];\n            descriptors[descriptor.name] = descriptor;\n        });\n        return descriptors;\n    }\n    hasValue(attributeName) {\n        const descriptor = this.valueDescriptorNameMap[attributeName];\n        const hasMethodName = `has${capitalize(descriptor.name)}`;\n        return this.receiver[hasMethodName];\n    }\n}\n\nclass TargetObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.targetsByName = new Multimap();\n    }\n    start() {\n        if (!this.tokenListObserver) {\n            this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n            this.tokenListObserver.start();\n        }\n    }\n    stop() {\n        if (this.tokenListObserver) {\n            this.disconnectAllTargets();\n            this.tokenListObserver.stop();\n            delete this.tokenListObserver;\n        }\n    }\n    tokenMatched({ element, content: name }) {\n        if (this.scope.containsElement(element)) {\n            this.connectTarget(element, name);\n        }\n    }\n    tokenUnmatched({ element, content: name }) {\n        this.disconnectTarget(element, name);\n    }\n    connectTarget(element, name) {\n        var _a;\n        if (!this.targetsByName.has(name, element)) {\n            this.targetsByName.add(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n        }\n    }\n    disconnectTarget(element, name) {\n        var _a;\n        if (this.targetsByName.has(name, element)) {\n            this.targetsByName.delete(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n        }\n    }\n    disconnectAllTargets() {\n        for (const name of this.targetsByName.keys) {\n            for (const element of this.targetsByName.getValuesForKey(name)) {\n                this.disconnectTarget(element, name);\n            }\n        }\n    }\n    get attributeName() {\n        return `data-${this.context.identifier}-target`;\n    }\n    get element() {\n        return this.context.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return Array.from(ancestors.reduce((values, constructor) => {\n        getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n        return values;\n    }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return ancestors.reduce((pairs, constructor) => {\n        pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n        return pairs;\n    }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n    const ancestors = [];\n    while (constructor) {\n        ancestors.push(constructor);\n        constructor = Object.getPrototypeOf(constructor);\n    }\n    return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.outletsByName = new Multimap();\n        this.outletElementsByName = new Multimap();\n        this.selectorObserverMap = new Map();\n    }\n    start() {\n        if (this.selectorObserverMap.size === 0) {\n            this.outletDefinitions.forEach((outletName) => {\n                const selector = this.selector(outletName);\n                const details = { outletName };\n                if (selector) {\n                    this.selectorObserverMap.set(outletName, new SelectorObserver(document.body, selector, this, details));\n                }\n            });\n            this.selectorObserverMap.forEach((observer) => observer.start());\n        }\n        this.dependentContexts.forEach((context) => context.refresh());\n    }\n    stop() {\n        if (this.selectorObserverMap.size > 0) {\n            this.disconnectAllOutlets();\n            this.selectorObserverMap.forEach((observer) => observer.stop());\n            this.selectorObserverMap.clear();\n        }\n    }\n    refresh() {\n        this.selectorObserverMap.forEach((observer) => observer.refresh());\n    }\n    selectorMatched(element, _selector, { outletName }) {\n        const outlet = this.getOutlet(element, outletName);\n        if (outlet) {\n            this.connectOutlet(outlet, element, outletName);\n        }\n    }\n    selectorUnmatched(element, _selector, { outletName }) {\n        const outlet = this.getOutletFromMap(element, outletName);\n        if (outlet) {\n            this.disconnectOutlet(outlet, element, outletName);\n        }\n    }\n    selectorMatchElement(element, { outletName }) {\n        return (this.hasOutlet(element, outletName) &&\n            element.matches(`[${this.context.application.schema.controllerAttribute}~=${outletName}]`));\n    }\n    connectOutlet(outlet, element, outletName) {\n        var _a;\n        if (!this.outletElementsByName.has(outletName, element)) {\n            this.outletsByName.add(outletName, outlet);\n            this.outletElementsByName.add(outletName, element);\n            (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n        }\n    }\n    disconnectOutlet(outlet, element, outletName) {\n        var _a;\n        if (this.outletElementsByName.has(outletName, element)) {\n            this.outletsByName.delete(outletName, outlet);\n            this.outletElementsByName.delete(outletName, element);\n            (_a = this.selectorObserverMap\n                .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n        }\n    }\n    disconnectAllOutlets() {\n        for (const outletName of this.outletElementsByName.keys) {\n            for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n                for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n                    this.disconnectOutlet(outlet, element, outletName);\n                }\n            }\n        }\n    }\n    selector(outletName) {\n        return this.scope.outlets.getSelectorForOutletName(outletName);\n    }\n    get outletDependencies() {\n        const dependencies = new Multimap();\n        this.router.modules.forEach((module) => {\n            const constructor = module.definition.controllerConstructor;\n            const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n            outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n        });\n        return dependencies;\n    }\n    get outletDefinitions() {\n        return this.outletDependencies.getKeysForValue(this.identifier);\n    }\n    get dependentControllerIdentifiers() {\n        return this.outletDependencies.getValuesForKey(this.identifier);\n    }\n    get dependentContexts() {\n        const identifiers = this.dependentControllerIdentifiers;\n        return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n    }\n    hasOutlet(element, outletName) {\n        return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n    }\n    getOutlet(element, outletName) {\n        return this.application.getControllerForElementAndIdentifier(element, outletName);\n    }\n    getOutletFromMap(element, outletName) {\n        return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get router() {\n        return this.application.router;\n    }\n}\n\nclass Context {\n    constructor(module, scope) {\n        this.logDebugActivity = (functionName, detail = {}) => {\n            const { identifier, controller, element } = this;\n            detail = Object.assign({ identifier, controller, element }, detail);\n            this.application.logDebugActivity(this.identifier, functionName, detail);\n        };\n        this.module = module;\n        this.scope = scope;\n        this.controller = new module.controllerConstructor(this);\n        this.bindingObserver = new BindingObserver(this, this.dispatcher);\n        this.valueObserver = new ValueObserver(this, this.controller);\n        this.targetObserver = new TargetObserver(this, this);\n        this.outletObserver = new OutletObserver(this, this);\n        try {\n            this.controller.initialize();\n            this.logDebugActivity(\"initialize\");\n        }\n        catch (error) {\n            this.handleError(error, \"initializing controller\");\n        }\n    }\n    connect() {\n        this.bindingObserver.start();\n        this.valueObserver.start();\n        this.targetObserver.start();\n        this.outletObserver.start();\n        try {\n            this.controller.connect();\n            this.logDebugActivity(\"connect\");\n        }\n        catch (error) {\n            this.handleError(error, \"connecting controller\");\n        }\n    }\n    refresh() {\n        this.outletObserver.refresh();\n    }\n    disconnect() {\n        try {\n            this.controller.disconnect();\n            this.logDebugActivity(\"disconnect\");\n        }\n        catch (error) {\n            this.handleError(error, \"disconnecting controller\");\n        }\n        this.outletObserver.stop();\n        this.targetObserver.stop();\n        this.valueObserver.stop();\n        this.bindingObserver.stop();\n    }\n    get application() {\n        return this.module.application;\n    }\n    get identifier() {\n        return this.module.identifier;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get dispatcher() {\n        return this.application.dispatcher;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get parentElement() {\n        return this.element.parentElement;\n    }\n    handleError(error, message, detail = {}) {\n        const { identifier, controller, element } = this;\n        detail = Object.assign({ identifier, controller, element }, detail);\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    targetConnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetConnected`, element);\n    }\n    targetDisconnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n    }\n    outletConnected(outlet, element, name) {\n        this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n    }\n    outletDisconnected(outlet, element, name) {\n        this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n    }\n    invokeControllerMethod(methodName, ...args) {\n        const controller = this.controller;\n        if (typeof controller[methodName] == \"function\") {\n            controller[methodName](...args);\n        }\n    }\n}\n\nfunction bless(constructor) {\n    return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n    const shadowConstructor = extend(constructor);\n    const shadowProperties = getShadowProperties(constructor.prototype, properties);\n    Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n    return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n    const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n    return blessings.reduce((blessedProperties, blessing) => {\n        const properties = blessing(constructor);\n        for (const key in properties) {\n            const descriptor = blessedProperties[key] || {};\n            blessedProperties[key] = Object.assign(descriptor, properties[key]);\n        }\n        return blessedProperties;\n    }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n    return getOwnKeys(properties).reduce((shadowProperties, key) => {\n        const descriptor = getShadowedDescriptor(prototype, properties, key);\n        if (descriptor) {\n            Object.assign(shadowProperties, { [key]: descriptor });\n        }\n        return shadowProperties;\n    }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n    const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n    const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n    if (!shadowedByValue) {\n        const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n        if (shadowingDescriptor) {\n            descriptor.get = shadowingDescriptor.get || descriptor.get;\n            descriptor.set = shadowingDescriptor.set || descriptor.set;\n        }\n        return descriptor;\n    }\n}\nconst getOwnKeys = (() => {\n    if (typeof Object.getOwnPropertySymbols == \"function\") {\n        return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n    }\n    else {\n        return Object.getOwnPropertyNames;\n    }\n})();\nconst extend = (() => {\n    function extendWithReflect(constructor) {\n        function extended() {\n            return Reflect.construct(constructor, arguments, new.target);\n        }\n        extended.prototype = Object.create(constructor.prototype, {\n            constructor: { value: extended },\n        });\n        Reflect.setPrototypeOf(extended, constructor);\n        return extended;\n    }\n    function testReflectExtension() {\n        const a = function () {\n            this.a.call(this);\n        };\n        const b = extendWithReflect(a);\n        b.prototype.a = function () { };\n        return new b();\n    }\n    try {\n        testReflectExtension();\n        return extendWithReflect;\n    }\n    catch (error) {\n        return (constructor) => class extended extends constructor {\n        };\n    }\n})();\n\nfunction blessDefinition(definition) {\n    return {\n        identifier: definition.identifier,\n        controllerConstructor: bless(definition.controllerConstructor),\n    };\n}\n\nclass Module {\n    constructor(application, definition) {\n        this.application = application;\n        this.definition = blessDefinition(definition);\n        this.contextsByScope = new WeakMap();\n        this.connectedContexts = new Set();\n    }\n    get identifier() {\n        return this.definition.identifier;\n    }\n    get controllerConstructor() {\n        return this.definition.controllerConstructor;\n    }\n    get contexts() {\n        return Array.from(this.connectedContexts);\n    }\n    connectContextForScope(scope) {\n        const context = this.fetchContextForScope(scope);\n        this.connectedContexts.add(context);\n        context.connect();\n    }\n    disconnectContextForScope(scope) {\n        const context = this.contextsByScope.get(scope);\n        if (context) {\n            this.connectedContexts.delete(context);\n            context.disconnect();\n        }\n    }\n    fetchContextForScope(scope) {\n        let context = this.contextsByScope.get(scope);\n        if (!context) {\n            context = new Context(this, scope);\n            this.contextsByScope.set(scope, context);\n        }\n        return context;\n    }\n}\n\nclass ClassMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    has(name) {\n        return this.data.has(this.getDataKey(name));\n    }\n    get(name) {\n        return this.getAll(name)[0];\n    }\n    getAll(name) {\n        const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n        return tokenize(tokenString);\n    }\n    getAttributeName(name) {\n        return this.data.getAttributeNameForKey(this.getDataKey(name));\n    }\n    getDataKey(name) {\n        return `${name}-class`;\n    }\n    get data() {\n        return this.scope.data;\n    }\n}\n\nclass DataMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.getAttribute(name);\n    }\n    set(key, value) {\n        const name = this.getAttributeNameForKey(key);\n        this.element.setAttribute(name, value);\n        return this.get(key);\n    }\n    has(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.hasAttribute(name);\n    }\n    delete(key) {\n        if (this.has(key)) {\n            const name = this.getAttributeNameForKey(key);\n            this.element.removeAttribute(name);\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    getAttributeNameForKey(key) {\n        return `data-${this.identifier}-${dasherize(key)}`;\n    }\n}\n\nclass Guide {\n    constructor(logger) {\n        this.warnedKeysByObject = new WeakMap();\n        this.logger = logger;\n    }\n    warn(object, key, message) {\n        let warnedKeys = this.warnedKeysByObject.get(object);\n        if (!warnedKeys) {\n            warnedKeys = new Set();\n            this.warnedKeysByObject.set(object, warnedKeys);\n        }\n        if (!warnedKeys.has(key)) {\n            warnedKeys.add(key);\n            this.logger.warn(message, object);\n        }\n    }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n    return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(targetName) {\n        return this.find(targetName) != null;\n    }\n    find(...targetNames) {\n        return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n    }\n    findAll(...targetNames) {\n        return targetNames.reduce((targets, targetName) => [\n            ...targets,\n            ...this.findAllTargets(targetName),\n            ...this.findAllLegacyTargets(targetName),\n        ], []);\n    }\n    findTarget(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findElement(selector);\n    }\n    findAllTargets(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector);\n    }\n    getSelectorForTargetName(targetName) {\n        const attributeName = this.schema.targetAttributeForScope(this.identifier);\n        return attributeValueContainsToken(attributeName, targetName);\n    }\n    findLegacyTarget(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.deprecate(this.scope.findElement(selector), targetName);\n    }\n    findAllLegacyTargets(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n    }\n    getLegacySelectorForTargetName(targetName) {\n        const targetDescriptor = `${this.identifier}.${targetName}`;\n        return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n    }\n    deprecate(element, targetName) {\n        if (element) {\n            const { identifier } = this;\n            const attributeName = this.schema.targetAttribute;\n            const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n            this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n                `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n        }\n        return element;\n    }\n    get guide() {\n        return this.scope.guide;\n    }\n}\n\nclass OutletSet {\n    constructor(scope, controllerElement) {\n        this.scope = scope;\n        this.controllerElement = controllerElement;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(outletName) {\n        return this.find(outletName) != null;\n    }\n    find(...outletNames) {\n        return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n    }\n    findAll(...outletNames) {\n        return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n    }\n    getSelectorForOutletName(outletName) {\n        const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n        return this.controllerElement.getAttribute(attributeName);\n    }\n    findOutlet(outletName) {\n        const selector = this.getSelectorForOutletName(outletName);\n        if (selector)\n            return this.findElement(selector, outletName);\n    }\n    findAllOutlets(outletName) {\n        const selector = this.getSelectorForOutletName(outletName);\n        return selector ? this.findAllElements(selector, outletName) : [];\n    }\n    findElement(selector, outletName) {\n        const elements = this.scope.queryElements(selector);\n        return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n    }\n    findAllElements(selector, outletName) {\n        const elements = this.scope.queryElements(selector);\n        return elements.filter((element) => this.matchesElement(element, selector, outletName));\n    }\n    matchesElement(element, selector, outletName) {\n        const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n        return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n    }\n}\n\nclass Scope {\n    constructor(schema, element, identifier, logger) {\n        this.targets = new TargetSet(this);\n        this.classes = new ClassMap(this);\n        this.data = new DataMap(this);\n        this.containsElement = (element) => {\n            return element.closest(this.controllerSelector) === this.element;\n        };\n        this.schema = schema;\n        this.element = element;\n        this.identifier = identifier;\n        this.guide = new Guide(logger);\n        this.outlets = new OutletSet(this.documentScope, element);\n    }\n    findElement(selector) {\n        return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n    }\n    findAllElements(selector) {\n        return [\n            ...(this.element.matches(selector) ? [this.element] : []),\n            ...this.queryElements(selector).filter(this.containsElement),\n        ];\n    }\n    queryElements(selector) {\n        return Array.from(this.element.querySelectorAll(selector));\n    }\n    get controllerSelector() {\n        return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n    }\n    get isDocumentScope() {\n        return this.element === document.documentElement;\n    }\n    get documentScope() {\n        return this.isDocumentScope\n            ? this\n            : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n    }\n}\n\nclass ScopeObserver {\n    constructor(element, schema, delegate) {\n        this.element = element;\n        this.schema = schema;\n        this.delegate = delegate;\n        this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n        this.scopesByIdentifierByElement = new WeakMap();\n        this.scopeReferenceCounts = new WeakMap();\n    }\n    start() {\n        this.valueListObserver.start();\n    }\n    stop() {\n        this.valueListObserver.stop();\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    parseValueForToken(token) {\n        const { element, content: identifier } = token;\n        const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n        let scope = scopesByIdentifier.get(identifier);\n        if (!scope) {\n            scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n            scopesByIdentifier.set(identifier, scope);\n        }\n        return scope;\n    }\n    elementMatchedValue(element, value) {\n        const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n        this.scopeReferenceCounts.set(value, referenceCount);\n        if (referenceCount == 1) {\n            this.delegate.scopeConnected(value);\n        }\n    }\n    elementUnmatchedValue(element, value) {\n        const referenceCount = this.scopeReferenceCounts.get(value);\n        if (referenceCount) {\n            this.scopeReferenceCounts.set(value, referenceCount - 1);\n            if (referenceCount == 1) {\n                this.delegate.scopeDisconnected(value);\n            }\n        }\n    }\n    fetchScopesByIdentifierForElement(element) {\n        let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n        if (!scopesByIdentifier) {\n            scopesByIdentifier = new Map();\n            this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n        }\n        return scopesByIdentifier;\n    }\n}\n\nclass Router {\n    constructor(application) {\n        this.application = application;\n        this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n        this.scopesByIdentifier = new Multimap();\n        this.modulesByIdentifier = new Map();\n    }\n    get element() {\n        return this.application.element;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get logger() {\n        return this.application.logger;\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    get modules() {\n        return Array.from(this.modulesByIdentifier.values());\n    }\n    get contexts() {\n        return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n    }\n    start() {\n        this.scopeObserver.start();\n    }\n    stop() {\n        this.scopeObserver.stop();\n    }\n    loadDefinition(definition) {\n        this.unloadIdentifier(definition.identifier);\n        const module = new Module(this.application, definition);\n        this.connectModule(module);\n        const afterLoad = definition.controllerConstructor.afterLoad;\n        if (afterLoad) {\n            afterLoad(definition.identifier, this.application);\n        }\n    }\n    unloadIdentifier(identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            this.disconnectModule(module);\n        }\n    }\n    getContextForElementAndIdentifier(element, identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            return module.contexts.find((context) => context.element == element);\n        }\n    }\n    handleError(error, message, detail) {\n        this.application.handleError(error, message, detail);\n    }\n    createScopeForElementAndIdentifier(element, identifier) {\n        return new Scope(this.schema, element, identifier, this.logger);\n    }\n    scopeConnected(scope) {\n        this.scopesByIdentifier.add(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.connectContextForScope(scope);\n        }\n    }\n    scopeDisconnected(scope) {\n        this.scopesByIdentifier.delete(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.disconnectContextForScope(scope);\n        }\n    }\n    connectModule(module) {\n        this.modulesByIdentifier.set(module.identifier, module);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach((scope) => module.connectContextForScope(scope));\n    }\n    disconnectModule(module) {\n        this.modulesByIdentifier.delete(module.identifier);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach((scope) => module.disconnectContextForScope(scope));\n    }\n}\n\nconst defaultSchema = {\n    controllerAttribute: \"data-controller\",\n    actionAttribute: \"data-action\",\n    targetAttribute: \"data-target\",\n    targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n    outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n    keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n    return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n    constructor(element = document.documentElement, schema = defaultSchema) {\n        this.logger = console;\n        this.debug = false;\n        this.logDebugActivity = (identifier, functionName, detail = {}) => {\n            if (this.debug) {\n                this.logFormattedMessage(identifier, functionName, detail);\n            }\n        };\n        this.element = element;\n        this.schema = schema;\n        this.dispatcher = new Dispatcher(this);\n        this.router = new Router(this);\n        this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n    }\n    static start(element, schema) {\n        const application = new this(element, schema);\n        application.start();\n        return application;\n    }\n    async start() {\n        await domReady();\n        this.logDebugActivity(\"application\", \"starting\");\n        this.dispatcher.start();\n        this.router.start();\n        this.logDebugActivity(\"application\", \"start\");\n    }\n    stop() {\n        this.logDebugActivity(\"application\", \"stopping\");\n        this.dispatcher.stop();\n        this.router.stop();\n        this.logDebugActivity(\"application\", \"stop\");\n    }\n    register(identifier, controllerConstructor) {\n        this.load({ identifier, controllerConstructor });\n    }\n    registerActionOption(name, filter) {\n        this.actionDescriptorFilters[name] = filter;\n    }\n    load(head, ...rest) {\n        const definitions = Array.isArray(head) ? head : [head, ...rest];\n        definitions.forEach((definition) => {\n            if (definition.controllerConstructor.shouldLoad) {\n                this.router.loadDefinition(definition);\n            }\n        });\n    }\n    unload(head, ...rest) {\n        const identifiers = Array.isArray(head) ? head : [head, ...rest];\n        identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n    }\n    get controllers() {\n        return this.router.contexts.map((context) => context.controller);\n    }\n    getControllerForElementAndIdentifier(element, identifier) {\n        const context = this.router.getContextForElementAndIdentifier(element, identifier);\n        return context ? context.controller : null;\n    }\n    handleError(error, message, detail) {\n        var _a;\n        this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n        (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n    }\n    logFormattedMessage(identifier, functionName, detail = {}) {\n        detail = Object.assign({ application: this }, detail);\n        this.logger.groupCollapsed(`${identifier} #${functionName}`);\n        this.logger.log(\"details:\", Object.assign({}, detail));\n        this.logger.groupEnd();\n    }\n}\nfunction domReady() {\n    return new Promise((resolve) => {\n        if (document.readyState == \"loading\") {\n            document.addEventListener(\"DOMContentLoaded\", () => resolve());\n        }\n        else {\n            resolve();\n        }\n    });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n    const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n    return classes.reduce((properties, classDefinition) => {\n        return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n    }, {});\n}\nfunction propertiesForClassDefinition(key) {\n    return {\n        [`${key}Class`]: {\n            get() {\n                const { classes } = this;\n                if (classes.has(key)) {\n                    return classes.get(key);\n                }\n                else {\n                    const attribute = classes.getAttributeName(key);\n                    throw new Error(`Missing attribute \"${attribute}\"`);\n                }\n            },\n        },\n        [`${key}Classes`]: {\n            get() {\n                return this.classes.getAll(key);\n            },\n        },\n        [`has${capitalize(key)}Class`]: {\n            get() {\n                return this.classes.has(key);\n            },\n        },\n    };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n    const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n    return outlets.reduce((properties, outletDefinition) => {\n        return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n    }, {});\n}\nfunction propertiesForOutletDefinition(name) {\n    const camelizedName = namespaceCamelize(name);\n    return {\n        [`${camelizedName}Outlet`]: {\n            get() {\n                const outlet = this.outlets.find(name);\n                if (outlet) {\n                    const outletController = this.application.getControllerForElementAndIdentifier(outlet, name);\n                    if (outletController) {\n                        return outletController;\n                    }\n                    else {\n                        throw new Error(`Missing \"data-controller=${name}\" attribute on outlet element for \"${this.identifier}\" controller`);\n                    }\n                }\n                throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n            },\n        },\n        [`${camelizedName}Outlets`]: {\n            get() {\n                const outlets = this.outlets.findAll(name);\n                if (outlets.length > 0) {\n                    return outlets\n                        .map((outlet) => {\n                        const controller = this.application.getControllerForElementAndIdentifier(outlet, name);\n                        if (controller) {\n                            return controller;\n                        }\n                        else {\n                            console.warn(`The provided outlet element is missing the outlet controller \"${name}\" for \"${this.identifier}\"`, outlet);\n                        }\n                    })\n                        .filter((controller) => controller);\n                }\n                return [];\n            },\n        },\n        [`${camelizedName}OutletElement`]: {\n            get() {\n                const outlet = this.outlets.find(name);\n                if (outlet) {\n                    return outlet;\n                }\n                else {\n                    throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n                }\n            },\n        },\n        [`${camelizedName}OutletElements`]: {\n            get() {\n                return this.outlets.findAll(name);\n            },\n        },\n        [`has${capitalize(camelizedName)}Outlet`]: {\n            get() {\n                return this.outlets.has(name);\n            },\n        },\n    };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n    const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n    return targets.reduce((properties, targetDefinition) => {\n        return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n    }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n    return {\n        [`${name}Target`]: {\n            get() {\n                const target = this.targets.find(name);\n                if (target) {\n                    return target;\n                }\n                else {\n                    throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n                }\n            },\n        },\n        [`${name}Targets`]: {\n            get() {\n                return this.targets.findAll(name);\n            },\n        },\n        [`has${capitalize(name)}Target`]: {\n            get() {\n                return this.targets.has(name);\n            },\n        },\n    };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n    const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n    const propertyDescriptorMap = {\n        valueDescriptorMap: {\n            get() {\n                return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n                    const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n                    const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n                    return Object.assign(result, { [attributeName]: valueDescriptor });\n                }, {});\n            },\n        },\n    };\n    return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n        return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n    }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n    const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n    const { key, name, reader: read, writer: write } = definition;\n    return {\n        [name]: {\n            get() {\n                const value = this.data.get(key);\n                if (value !== null) {\n                    return read(value);\n                }\n                else {\n                    return definition.defaultValue;\n                }\n            },\n            set(value) {\n                if (value === undefined) {\n                    this.data.delete(key);\n                }\n                else {\n                    this.data.set(key, write(value));\n                }\n            },\n        },\n        [`has${capitalize(name)}`]: {\n            get() {\n                return this.data.has(key) || definition.hasCustomDefaultValue;\n            },\n        },\n    };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n    return valueDescriptorForTokenAndTypeDefinition({\n        controller,\n        token,\n        typeDefinition,\n    });\n}\nfunction parseValueTypeConstant(constant) {\n    switch (constant) {\n        case Array:\n            return \"array\";\n        case Boolean:\n            return \"boolean\";\n        case Number:\n            return \"number\";\n        case Object:\n            return \"object\";\n        case String:\n            return \"string\";\n    }\n}\nfunction parseValueTypeDefault(defaultValue) {\n    switch (typeof defaultValue) {\n        case \"boolean\":\n            return \"boolean\";\n        case \"number\":\n            return \"number\";\n        case \"string\":\n            return \"string\";\n    }\n    if (Array.isArray(defaultValue))\n        return \"array\";\n    if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n        return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n    const typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n    if (!typeFromObject)\n        return;\n    const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n    if (typeFromObject !== defaultValueType) {\n        const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.token;\n        throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n    }\n    return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n    const typeFromObject = parseValueTypeObject({\n        controller: payload.controller,\n        token: payload.token,\n        typeObject: payload.typeDefinition,\n    });\n    const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n    const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n    const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n    if (type)\n        return type;\n    const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n    throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n    const constant = parseValueTypeConstant(typeDefinition);\n    if (constant)\n        return defaultValuesByType[constant];\n    const defaultValue = typeDefinition.default;\n    if (defaultValue !== undefined)\n        return defaultValue;\n    return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n    const key = `${dasherize(payload.token)}-value`;\n    const type = parseValueTypeDefinition(payload);\n    return {\n        type,\n        key,\n        name: camelize(key),\n        get defaultValue() {\n            return defaultValueForDefinition(payload.typeDefinition);\n        },\n        get hasCustomDefaultValue() {\n            return parseValueTypeDefault(payload.typeDefinition) !== undefined;\n        },\n        reader: readers[type],\n        writer: writers[type] || writers.default,\n    };\n}\nconst defaultValuesByType = {\n    get array() {\n        return [];\n    },\n    boolean: false,\n    number: 0,\n    get object() {\n        return {};\n    },\n    string: \"\",\n};\nconst readers = {\n    array(value) {\n        const array = JSON.parse(value);\n        if (!Array.isArray(array)) {\n            throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n        }\n        return array;\n    },\n    boolean(value) {\n        return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n    },\n    number(value) {\n        return Number(value);\n    },\n    object(value) {\n        const object = JSON.parse(value);\n        if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n            throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n        }\n        return object;\n    },\n    string(value) {\n        return value;\n    },\n};\nconst writers = {\n    default: writeString,\n    array: writeJSON,\n    object: writeJSON,\n};\nfunction writeJSON(value) {\n    return JSON.stringify(value);\n}\nfunction writeString(value) {\n    return `${value}`;\n}\n\nclass Controller {\n    constructor(context) {\n        this.context = context;\n    }\n    static get shouldLoad() {\n        return true;\n    }\n    static afterLoad(_identifier, _application) {\n        return;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get targets() {\n        return this.scope.targets;\n    }\n    get outlets() {\n        return this.scope.outlets;\n    }\n    get classes() {\n        return this.scope.classes;\n    }\n    get data() {\n        return this.scope.data;\n    }\n    initialize() {\n    }\n    connect() {\n    }\n    disconnect() {\n    }\n    dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n        const type = prefix ? `${prefix}:${eventName}` : eventName;\n        const event = new CustomEvent(type, { detail, bubbles, cancelable });\n        target.dispatchEvent(event);\n        return event;\n    }\n}\nController.blessings = [\n    ClassPropertiesBlessing,\n    TargetPropertiesBlessing,\n    ValuePropertiesBlessing,\n    OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.debug = false\nwindow.Stimulus   = application\n\nexport { application }\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"content\", \"icon\"]\n\n  connect() {\n    this.loadState()\n  }\n\n  toggle() {\n    const content = this.contentTarget\n    const isCollapsed = content.classList.contains('d-none')\n    \n    if (isCollapsed) {\n      this.show()\n    } else {\n      this.hide()\n    }\n    \n    this.saveState(!isCollapsed)\n  }\n\n  show() {\n    this.contentTarget.classList.remove('d-none')\n    this.iconTarget.classList.remove('fa-chevron-down')\n    this.iconTarget.classList.add('fa-chevron-up')\n  }\n\n  hide() {\n    this.contentTarget.classList.add('d-none')\n    this.iconTarget.classList.remove('fa-chevron-up')\n    this.iconTarget.classList.add('fa-chevron-down')\n  }\n\n  saveState(isCollapsed) {\n    localStorage.setItem('chartSectionCollapsed', isCollapsed)\n  }\n\n  loadState() {\n    const isCollapsed = localStorage.getItem('chartSectionCollapsed') === 'true'\n    \n    if (isCollapsed) {\n      this.hide()\n    } else {\n      this.show()\n    }\n  }\n}\n", "export class FetchResponse {\n  constructor (response) {\n    this.response = response\n  }\n\n  get statusCode () {\n    return this.response.status\n  }\n\n  get redirected () {\n    return this.response.redirected\n  }\n\n  get ok () {\n    return this.response.ok\n  }\n\n  get unauthenticated () {\n    return this.statusCode === 401\n  }\n\n  get unprocessableEntity () {\n    return this.statusCode === 422\n  }\n\n  get authenticationURL () {\n    return this.response.headers.get('WWW-Authenticate')\n  }\n\n  get contentType () {\n    const contentType = this.response.headers.get('Content-Type') || ''\n\n    return contentType.replace(/;.*$/, '')\n  }\n\n  get headers () {\n    return this.response.headers\n  }\n\n  get html () {\n    if (this.contentType.match(/^(application|text)\\/(html|xhtml\\+xml)$/)) {\n      return this.text\n    }\n\n    return Promise.reject(new Error(`Expected an HTML response but got \"${this.contentType}\" instead`))\n  }\n\n  get json () {\n    if (this.contentType.match(/^application\\/.*json$/)) {\n      return this.responseJson || (this.responseJson = this.response.json())\n    }\n\n    return Promise.reject(new Error(`Expected a JSON response but got \"${this.contentType}\" instead`))\n  }\n\n  get text () {\n    return this.responseText || (this.responseText = this.response.text())\n  }\n\n  get isTurboStream () {\n    return this.contentType.match(/^text\\/vnd\\.turbo-stream\\.html/)\n  }\n\n  async renderTurboStream () {\n    if (this.isTurboStream) {\n      if (window.Turbo) {\n        await window.Turbo.renderStreamMessage(await this.text)\n      } else {\n        console.warn('You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js')\n      }\n    } else {\n      return Promise.reject(new Error(`Expected a Turbo Stream response but got \"${this.contentType}\" instead`))\n    }\n  }\n}\n", "export class RequestInterceptor {\n  static register (interceptor) {\n    this.interceptor = interceptor\n  }\n\n  static get () {\n    return this.interceptor\n  }\n\n  static reset () {\n    this.interceptor = undefined\n  }\n}\n", "export function getCookie (name) {\n  const cookies = document.cookie ? document.cookie.split('; ') : []\n  const prefix = `${encodeURIComponent(name)}=`\n  const cookie = cookies.find(cookie => cookie.startsWith(prefix))\n\n  if (cookie) {\n    const value = cookie.split('=').slice(1).join('=')\n\n    if (value) {\n      return decodeURIComponent(value)\n    }\n  }\n}\n\nexport function compact (object) {\n  const result = {}\n\n  for (const key in object) {\n    const value = object[key]\n    if (value !== undefined) {\n      result[key] = value\n    }\n  }\n\n  return result\n}\n\nexport function metaContent (name) {\n  const element = document.head.querySelector(`meta[name=\"${name}\"]`)\n  return element && element.content\n}\n\nexport function stringEntriesFromFormData (formData) {\n  return [...formData].reduce((entries, [name, value]) => {\n    return entries.concat(typeof value === 'string' ? [[name, value]] : [])\n  }, [])\n}\n\nexport function mergeEntries (searchParams, entries) {\n  for (const [name, value] of entries) {\n    if (value instanceof window.File) continue\n\n    if (searchParams.has(name) && !name.includes('[]')) {\n      searchParams.delete(name)\n      searchParams.set(name, value)\n    } else {\n      searchParams.append(name, value)\n    }\n  }\n}\n", "import { FetchResponse } from './fetch_response'\nimport { RequestInterceptor } from './request_interceptor'\nimport { getCookie, compact, metaContent, stringEntriesFromFormData, mergeEntries } from './lib/utils'\n\nexport class FetchRequest {\n  constructor (method, url, options = {}) {\n    this.method = method\n    this.options = options\n    this.originalUrl = url.toString()\n  }\n\n  async perform () {\n    try {\n      const requestInterceptor = RequestInterceptor.get()\n      if (requestInterceptor) {\n        await requestInterceptor(this)\n      }\n    } catch (error) {\n      console.error(error)\n    }\n\n    const response = new FetchResponse(await window.fetch(this.url, this.fetchOptions))\n\n    if (response.unauthenticated && response.authenticationURL) {\n      return Promise.reject(window.location.href = response.authenticationURL)\n    }\n\n    if (response.ok && response.isTurboStream) {\n      await response.renderTurboStream()\n    }\n\n    return response\n  }\n\n  addHeader (key, value) {\n    const headers = this.additionalHeaders\n    headers[key] = value\n    this.options.headers = headers\n  }\n\n  sameHostname () {\n    if (!this.originalUrl.startsWith('http:')) {\n      return true\n    }\n\n    try {\n      return new URL(this.originalUrl).hostname === window.location.hostname\n    } catch (_) {\n      return true\n    }\n  }\n\n  get fetchOptions () {\n    return {\n      method: this.method.toUpperCase(),\n      headers: this.headers,\n      body: this.formattedBody,\n      signal: this.signal,\n      credentials: 'same-origin',\n      redirect: this.redirect\n    }\n  }\n\n  get headers () {\n    const baseHeaders = {\n      'X-Requested-With': 'XMLHttpRequest',\n      'Content-Type': this.contentType,\n      Accept: this.accept\n    }\n\n    if (this.sameHostname()) {\n      baseHeaders['X-CSRF-Token'] = this.csrfToken\n    }\n\n    return compact(\n      Object.assign(baseHeaders, this.additionalHeaders)\n    )\n  }\n\n  get csrfToken () {\n    return getCookie(metaContent('csrf-param')) || metaContent('csrf-token')\n  }\n\n  get contentType () {\n    if (this.options.contentType) {\n      return this.options.contentType\n    } else if (this.body == null || this.body instanceof window.FormData) {\n      return undefined\n    } else if (this.body instanceof window.File) {\n      return this.body.type\n    }\n\n    return 'application/json'\n  }\n\n  get accept () {\n    switch (this.responseKind) {\n      case 'html':\n        return 'text/html, application/xhtml+xml'\n      case 'turbo-stream':\n        return 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml'\n      case 'json':\n        return 'application/json, application/vnd.api+json'\n      default:\n        return '*/*'\n    }\n  }\n\n  get body () {\n    return this.options.body\n  }\n\n  get query () {\n    const originalQuery = (this.originalUrl.split('?')[1] || '').split('#')[0]\n    const params = new URLSearchParams(originalQuery)\n\n    let requestQuery = this.options.query\n    if (requestQuery instanceof window.FormData) {\n      requestQuery = stringEntriesFromFormData(requestQuery)\n    } else if (requestQuery instanceof window.URLSearchParams) {\n      requestQuery = requestQuery.entries()\n    } else {\n      requestQuery = Object.entries(requestQuery || {})\n    }\n\n    mergeEntries(params, requestQuery)\n\n    const query = params.toString()\n    return (query.length > 0 ? `?${query}` : '')\n  }\n\n  get url () {\n    return (this.originalUrl.split('?')[0]).split('#')[0] + this.query\n  }\n\n  get responseKind () {\n    return this.options.responseKind || 'html'\n  }\n\n  get signal () {\n    return this.options.signal\n  }\n\n  get redirect () {\n    return this.options.redirect || 'follow'\n  }\n\n  get additionalHeaders () {\n    return this.options.headers || {}\n  }\n\n  get formattedBody () {\n    const bodyIsAString = Object.prototype.toString.call(this.body) === '[object String]'\n    const contentTypeIsJson = this.headers['Content-Type'] === 'application/json'\n\n    if (contentTypeIsJson && !bodyIsAString) {\n      return JSON.stringify(this.body)\n    }\n\n    return this.body\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\nimport { FetchRequest } from \"@rails/request.js\";\n\n// Connects to data-controller=\"confirm\"\nexport default class extends Controller {\n  static targets = [\"preregistration\", \"checkAllChecked\"];\n  static values = {\n    conferenceId: Number,\n  };\n  connect() {}\n\n  checkAll() {\n    // e.preventDefault()\n    const allPregistrationTargets = this.preregistrationTargets;\n    // console.log(this.userAllCheckedTarget.checked)\n    allPregistrationTargets.forEach((preregistration) => {\n      preregistration.checked = !preregistration.checked;\n    });\n  }\n\n  async confirmAll(e) {\n    e.preventDefault();\n\n    const conferenceId = this.conferenceIdValue;\n    const preregistrationChecks = this.preregistrationTargets.filter(\n      (preregistration) => preregistration.checked\n    );\n    const ids = preregistrationChecks\n      .map((preregistration) => preregistration.value)\n      .join(\",\");\n    const url = `/admin/conferences/${conferenceId}/confirm_all_deposits?ids=${ids}`;\n    if (preregistrationChecks.length === 0) {\n      alert(\"\uC6D0\uD558\uB294 \uD56D\uBAA9\uC744 \uC120\uD0DD\uD55C \uD6C4 \uACC4\uC18D\uD558\uC138\uC694.\");\n    } else {\n      if (confirm(`\uC785\uAE08\uD655\uC778 \uC77C\uAD04\uC791\uC131\uC744 \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?`) === true) {\n        // console.log(url);\n        const request = new FetchRequest(\"post\", url, {\n          responseKind: \"turbo-stream\",\n        });\n        const response = await request.perform();\n        if (response.ok) {\n          // $('#spinner-for-submit').fadeOut('slow');\n        }\n      }\n    }\n  }\n}\n", "/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n  return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n  return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n  return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n  return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n  return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n  return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n  var len = str.length;\n  var ret;\n  if (str[0] === '#') {\n    if (len === 4 || len === 5) {\n      ret = {\n        r: 255 & map$1[str[1]] * 17,\n        g: 255 & map$1[str[2]] * 17,\n        b: 255 & map$1[str[3]] * 17,\n        a: len === 5 ? map$1[str[4]] * 17 : 255\n      };\n    } else if (len === 7 || len === 9) {\n      ret = {\n        r: map$1[str[1]] << 4 | map$1[str[2]],\n        g: map$1[str[3]] << 4 | map$1[str[4]],\n        b: map$1[str[5]] << 4 | map$1[str[6]],\n        a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n      };\n    }\n  }\n  return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n  var f = isShort(v) ? h1 : h2;\n  return v\n    ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n    : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n  const a = s * Math.min(l, 1 - l);\n  const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n  return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n  const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n  return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n  const rgb = hsl2rgbn(h, 1, 0.5);\n  let i;\n  if (w + b > 1) {\n    i = 1 / (w + b);\n    w *= i;\n    b *= i;\n  }\n  for (i = 0; i < 3; i++) {\n    rgb[i] *= 1 - w - b;\n    rgb[i] += w;\n  }\n  return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n  if (r === max) {\n    return ((g - b) / d) + (g < b ? 6 : 0);\n  }\n  if (g === max) {\n    return (b - r) / d + 2;\n  }\n  return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n  const range = 255;\n  const r = v.r / range;\n  const g = v.g / range;\n  const b = v.b / range;\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  const l = (max + min) / 2;\n  let h, s, d;\n  if (max !== min) {\n    d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n    h = hueValue(r, g, b, d, max);\n    h = h * 60 + 0.5;\n  }\n  return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n  return (\n    Array.isArray(a)\n      ? f(a[0], a[1], a[2])\n      : f(a, b, c)\n  ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n  return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n  return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n  return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n  return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n  const m = HUE_RE.exec(str);\n  let a = 255;\n  let v;\n  if (!m) {\n    return;\n  }\n  if (m[5] !== v) {\n    a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n  }\n  const h = hue(+m[2]);\n  const p1 = +m[3] / 100;\n  const p2 = +m[4] / 100;\n  if (m[1] === 'hwb') {\n    v = hwb2rgb(h, p1, p2);\n  } else if (m[1] === 'hsv') {\n    v = hsv2rgb(h, p1, p2);\n  } else {\n    v = hsl2rgb(h, p1, p2);\n  }\n  return {\n    r: v[0],\n    g: v[1],\n    b: v[2],\n    a: a\n  };\n}\nfunction rotate(v, deg) {\n  var h = rgb2hsl(v);\n  h[0] = hue(h[0] + deg);\n  h = hsl2rgb(h);\n  v.r = h[0];\n  v.g = h[1];\n  v.b = h[2];\n}\nfunction hslString(v) {\n  if (!v) {\n    return;\n  }\n  const a = rgb2hsl(v);\n  const h = a[0];\n  const s = n2p(a[1]);\n  const l = n2p(a[2]);\n  return v.a < 255\n    ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n    : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n  const unpacked = {};\n  const keys = Object.keys(names$1);\n  const tkeys = Object.keys(map);\n  let i, j, k, ok, nk;\n  for (i = 0; i < keys.length; i++) {\n    ok = nk = keys[i];\n    for (j = 0; j < tkeys.length; j++) {\n      k = tkeys[j];\n      nk = nk.replace(k, map[k]);\n    }\n    k = parseInt(names$1[ok], 16);\n    unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n  }\n  return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n  if (!names) {\n    names = unpack();\n    names.transparent = [0, 0, 0, 0];\n  }\n  const a = names[str.toLowerCase()];\n  return a && {\n    r: a[0],\n    g: a[1],\n    b: a[2],\n    a: a.length === 4 ? a[3] : 255\n  };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n  const m = RGB_RE.exec(str);\n  let a = 255;\n  let r, g, b;\n  if (!m) {\n    return;\n  }\n  if (m[7] !== r) {\n    const v = +m[7];\n    a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n  }\n  r = +m[1];\n  g = +m[3];\n  b = +m[5];\n  r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n  g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n  b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n  return {\n    r: r,\n    g: g,\n    b: b,\n    a: a\n  };\n}\nfunction rgbString(v) {\n  return v && (\n    v.a < 255\n      ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n      : `rgb(${v.r}, ${v.g}, ${v.b})`\n  );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n  const r = from(b2n(rgb1.r));\n  const g = from(b2n(rgb1.g));\n  const b = from(b2n(rgb1.b));\n  return {\n    r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n    g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n    b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n    a: rgb1.a + t * (rgb2.a - rgb1.a)\n  };\n}\n\nfunction modHSL(v, i, ratio) {\n  if (v) {\n    let tmp = rgb2hsl(v);\n    tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n    tmp = hsl2rgb(tmp);\n    v.r = tmp[0];\n    v.g = tmp[1];\n    v.b = tmp[2];\n  }\n}\nfunction clone(v, proto) {\n  return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n  var v = {r: 0, g: 0, b: 0, a: 255};\n  if (Array.isArray(input)) {\n    if (input.length >= 3) {\n      v = {r: input[0], g: input[1], b: input[2], a: 255};\n      if (input.length > 3) {\n        v.a = n2b(input[3]);\n      }\n    }\n  } else {\n    v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n    v.a = n2b(v.a);\n  }\n  return v;\n}\nfunction functionParse(str) {\n  if (str.charAt(0) === 'r') {\n    return rgbParse(str);\n  }\n  return hueParse(str);\n}\nclass Color {\n  constructor(input) {\n    if (input instanceof Color) {\n      return input;\n    }\n    const type = typeof input;\n    let v;\n    if (type === 'object') {\n      v = fromObject(input);\n    } else if (type === 'string') {\n      v = hexParse(input) || nameParse(input) || functionParse(input);\n    }\n    this._rgb = v;\n    this._valid = !!v;\n  }\n  get valid() {\n    return this._valid;\n  }\n  get rgb() {\n    var v = clone(this._rgb);\n    if (v) {\n      v.a = b2n(v.a);\n    }\n    return v;\n  }\n  set rgb(obj) {\n    this._rgb = fromObject(obj);\n  }\n  rgbString() {\n    return this._valid ? rgbString(this._rgb) : undefined;\n  }\n  hexString() {\n    return this._valid ? hexString(this._rgb) : undefined;\n  }\n  hslString() {\n    return this._valid ? hslString(this._rgb) : undefined;\n  }\n  mix(color, weight) {\n    if (color) {\n      const c1 = this.rgb;\n      const c2 = color.rgb;\n      let w2;\n      const p = weight === w2 ? 0.5 : weight;\n      const w = 2 * p - 1;\n      const a = c1.a - c2.a;\n      const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n      w2 = 1 - w1;\n      c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n      c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n      c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n      c1.a = p * c1.a + (1 - p) * c2.a;\n      this.rgb = c1;\n    }\n    return this;\n  }\n  interpolate(color, t) {\n    if (color) {\n      this._rgb = interpolate(this._rgb, color._rgb, t);\n    }\n    return this;\n  }\n  clone() {\n    return new Color(this.rgb);\n  }\n  alpha(a) {\n    this._rgb.a = n2b(a);\n    return this;\n  }\n  clearer(ratio) {\n    const rgb = this._rgb;\n    rgb.a *= 1 - ratio;\n    return this;\n  }\n  greyscale() {\n    const rgb = this._rgb;\n    const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n    rgb.r = rgb.g = rgb.b = val;\n    return this;\n  }\n  opaquer(ratio) {\n    const rgb = this._rgb;\n    rgb.a *= 1 + ratio;\n    return this;\n  }\n  negate() {\n    const v = this._rgb;\n    v.r = 255 - v.r;\n    v.g = 255 - v.g;\n    v.b = 255 - v.b;\n    return this;\n  }\n  lighten(ratio) {\n    modHSL(this._rgb, 2, ratio);\n    return this;\n  }\n  darken(ratio) {\n    modHSL(this._rgb, 2, -ratio);\n    return this;\n  }\n  saturate(ratio) {\n    modHSL(this._rgb, 1, ratio);\n    return this;\n  }\n  desaturate(ratio) {\n    modHSL(this._rgb, 1, -ratio);\n    return this;\n  }\n  rotate(deg) {\n    rotate(this._rgb, deg);\n    return this;\n  }\n}\n\nfunction index_esm(input) {\n  return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n", "/**\n * @namespace Chart.helpers\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ActiveDataPoint, ChartEvent} from '../types/index.js';\n\n/**\n * An empty function that can be used, for example, for optional callback.\n */\nexport function noop() {\n  /* noop */\n}\n\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nexport const uid = (() => {\n  let id = 0;\n  return () => id++;\n})();\n\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isNullOrUndef(value: unknown): value is null | undefined {\n  return value === null || value === undefined;\n}\n\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nexport function isArray<T = unknown>(value: unknown): value is T[] {\n  if (Array.isArray && Array.isArray(value)) {\n    return true;\n  }\n  const type = Object.prototype.toString.call(value);\n  if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n    return true;\n  }\n  return false;\n}\n\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isObject(value: unknown): value is AnyObject {\n  return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value  - The value to test.\n */\nfunction isNumberFinite(value: unknown): value is number {\n  return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\nexport {\n  isNumberFinite as isFinite,\n};\n\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nexport function finiteOrDefault(value: unknown, defaultValue: number) {\n  return isNumberFinite(value) ? value : defaultValue;\n}\n\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nexport function valueOrDefault<T>(value: T | undefined, defaultValue: T) {\n  return typeof value === 'undefined' ? defaultValue : value;\n}\n\nexport const toPercentage = (value: number | string, dimension: number) =>\n  typeof value === 'string' && value.endsWith('%') ?\n    parseFloat(value) / 100\n    : +value / dimension;\n\nexport const toDimension = (value: number | string, dimension: number) =>\n  typeof value === 'string' && value.endsWith('%') ?\n    parseFloat(value) / 100 * dimension\n    : +value;\n\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nexport function callback<T extends (this: TA, ...restArgs: unknown[]) => R, TA, R>(\n  fn: T | undefined,\n  args: unknown[],\n  thisArg?: TA\n): R | undefined {\n  if (fn && typeof fn.call === 'function') {\n    return fn.apply(thisArg, args);\n  }\n}\n\n/**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param loopable - The object or array to be iterated.\n * @param fn - The function to call for each item.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n * @param [reverse] - If true, iterates backward on the loopable.\n */\nexport function each<T, TA>(\n  loopable: Record<string, T>,\n  fn: (this: TA, v: T, i: string) => void,\n  thisArg?: TA,\n  reverse?: boolean\n): void;\nexport function each<T, TA>(\n  loopable: T[],\n  fn: (this: TA, v: T, i: number) => void,\n  thisArg?: TA,\n  reverse?: boolean\n): void;\nexport function each<T, TA>(\n  loopable: T[] | Record<string, T>,\n  fn: (this: TA, v: T, i: any) => void,\n  thisArg?: TA,\n  reverse?: boolean\n) {\n  let i: number, len: number, keys: string[];\n  if (isArray(loopable)) {\n    len = loopable.length;\n    if (reverse) {\n      for (i = len - 1; i >= 0; i--) {\n        fn.call(thisArg, loopable[i], i);\n      }\n    } else {\n      for (i = 0; i < len; i++) {\n        fn.call(thisArg, loopable[i], i);\n      }\n    }\n  } else if (isObject(loopable)) {\n    keys = Object.keys(loopable);\n    len = keys.length;\n    for (i = 0; i < len; i++) {\n      fn.call(thisArg, loopable[keys[i]], keys[i]);\n    }\n  }\n}\n\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nexport function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]) {\n  let i: number, ilen: number, v0: ActiveDataPoint, v1: ActiveDataPoint;\n\n  if (!a0 || !a1 || a0.length !== a1.length) {\n    return false;\n  }\n\n  for (i = 0, ilen = a0.length; i < ilen; ++i) {\n    v0 = a0[i];\n    v1 = a1[i];\n\n    if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nexport function clone<T>(source: T): T {\n  if (isArray(source)) {\n    return source.map(clone) as unknown as T;\n  }\n\n  if (isObject(source)) {\n    const target = Object.create(null);\n    const keys = Object.keys(source);\n    const klen = keys.length;\n    let k = 0;\n\n    for (; k < klen; ++k) {\n      target[keys[k]] = clone(source[keys[k]]);\n    }\n\n    return target;\n  }\n\n  return source;\n}\n\nfunction isValidKey(key: string) {\n  return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nexport function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject) {\n  if (!isValidKey(key)) {\n    return;\n  }\n\n  const tval = target[key];\n  const sval = source[key];\n\n  if (isObject(tval) && isObject(sval)) {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    merge(tval, sval, options);\n  } else {\n    target[key] = clone(sval);\n  }\n}\n\nexport interface MergeOptions {\n  merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @param [options] - Merging options:\n * @param [options.merger] - The merge method (key, target, source, options)\n * @returns The `target` object.\n */\nexport function merge<T>(target: T, source: [], options?: MergeOptions): T;\nexport function merge<T, S1>(target: T, source: S1, options?: MergeOptions): T & S1;\nexport function merge<T, S1>(target: T, source: [S1], options?: MergeOptions): T & S1;\nexport function merge<T, S1, S2>(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;\nexport function merge<T, S1, S2, S3>(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;\nexport function merge<T, S1, S2, S3, S4>(\n  target: T,\n  source: [S1, S2, S3, S4],\n  options?: MergeOptions\n): T & S1 & S2 & S3 & S4;\nexport function merge<T>(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;\nexport function merge<T>(target: T, source: AnyObject[], options?: MergeOptions): AnyObject {\n  const sources = isArray(source) ? source : [source];\n  const ilen = sources.length;\n\n  if (!isObject(target)) {\n    return target as AnyObject;\n  }\n\n  options = options || {};\n  const merger = options.merger || _merger;\n  let current: AnyObject;\n\n  for (let i = 0; i < ilen; ++i) {\n    current = sources[i];\n    if (!isObject(current)) {\n      continue;\n    }\n\n    const keys = Object.keys(current);\n    for (let k = 0, klen = keys.length; k < klen; ++k) {\n      merger(keys[k], target, current, options as AnyObject);\n    }\n  }\n\n  return target;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @returns The `target` object.\n */\nexport function mergeIf<T>(target: T, source: []): T;\nexport function mergeIf<T, S1>(target: T, source: S1): T & S1;\nexport function mergeIf<T, S1>(target: T, source: [S1]): T & S1;\nexport function mergeIf<T, S1, S2>(target: T, source: [S1, S2]): T & S1 & S2;\nexport function mergeIf<T, S1, S2, S3>(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;\nexport function mergeIf<T, S1, S2, S3, S4>(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;\nexport function mergeIf<T>(target: T, source: AnyObject[]): AnyObject;\nexport function mergeIf<T>(target: T, source: AnyObject[]): AnyObject {\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  return merge<T>(target, source, {merger: _mergerIf});\n}\n\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nexport function _mergerIf(key: string, target: AnyObject, source: AnyObject) {\n  if (!isValidKey(key)) {\n    return;\n  }\n\n  const tval = target[key];\n  const sval = source[key];\n\n  if (isObject(tval) && isObject(sval)) {\n    mergeIf(tval, sval);\n  } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n    target[key] = clone(sval);\n  }\n}\n\n/**\n * @private\n */\nexport function _deprecated(scope: string, value: unknown, previous: string, current: string) {\n  if (value !== undefined) {\n    console.warn(scope + ': \"' + previous +\n      '\" is deprecated. Please use \"' + current + '\" instead');\n  }\n}\n\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n  // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n  '': v => v,\n  // default resolvers\n  x: o => o.x,\n  y: o => o.y\n};\n\n/**\n * @private\n */\nexport function _splitKey(key: string) {\n  const parts = key.split('.');\n  const keys: string[] = [];\n  let tmp = '';\n  for (const part of parts) {\n    tmp += part;\n    if (tmp.endsWith('\\\\')) {\n      tmp = tmp.slice(0, -1) + '.';\n    } else {\n      keys.push(tmp);\n      tmp = '';\n    }\n  }\n  return keys;\n}\n\nfunction _getKeyResolver(key: string) {\n  const keys = _splitKey(key);\n  return obj => {\n    for (const k of keys) {\n      if (k === '') {\n        // For backward compatibility:\n        // Chart.helpers.core resolveObjectKey should break at empty key\n        break;\n      }\n      obj = obj && obj[k];\n    }\n    return obj;\n  };\n}\n\nexport function resolveObjectKey(obj: AnyObject, key: string): any {\n  const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n  return resolver(obj);\n}\n\n/**\n * @private\n */\nexport function _capitalize(str: string) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n\nexport const defined = (value: unknown) => typeof value !== 'undefined';\n\nexport const isFunction = (value: unknown): value is (...args: any[]) => any => typeof value === 'function';\n\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nexport const setsEqual = <T>(a: Set<T>, b: Set<T>) => {\n  if (a.size !== b.size) {\n    return false;\n  }\n\n  for (const item of a) {\n    if (!b.has(item)) {\n      return false;\n    }\n  }\n\n  return true;\n};\n\n/**\n * @param e - The event\n * @private\n */\nexport function _isClickEvent(e: ChartEvent) {\n  return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n", "import type {Point} from '../types/geometric.js';\nimport {isFinite as isFiniteNumber} from './helpers.core.js';\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\n\nexport const PI = Math.PI;\nexport const TAU = 2 * PI;\nexport const PITAU = TAU + PI;\nexport const INFINITY = Number.POSITIVE_INFINITY;\nexport const RAD_PER_DEG = PI / 180;\nexport const HALF_PI = PI / 2;\nexport const QUARTER_PI = PI / 4;\nexport const TWO_THIRDS_PI = PI * 2 / 3;\n\nexport const log10 = Math.log10;\nexport const sign = Math.sign;\n\nexport function almostEquals(x: number, y: number, epsilon: number) {\n  return Math.abs(x - y) < epsilon;\n}\n\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nexport function niceNum(range: number) {\n  const roundedRange = Math.round(range);\n  range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n  const niceRange = Math.pow(10, Math.floor(log10(range)));\n  const fraction = range / niceRange;\n  const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n  return niceFraction * niceRange;\n}\n\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nexport function _factorize(value: number) {\n  const result: number[] = [];\n  const sqrt = Math.sqrt(value);\n  let i: number;\n\n  for (i = 1; i < sqrt; i++) {\n    if (value % i === 0) {\n      result.push(i);\n      result.push(value / i);\n    }\n  }\n  if (sqrt === (sqrt | 0)) { // if value is a square number\n    result.push(sqrt);\n  }\n\n  result.sort((a, b) => a - b).pop();\n  return result;\n}\n\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */\nfunction isNonPrimitive(n: unknown) {\n  return typeof n === 'symbol' || (typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n));\n}\n\nexport function isNumber(n: unknown): n is number {\n  return !isNonPrimitive(n) && !isNaN(parseFloat(n as string)) && isFinite(n as number);\n}\n\nexport function almostWhole(x: number, epsilon: number) {\n  const rounded = Math.round(x);\n  return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\n\n/**\n * @private\n */\nexport function _setMinAndMaxByKey(\n  array: Record<string, number>[],\n  target: { min: number, max: number },\n  property: string\n) {\n  let i: number, ilen: number, value: number;\n\n  for (i = 0, ilen = array.length; i < ilen; i++) {\n    value = array[i][property];\n    if (!isNaN(value)) {\n      target.min = Math.min(target.min, value);\n      target.max = Math.max(target.max, value);\n    }\n  }\n}\n\nexport function toRadians(degrees: number) {\n  return degrees * (PI / 180);\n}\n\nexport function toDegrees(radians: number) {\n  return radians * (180 / PI);\n}\n\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nexport function _decimalPlaces(x: number) {\n  if (!isFiniteNumber(x)) {\n    return;\n  }\n  let e = 1;\n  let p = 0;\n  while (Math.round(x * e) / e !== x) {\n    e *= 10;\n    p++;\n  }\n  return p;\n}\n\n// Gets the angle from vertical upright to the point about a centre.\nexport function getAngleFromPoint(\n  centrePoint: Point,\n  anglePoint: Point\n) {\n  const distanceFromXCenter = anglePoint.x - centrePoint.x;\n  const distanceFromYCenter = anglePoint.y - centrePoint.y;\n  const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n  let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n  if (angle < (-0.5 * PI)) {\n    angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n  }\n\n  return {\n    angle,\n    distance: radialDistanceFromCenter\n  };\n}\n\nexport function distanceBetweenPoints(pt1: Point, pt2: Point) {\n  return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nexport function _angleDiff(a: number, b: number) {\n  return (a - b + PITAU) % TAU - PI;\n}\n\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nexport function _normalizeAngle(a: number) {\n  return (a % TAU + TAU) % TAU;\n}\n\n/**\n * @private\n */\nexport function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean) {\n  const a = _normalizeAngle(angle);\n  const s = _normalizeAngle(start);\n  const e = _normalizeAngle(end);\n  const angleToStart = _normalizeAngle(s - a);\n  const angleToEnd = _normalizeAngle(e - a);\n  const startToAngle = _normalizeAngle(a - s);\n  const endToAngle = _normalizeAngle(a - e);\n  return a === s || a === e || (sameAngleIsFullCircle && s === e)\n    || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\n\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nexport function _limitValue(value: number, min: number, max: number) {\n  return Math.max(min, Math.min(max, value));\n}\n\n/**\n * @param {number} value\n * @private\n */\nexport function _int16Range(value: number) {\n  return _limitValue(value, -32768, 32767);\n}\n\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nexport function _isBetween(value: number, start: number, end: number, epsilon = 1e-6) {\n  return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n", "import {_capitalize} from './helpers.core.js';\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param value - value to find\n * @param cmp\n * @private\n */\nexport function _lookup(\n  table: number[],\n  value: number,\n  cmp?: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup<T>(\n  table: T[],\n  value: number,\n  cmp: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n  table: unknown[],\n  value: number,\n  cmp?: (value: number) => boolean\n) {\n  cmp = cmp || ((index) => table[index] < value);\n  let hi = table.length - 1;\n  let lo = 0;\n  let mid: number;\n\n  while (hi - lo > 1) {\n    mid = (lo + hi) >> 1;\n    if (cmp(mid)) {\n      lo = mid;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return {lo, hi};\n}\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nexport const _lookupByKey = (\n  table: Record<string, number>[],\n  key: string,\n  value: number,\n  last?: boolean\n) =>\n  _lookup(table, value, last\n    ? index => {\n      const ti = table[index][key];\n      return ti < value || ti === value && table[index + 1][key] === value;\n    }\n    : index => table[index][key] < value);\n\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nexport const _rlookupByKey = (\n  table: Record<string, number>[],\n  key: string,\n  value: number\n) =>\n  _lookup(table, value, index => table[index][key] >= value);\n\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nexport function _filterBetween(values: number[], min: number, max: number) {\n  let start = 0;\n  let end = values.length;\n\n  while (start < end && values[start] < min) {\n    start++;\n  }\n  while (end > start && values[end - 1] > max) {\n    end--;\n  }\n\n  return start > 0 || end < values.length\n    ? values.slice(start, end)\n    : values;\n}\n\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'] as const;\n\nexport interface ArrayListener<T> {\n  _onDataPush?(...item: T[]): void;\n  _onDataPop?(): void;\n  _onDataShift?(): void;\n  _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;\n  _onDataUnshift?(...item: T[]): void;\n}\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.\n */\nexport function listenArrayEvents<T>(array: T[], listener: ArrayListener<T>): void;\nexport function listenArrayEvents(array, listener) {\n  if (array._chartjs) {\n    array._chartjs.listeners.push(listener);\n    return;\n  }\n\n  Object.defineProperty(array, '_chartjs', {\n    configurable: true,\n    enumerable: false,\n    value: {\n      listeners: [listener]\n    }\n  });\n\n  arrayEvents.forEach((key) => {\n    const method = '_onData' + _capitalize(key);\n    const base = array[key];\n\n    Object.defineProperty(array, key, {\n      configurable: true,\n      enumerable: false,\n      value(...args) {\n        const res = base.apply(this, args);\n\n        array._chartjs.listeners.forEach((object) => {\n          if (typeof object[method] === 'function') {\n            object[method](...args);\n          }\n        });\n\n        return res;\n      }\n    });\n  });\n}\n\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nexport function unlistenArrayEvents<T>(array: T[], listener: ArrayListener<T>): void;\nexport function unlistenArrayEvents(array, listener) {\n  const stub = array._chartjs;\n  if (!stub) {\n    return;\n  }\n\n  const listeners = stub.listeners;\n  const index = listeners.indexOf(listener);\n  if (index !== -1) {\n    listeners.splice(index, 1);\n  }\n\n  if (listeners.length > 0) {\n    return;\n  }\n\n  arrayEvents.forEach((key) => {\n    delete array[key];\n  });\n\n  delete array._chartjs;\n}\n\n/**\n * @param items\n */\nexport function _arrayUnique<T>(items: T[]) {\n  const set = new Set<T>(items);\n\n  if (set.size === items.length) {\n    return items;\n  }\n\n  return Array.from(set);\n}\n", "import type {ChartMeta, PointElement} from '../types/index.js';\n\nimport {_limitValue} from './helpers.math.js';\nimport {_lookupByKey} from './helpers.collection.js';\nimport {isNullOrUndef} from './helpers.core.js';\n\nexport function fontString(pixelSize: number, fontStyle: string, fontFamily: string) {\n  return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\n/**\n* Request animation polyfill\n*/\nexport const requestAnimFrame = (function() {\n  if (typeof window === 'undefined') {\n    return function(callback) {\n      return callback();\n    };\n  }\n  return window.requestAnimationFrame;\n}());\n\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nexport function throttled<TArgs extends Array<any>>(\n  fn: (...args: TArgs) => void,\n  thisArg: any,\n) {\n  let argsToUse = [] as TArgs;\n  let ticking = false;\n\n  return function(...args: TArgs) {\n    // Save the args for use later\n    argsToUse = args;\n    if (!ticking) {\n      ticking = true;\n      requestAnimFrame.call(window, () => {\n        ticking = false;\n        fn.apply(thisArg, argsToUse);\n      });\n    }\n  };\n}\n\n/**\n * Debounces calling `fn` for `delay` ms\n */\nexport function debounce<TArgs extends Array<any>>(fn: (...args: TArgs) => void, delay: number) {\n  let timeout;\n  return function(...args: TArgs) {\n    if (delay) {\n      clearTimeout(timeout);\n      timeout = setTimeout(fn, delay, args);\n    } else {\n      fn.apply(this, args);\n    }\n    return delay;\n  };\n}\n\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nexport const _toLeftRightCenter = (align: 'start' | 'end' | 'center') => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nexport const _alignStartEnd = (align: 'start' | 'end' | 'center', start: number, end: number) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nexport const _textX = (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => {\n  const check = rtl ? 'left' : 'right';\n  return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\n/**\n * Return start and count of visible points.\n * @private\n */\nexport function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean) {\n  const pointCount = points.length;\n\n  let start = 0;\n  let count = pointCount;\n\n  if (meta._sorted) {\n    const {iScale, vScale, _parsed} = meta;\n    const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n    const axis = iScale.axis;\n    const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n    if (minDefined) {\n      start = Math.min(\n        // @ts-expect-error Need to type _parsed\n        _lookupByKey(_parsed, axis, min).lo,\n        // @ts-expect-error Need to fix types on _lookupByKey\n        animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n      if (spanGaps) {\n        const distanceToDefinedLo = (_parsed\n          .slice(0, start + 1)\n          .reverse()\n          .findIndex(\n            point => !isNullOrUndef(point[vScale.axis])));\n        start -= Math.max(0, distanceToDefinedLo);\n      }\n      start = _limitValue(start, 0, pointCount - 1);\n    }\n    if (maxDefined) {\n      let end = Math.max(\n        // @ts-expect-error Need to type _parsed\n        _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n        // @ts-expect-error Need to fix types on _lookupByKey\n        animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n      if (spanGaps) {\n        const distanceToDefinedHi = (_parsed\n          .slice(end - 1)\n          .findIndex(\n            point => !isNullOrUndef(point[vScale.axis])));\n        end += Math.max(0, distanceToDefinedHi);\n      }\n      count = _limitValue(end, start, pointCount) - start;\n    } else {\n      count = pointCount - start;\n    }\n  }\n\n  return {start, count};\n}\n\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nexport function _scaleRangesChanged(meta) {\n  const {xScale, yScale, _scaleRanges} = meta;\n  const newRanges = {\n    xmin: xScale.min,\n    xmax: xScale.max,\n    ymin: yScale.min,\n    ymax: yScale.max\n  };\n  if (!_scaleRanges) {\n    meta._scaleRanges = newRanges;\n    return true;\n  }\n  const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n\n  Object.assign(_scaleRanges, newRanges);\n  return changed;\n}\n", "import {PI, TAU, HALF_PI} from './helpers.math.js';\n\nconst atEdge = (t: number) => t === 0 || t === 1;\nconst elasticIn = (t: number, s: number, p: number) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t: number, s: number, p: number) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n  linear: (t: number) => t,\n\n  easeInQuad: (t: number) => t * t,\n\n  easeOutQuad: (t: number) => -t * (t - 2),\n\n  easeInOutQuad: (t: number) => ((t /= 0.5) < 1)\n    ? 0.5 * t * t\n    : -0.5 * ((--t) * (t - 2) - 1),\n\n  easeInCubic: (t: number) => t * t * t,\n\n  easeOutCubic: (t: number) => (t -= 1) * t * t + 1,\n\n  easeInOutCubic: (t: number) => ((t /= 0.5) < 1)\n    ? 0.5 * t * t * t\n    : 0.5 * ((t -= 2) * t * t + 2),\n\n  easeInQuart: (t: number) => t * t * t * t,\n\n  easeOutQuart: (t: number) => -((t -= 1) * t * t * t - 1),\n\n  easeInOutQuart: (t: number) => ((t /= 0.5) < 1)\n    ? 0.5 * t * t * t * t\n    : -0.5 * ((t -= 2) * t * t * t - 2),\n\n  easeInQuint: (t: number) => t * t * t * t * t,\n\n  easeOutQuint: (t: number) => (t -= 1) * t * t * t * t + 1,\n\n  easeInOutQuint: (t: number) => ((t /= 0.5) < 1)\n    ? 0.5 * t * t * t * t * t\n    : 0.5 * ((t -= 2) * t * t * t * t + 2),\n\n  easeInSine: (t: number) => -Math.cos(t * HALF_PI) + 1,\n\n  easeOutSine: (t: number) => Math.sin(t * HALF_PI),\n\n  easeInOutSine: (t: number) => -0.5 * (Math.cos(PI * t) - 1),\n\n  easeInExpo: (t: number) => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n\n  easeOutExpo: (t: number) => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n\n  easeInOutExpo: (t: number) => atEdge(t) ? t : t < 0.5\n    ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n    : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n\n  easeInCirc: (t: number) => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n\n  easeOutCirc: (t: number) => Math.sqrt(1 - (t -= 1) * t),\n\n  easeInOutCirc: (t: number) => ((t /= 0.5) < 1)\n    ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n    : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n\n  easeInElastic: (t: number) => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n\n  easeOutElastic: (t: number) => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n\n  easeInOutElastic(t: number) {\n    const s = 0.1125;\n    const p = 0.45;\n    return atEdge(t) ? t :\n      t < 0.5\n        ? 0.5 * elasticIn(t * 2, s, p)\n        : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n  },\n\n  easeInBack(t: number) {\n    const s = 1.70158;\n    return t * t * ((s + 1) * t - s);\n  },\n\n  easeOutBack(t: number) {\n    const s = 1.70158;\n    return (t -= 1) * t * ((s + 1) * t + s) + 1;\n  },\n\n  easeInOutBack(t: number) {\n    let s = 1.70158;\n    if ((t /= 0.5) < 1) {\n      return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n    }\n    return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n  },\n\n  easeInBounce: (t: number) => 1 - effects.easeOutBounce(1 - t),\n\n  easeOutBounce(t: number) {\n    const m = 7.5625;\n    const d = 2.75;\n    if (t < (1 / d)) {\n      return m * t * t;\n    }\n    if (t < (2 / d)) {\n      return m * (t -= (1.5 / d)) * t + 0.75;\n    }\n    if (t < (2.5 / d)) {\n      return m * (t -= (2.25 / d)) * t + 0.9375;\n    }\n    return m * (t -= (2.625 / d)) * t + 0.984375;\n  },\n\n  easeInOutBounce: (t: number) => (t < 0.5)\n    ? effects.easeInBounce(t * 2) * 0.5\n    : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n} as const;\n\nexport type EasingFunction = keyof typeof effects\n\nexport default effects;\n", "import {Color} from '@kurkle/color';\n\nexport function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient {\n  if (value && typeof value === 'object') {\n    const type = value.toString();\n    return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n  }\n\n  return false;\n}\n\nexport function color(value: CanvasGradient): CanvasGradient;\nexport function color(value: CanvasPattern): CanvasPattern;\nexport function color(\n  value:\n  | string\n  | { r: number; g: number; b: number; a: number }\n  | [number, number, number]\n  | [number, number, number, number]\n): Color;\nexport function color(value) {\n  return isPatternOrGradient(value) ? value : new Color(value);\n}\n\nexport function getHoverColor(value: CanvasGradient): CanvasGradient;\nexport function getHoverColor(value: CanvasPattern): CanvasPattern;\nexport function getHoverColor(value: string): string;\nexport function getHoverColor(value) {\n  return isPatternOrGradient(value)\n    ? value\n    : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n", "const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\n\nexport function applyAnimationsDefaults(defaults) {\n  defaults.set('animation', {\n    delay: undefined,\n    duration: 1000,\n    easing: 'easeOutQuart',\n    fn: undefined,\n    from: undefined,\n    loop: undefined,\n    to: undefined,\n    type: undefined,\n  });\n\n  defaults.describe('animation', {\n    _fallback: false,\n    _indexable: false,\n    _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n  });\n\n  defaults.set('animations', {\n    colors: {\n      type: 'color',\n      properties: colors\n    },\n    numbers: {\n      type: 'number',\n      properties: numbers\n    },\n  });\n\n  defaults.describe('animations', {\n    _fallback: 'animation',\n  });\n\n  defaults.set('transitions', {\n    active: {\n      animation: {\n        duration: 400\n      }\n    },\n    resize: {\n      animation: {\n        duration: 0\n      }\n    },\n    show: {\n      animations: {\n        colors: {\n          from: 'transparent'\n        },\n        visible: {\n          type: 'boolean',\n          duration: 0 // show immediately\n        },\n      }\n    },\n    hide: {\n      animations: {\n        colors: {\n          to: 'transparent'\n        },\n        visible: {\n          type: 'boolean',\n          easing: 'linear',\n          fn: v => v | 0 // for keeping the dataset visible all the way through the animation\n        },\n      }\n    }\n  });\n}\n", "export function applyLayoutsDefaults(defaults) {\n  defaults.set('layout', {\n    autoPadding: true,\n    padding: {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    }\n  });\n}\n", "\nconst intlCache = new Map<string, Intl.NumberFormat>();\n\nfunction getNumberFormat(locale: string, options?: Intl.NumberFormatOptions) {\n  options = options || {};\n  const cacheKey = locale + JSON.stringify(options);\n  let formatter = intlCache.get(cacheKey);\n  if (!formatter) {\n    formatter = new Intl.NumberFormat(locale, options);\n    intlCache.set(cacheKey, formatter);\n  }\n  return formatter;\n}\n\nexport function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions) {\n  return getNumberFormat(locale, options).format(num);\n}\n", "import {isArray} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {log10} from '../helpers/helpers.math.js';\n\n/**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\nconst formatters = {\n  /**\n   * Formatter for value labels\n   * @method Chart.Ticks.formatters.values\n   * @param value the value to display\n   * @return {string|string[]} the label to display\n   */\n  values(value) {\n    return isArray(value) ? /** @type {string[]} */ (value) : '' + value;\n  },\n\n  /**\n   * Formatter for numeric ticks\n   * @method Chart.Ticks.formatters.numeric\n   * @param tickValue {number} the value to be formatted\n   * @param index {number} the position of the tickValue parameter in the ticks array\n   * @param ticks {object[]} the list of ticks being converted\n   * @return {string} string representation of the tickValue parameter\n   */\n  numeric(tickValue, index, ticks) {\n    if (tickValue === 0) {\n      return '0'; // never show decimal places for 0\n    }\n\n    const locale = this.chart.options.locale;\n    let notation;\n    let delta = tickValue; // This is used when there are less than 2 ticks as the tick interval.\n\n    if (ticks.length > 1) {\n      // all ticks are small or there huge numbers; use scientific notation\n      const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n      if (maxTick < 1e-4 || maxTick > 1e+15) {\n        notation = 'scientific';\n      }\n\n      delta = calculateDelta(tickValue, ticks);\n    }\n\n    const logDelta = log10(Math.abs(delta));\n\n    // When datasets have values approaching Number.MAX_VALUE, the tick calculations might result in\n    // infinity and eventually NaN. Passing NaN for minimumFractionDigits or maximumFractionDigits\n    // will make the number formatter throw. So instead we check for isNaN and use a fallback value.\n    //\n    // toFixed has a max of 20 decimal places\n    const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n\n    const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n    Object.assign(options, this.options.ticks.format);\n\n    return formatNumber(tickValue, locale, options);\n  },\n\n\n  /**\n   * Formatter for logarithmic ticks\n   * @method Chart.Ticks.formatters.logarithmic\n   * @param tickValue {number} the value to be formatted\n   * @param index {number} the position of the tickValue parameter in the ticks array\n   * @param ticks {object[]} the list of ticks being converted\n   * @return {string} string representation of the tickValue parameter\n   */\n  logarithmic(tickValue, index, ticks) {\n    if (tickValue === 0) {\n      return '0';\n    }\n    const remain = ticks[index].significand || (tickValue / (Math.pow(10, Math.floor(log10(tickValue)))));\n    if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n      return formatters.numeric.call(this, tickValue, index, ticks);\n    }\n    return '';\n  }\n\n};\n\n\nfunction calculateDelta(tickValue, ticks) {\n  // Figure out how many digits to show\n  // The space between the first two ticks might be smaller than normal spacing\n  let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n  // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n  if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n    // not an integer\n    delta = tickValue - Math.floor(tickValue);\n  }\n  return delta;\n}\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nexport default {formatters};\n", "import Ticks from './core.ticks.js';\n\nexport function applyScaleDefaults(defaults) {\n  defaults.set('scale', {\n    display: true,\n    offset: false,\n    reverse: false,\n    beginAtZero: false,\n\n    /**\n     * Scale boundary strategy (bypassed by min/max time options)\n     * - `data`: make sure data are fully visible, ticks outside are removed\n     * - `ticks`: make sure ticks are fully visible, data outside are truncated\n     * @see https://github.com/chartjs/Chart.js/pull/4556\n     * @since 3.0.0\n     */\n    bounds: 'ticks',\n\n    clip: true,\n\n    /**\n     * Addition grace added to max and reduced from min data value.\n     * @since 3.0.0\n     */\n    grace: 0,\n\n    // grid line settings\n    grid: {\n      display: true,\n      lineWidth: 1,\n      drawOnChartArea: true,\n      drawTicks: true,\n      tickLength: 8,\n      tickWidth: (_ctx, options) => options.lineWidth,\n      tickColor: (_ctx, options) => options.color,\n      offset: false,\n    },\n\n    border: {\n      display: true,\n      dash: [],\n      dashOffset: 0.0,\n      width: 1\n    },\n\n    // scale title\n    title: {\n      // display property\n      display: false,\n\n      // actual label\n      text: '',\n\n      // top/bottom padding\n      padding: {\n        top: 4,\n        bottom: 4\n      }\n    },\n\n    // label settings\n    ticks: {\n      minRotation: 0,\n      maxRotation: 50,\n      mirror: false,\n      textStrokeWidth: 0,\n      textStrokeColor: '',\n      padding: 3,\n      display: true,\n      autoSkip: true,\n      autoSkipPadding: 3,\n      labelOffset: 0,\n      // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n      callback: Ticks.formatters.values,\n      minor: {},\n      major: {},\n      align: 'center',\n      crossAlign: 'near',\n\n      showLabelBackdrop: false,\n      backdropColor: 'rgba(255, 255, 255, 0.75)',\n      backdropPadding: 2,\n    }\n  });\n\n  defaults.route('scale.ticks', 'color', '', 'color');\n  defaults.route('scale.grid', 'color', '', 'borderColor');\n  defaults.route('scale.border', 'color', '', 'borderColor');\n  defaults.route('scale.title', 'color', '', 'color');\n\n  defaults.describe('scale', {\n    _fallback: false,\n    _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n    _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash',\n  });\n\n  defaults.describe('scales', {\n    _fallback: 'scale',\n  });\n\n  defaults.describe('scale.ticks', {\n    _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n    _indexable: (name) => name !== 'backdropPadding',\n  });\n}\n", "import {getHoverColor} from '../helpers/helpers.color.js';\nimport {isObject, merge, valueOrDefault} from '../helpers/helpers.core.js';\nimport {applyAnimationsDefaults} from './core.animations.defaults.js';\nimport {applyLayoutsDefaults} from './core.layouts.defaults.js';\nimport {applyScaleDefaults} from './core.scale.defaults.js';\n\nexport const overrides = Object.create(null);\nexport const descriptors = Object.create(null);\n\n/**\n * @param {object} node\n * @param {string} key\n * @return {object}\n */\nfunction getScope(node, key) {\n  if (!key) {\n    return node;\n  }\n  const keys = key.split('.');\n  for (let i = 0, n = keys.length; i < n; ++i) {\n    const k = keys[i];\n    node = node[k] || (node[k] = Object.create(null));\n  }\n  return node;\n}\n\nfunction set(root, scope, values) {\n  if (typeof scope === 'string') {\n    return merge(getScope(root, scope), values);\n  }\n  return merge(getScope(root, ''), scope);\n}\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Defaults {\n  constructor(_descriptors, _appliers) {\n    this.animation = undefined;\n    this.backgroundColor = 'rgba(0,0,0,0.1)';\n    this.borderColor = 'rgba(0,0,0,0.1)';\n    this.color = '#666';\n    this.datasets = {};\n    this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n    this.elements = {};\n    this.events = [\n      'mousemove',\n      'mouseout',\n      'click',\n      'touchstart',\n      'touchmove'\n    ];\n    this.font = {\n      family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n      size: 12,\n      style: 'normal',\n      lineHeight: 1.2,\n      weight: null\n    };\n    this.hover = {};\n    this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n    this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n    this.hoverColor = (ctx, options) => getHoverColor(options.color);\n    this.indexAxis = 'x';\n    this.interaction = {\n      mode: 'nearest',\n      intersect: true,\n      includeInvisible: false\n    };\n    this.maintainAspectRatio = true;\n    this.onHover = null;\n    this.onClick = null;\n    this.parsing = true;\n    this.plugins = {};\n    this.responsive = true;\n    this.scale = undefined;\n    this.scales = {};\n    this.showLine = true;\n    this.drawActiveElementsOnTop = true;\n\n    this.describe(_descriptors);\n    this.apply(_appliers);\n  }\n\n  /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n  set(scope, values) {\n    return set(this, scope, values);\n  }\n\n  /**\n\t * @param {string} scope\n\t */\n  get(scope) {\n    return getScope(this, scope);\n  }\n\n  /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n  describe(scope, values) {\n    return set(descriptors, scope, values);\n  }\n\n  override(scope, values) {\n    return set(overrides, scope, values);\n  }\n\n  /**\n\t * Routes the named defaults to fallback to another scope/name.\n\t * This routing is useful when those target values, like defaults.color, are changed runtime.\n\t * If the values would be copied, the runtime change would not take effect. By routing, the\n\t * fallback is evaluated at each access, so its always up to date.\n\t *\n\t * Example:\n\t *\n\t * \tdefaults.route('elements.arc', 'backgroundColor', '', 'color')\n\t *   - reads the backgroundColor from defaults.color when undefined locally\n\t *\n\t * @param {string} scope Scope this route applies to.\n\t * @param {string} name Property name that should be routed to different namespace when not defined here.\n\t * @param {string} targetScope The namespace where those properties should be routed to.\n\t * Empty string ('') is the root of defaults.\n\t * @param {string} targetName The target name in the target scope the property should be routed to.\n\t */\n  route(scope, name, targetScope, targetName) {\n    const scopeObject = getScope(this, scope);\n    const targetScopeObject = getScope(this, targetScope);\n    const privateName = '_' + name;\n\n    Object.defineProperties(scopeObject, {\n      // A private property is defined to hold the actual value, when this property is set in its scope (set in the setter)\n      [privateName]: {\n        value: scopeObject[name],\n        writable: true\n      },\n      // The actual property is defined as getter/setter so we can do the routing when value is not locally set.\n      [name]: {\n        enumerable: true,\n        get() {\n          const local = this[privateName];\n          const target = targetScopeObject[targetName];\n          if (isObject(local)) {\n            return Object.assign({}, target, local);\n          }\n          return valueOrDefault(local, target);\n        },\n        set(value) {\n          this[privateName] = value;\n        }\n      }\n    });\n  }\n\n  apply(appliers) {\n    appliers.forEach((apply) => apply(this));\n  }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Defaults({\n  _scriptable: (name) => !name.startsWith('on'),\n  _indexable: (name) => name !== 'events',\n  hover: {\n    _fallback: 'interaction'\n  },\n  interaction: {\n    _scriptable: false,\n    _indexable: false,\n  }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n", "import type {\n  Chart,\n  Point,\n  FontSpec,\n  CanvasFontSpec,\n  PointStyle,\n  RenderTextOpts,\n  BackdropOptions\n} from '../types/index.js';\nimport type {\n  TRBL,\n  SplinePoint,\n  RoundedRect,\n  TRBLCorners\n} from '../types/geometric.js';\nimport {isArray, isNullOrUndef} from './helpers.core.js';\nimport {PI, TAU, HALF_PI, QUARTER_PI, TWO_THIRDS_PI, RAD_PER_DEG} from './helpers.math.js';\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nexport function toFontString(font: FontSpec) {\n  if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n    return null;\n  }\n\n  return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @private\n */\nexport function _measureText(\n  ctx: CanvasRenderingContext2D,\n  data: Record<string, number>,\n  gc: string[],\n  longest: number,\n  string: string\n) {\n  let textWidth = data[string];\n  if (!textWidth) {\n    textWidth = data[string] = ctx.measureText(string).width;\n    gc.push(string);\n  }\n  if (textWidth > longest) {\n    longest = textWidth;\n  }\n  return longest;\n}\n\ntype Thing = string | undefined | null\ntype Things = (Thing | Thing[])[]\n\n/**\n * @private\n */\n// eslint-disable-next-line complexity\nexport function _longestText(\n  ctx: CanvasRenderingContext2D,\n  font: string,\n  arrayOfThings: Things,\n  cache?: {data?: Record<string, number>, garbageCollect?: string[], font?: string}\n) {\n  cache = cache || {};\n  let data = cache.data = cache.data || {};\n  let gc = cache.garbageCollect = cache.garbageCollect || [];\n\n  if (cache.font !== font) {\n    data = cache.data = {};\n    gc = cache.garbageCollect = [];\n    cache.font = font;\n  }\n\n  ctx.save();\n\n  ctx.font = font;\n  let longest = 0;\n  const ilen = arrayOfThings.length;\n  let i: number, j: number, jlen: number, thing: Thing | Thing[], nestedThing: Thing | Thing[];\n  for (i = 0; i < ilen; i++) {\n    thing = arrayOfThings[i];\n\n    // Undefined strings and arrays should not be measured\n    if (thing !== undefined && thing !== null && !isArray(thing)) {\n      longest = _measureText(ctx, data, gc, longest, thing);\n    } else if (isArray(thing)) {\n      // if it is an array lets measure each element\n      // to do maybe simplify this function a bit so we can do this more recursively?\n      for (j = 0, jlen = thing.length; j < jlen; j++) {\n        nestedThing = thing[j];\n        // Undefined strings and arrays should not be measured\n        if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n          longest = _measureText(ctx, data, gc, longest, nestedThing);\n        }\n      }\n    }\n  }\n\n  ctx.restore();\n\n  const gcLen = gc.length / 2;\n  if (gcLen > arrayOfThings.length) {\n    for (i = 0; i < gcLen; i++) {\n      delete data[gc[i]];\n    }\n    gc.splice(0, gcLen);\n  }\n  return longest;\n}\n\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */\nexport function _alignPixel(chart: Chart, pixel: number, width: number) {\n  const devicePixelRatio = chart.currentDevicePixelRatio;\n  const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n  return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\n/**\n * Clears the entire canvas.\n */\nexport function clearCanvas(canvas?: HTMLCanvasElement, ctx?: CanvasRenderingContext2D) {\n  if (!ctx && !canvas) {\n    return;\n  }\n\n  ctx = ctx || canvas.getContext('2d');\n\n  ctx.save();\n  // canvas.width and canvas.height do not consider the canvas transform,\n  // while clearRect does\n  ctx.resetTransform();\n  ctx.clearRect(0, 0, canvas.width, canvas.height);\n  ctx.restore();\n}\n\nexport interface DrawPointOptions {\n  pointStyle: PointStyle;\n  rotation?: number;\n  radius: number;\n  borderWidth: number;\n}\n\nexport function drawPoint(\n  ctx: CanvasRenderingContext2D,\n  options: DrawPointOptions,\n  x: number,\n  y: number\n) {\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  drawPointLegend(ctx, options, x, y, null);\n}\n\n// eslint-disable-next-line complexity\nexport function drawPointLegend(\n  ctx: CanvasRenderingContext2D,\n  options: DrawPointOptions,\n  x: number,\n  y: number,\n  w: number\n) {\n  let type: string, xOffset: number, yOffset: number, size: number, cornerRadius: number, width: number, xOffsetW: number, yOffsetW: number;\n  const style = options.pointStyle;\n  const rotation = options.rotation;\n  const radius = options.radius;\n  let rad = (rotation || 0) * RAD_PER_DEG;\n\n  if (style && typeof style === 'object') {\n    type = style.toString();\n    if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n      ctx.save();\n      ctx.translate(x, y);\n      ctx.rotate(rad);\n      ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n      ctx.restore();\n      return;\n    }\n  }\n\n  if (isNaN(radius) || radius <= 0) {\n    return;\n  }\n\n  ctx.beginPath();\n\n  switch (style) {\n  // Default includes circle\n    default:\n      if (w) {\n        ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n      } else {\n        ctx.arc(x, y, radius, 0, TAU);\n      }\n      ctx.closePath();\n      break;\n    case 'triangle':\n      width = w ? w / 2 : radius;\n      ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n      rad += TWO_THIRDS_PI;\n      ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n      rad += TWO_THIRDS_PI;\n      ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n      ctx.closePath();\n      break;\n    case 'rectRounded':\n    // NOTE: the rounded rect implementation changed to use `arc` instead of\n    // `quadraticCurveTo` since it generates better results when rect is\n    // almost a circle. 0.516 (instead of 0.5) produces results with visually\n    // closer proportion to the previous impl and it is inscribed in the\n    // circle with `radius`. For more details, see the following PRs:\n    // https://github.com/chartjs/Chart.js/issues/5597\n    // https://github.com/chartjs/Chart.js/issues/5858\n      cornerRadius = radius * 0.516;\n      size = radius - cornerRadius;\n      xOffset = Math.cos(rad + QUARTER_PI) * size;\n      xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n      yOffset = Math.sin(rad + QUARTER_PI) * size;\n      yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n      ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n      ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n      ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n      ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n      ctx.closePath();\n      break;\n    case 'rect':\n      if (!rotation) {\n        size = Math.SQRT1_2 * radius;\n        width = w ? w / 2 : size;\n        ctx.rect(x - width, y - size, 2 * width, 2 * size);\n        break;\n      }\n      rad += QUARTER_PI;\n    /* falls through */\n    case 'rectRot':\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      ctx.closePath();\n      break;\n    case 'crossRot':\n      rad += QUARTER_PI;\n    /* falls through */\n    case 'cross':\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.moveTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      break;\n    case 'star':\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.moveTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      rad += QUARTER_PI;\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.moveTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      break;\n    case 'line':\n      xOffset = w ? w / 2 : Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      ctx.moveTo(x - xOffset, y - yOffset);\n      ctx.lineTo(x + xOffset, y + yOffset);\n      break;\n    case 'dash':\n      ctx.moveTo(x, y);\n      ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n      break;\n    case false:\n      ctx.closePath();\n      break;\n  }\n\n  ctx.fill();\n  if (options.borderWidth > 0) {\n    ctx.stroke();\n  }\n}\n\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */\nexport function _isPointInArea(\n  point: Point,\n  area: TRBL,\n  margin?: number\n) {\n  margin = margin || 0.5; // margin - default is to match rounded decimals\n\n  return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\n\nexport function clipArea(ctx: CanvasRenderingContext2D, area: TRBL) {\n  ctx.save();\n  ctx.beginPath();\n  ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n  ctx.clip();\n}\n\nexport function unclipArea(ctx: CanvasRenderingContext2D) {\n  ctx.restore();\n}\n\n/**\n * @private\n */\nexport function _steppedLineTo(\n  ctx: CanvasRenderingContext2D,\n  previous: Point,\n  target: Point,\n  flip?: boolean,\n  mode?: string\n) {\n  if (!previous) {\n    return ctx.lineTo(target.x, target.y);\n  }\n  if (mode === 'middle') {\n    const midpoint = (previous.x + target.x) / 2.0;\n    ctx.lineTo(midpoint, previous.y);\n    ctx.lineTo(midpoint, target.y);\n  } else if (mode === 'after' !== !!flip) {\n    ctx.lineTo(previous.x, target.y);\n  } else {\n    ctx.lineTo(target.x, previous.y);\n  }\n  ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @private\n */\nexport function _bezierCurveTo(\n  ctx: CanvasRenderingContext2D,\n  previous: SplinePoint,\n  target: SplinePoint,\n  flip?: boolean\n) {\n  if (!previous) {\n    return ctx.lineTo(target.x, target.y);\n  }\n  ctx.bezierCurveTo(\n    flip ? previous.cp1x : previous.cp2x,\n    flip ? previous.cp1y : previous.cp2y,\n    flip ? target.cp2x : target.cp1x,\n    flip ? target.cp2y : target.cp1y,\n    target.x,\n    target.y);\n}\n\nfunction setRenderOpts(ctx: CanvasRenderingContext2D, opts: RenderTextOpts) {\n  if (opts.translation) {\n    ctx.translate(opts.translation[0], opts.translation[1]);\n  }\n\n  if (!isNullOrUndef(opts.rotation)) {\n    ctx.rotate(opts.rotation);\n  }\n\n  if (opts.color) {\n    ctx.fillStyle = opts.color;\n  }\n\n  if (opts.textAlign) {\n    ctx.textAlign = opts.textAlign;\n  }\n\n  if (opts.textBaseline) {\n    ctx.textBaseline = opts.textBaseline;\n  }\n}\n\nfunction decorateText(\n  ctx: CanvasRenderingContext2D,\n  x: number,\n  y: number,\n  line: string,\n  opts: RenderTextOpts\n) {\n  if (opts.strikethrough || opts.underline) {\n    /**\n     * Now that IE11 support has been dropped, we can use more\n     * of the TextMetrics object. The actual bounding boxes\n     * are unflagged in Chrome, Firefox, Edge, and Safari so they\n     * can be safely used.\n     * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n     */\n    const metrics = ctx.measureText(line);\n    const left = x - metrics.actualBoundingBoxLeft;\n    const right = x + metrics.actualBoundingBoxRight;\n    const top = y - metrics.actualBoundingBoxAscent;\n    const bottom = y + metrics.actualBoundingBoxDescent;\n    const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n\n    ctx.strokeStyle = ctx.fillStyle;\n    ctx.beginPath();\n    ctx.lineWidth = opts.decorationWidth || 2;\n    ctx.moveTo(left, yDecoration);\n    ctx.lineTo(right, yDecoration);\n    ctx.stroke();\n  }\n}\n\nfunction drawBackdrop(ctx: CanvasRenderingContext2D, opts: BackdropOptions) {\n  const oldColor = ctx.fillStyle;\n\n  ctx.fillStyle = opts.color as string;\n  ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n  ctx.fillStyle = oldColor;\n}\n\n/**\n * Render text onto the canvas\n */\nexport function renderText(\n  ctx: CanvasRenderingContext2D,\n  text: string | string[],\n  x: number,\n  y: number,\n  font: CanvasFontSpec,\n  opts: RenderTextOpts = {}\n) {\n  const lines = isArray(text) ? text : [text];\n  const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n  let i: number, line: string;\n\n  ctx.save();\n  ctx.font = font.string;\n  setRenderOpts(ctx, opts);\n\n  for (i = 0; i < lines.length; ++i) {\n    line = lines[i];\n\n    if (opts.backdrop) {\n      drawBackdrop(ctx, opts.backdrop);\n    }\n\n    if (stroke) {\n      if (opts.strokeColor) {\n        ctx.strokeStyle = opts.strokeColor;\n      }\n\n      if (!isNullOrUndef(opts.strokeWidth)) {\n        ctx.lineWidth = opts.strokeWidth;\n      }\n\n      ctx.strokeText(line, x, y, opts.maxWidth);\n    }\n\n    ctx.fillText(line, x, y, opts.maxWidth);\n    decorateText(ctx, x, y, line, opts);\n\n    y += Number(font.lineHeight);\n  }\n\n  ctx.restore();\n}\n\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */\nexport function addRoundedRectPath(\n  ctx: CanvasRenderingContext2D,\n  rect: RoundedRect & { radius: TRBLCorners }\n) {\n  const {x, y, w, h, radius} = rect;\n\n  // top left arc\n  ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n\n  // line from top left to bottom left\n  ctx.lineTo(x, y + h - radius.bottomLeft);\n\n  // bottom left arc\n  ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n\n  // line from bottom left to bottom right\n  ctx.lineTo(x + w - radius.bottomRight, y + h);\n\n  // bottom right arc\n  ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n\n  // line from bottom right to top right\n  ctx.lineTo(x + w, y + radius.topRight);\n\n  // top right arc\n  ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n\n  // line from top right to top left\n  ctx.lineTo(x + radius.topLeft, y);\n}\n", "import defaults from '../core/core.defaults.js';\nimport {isArray, isObject, toDimension, valueOrDefault} from './helpers.core.js';\nimport {toFontString} from './helpers.canvas.js';\nimport type {ChartArea, FontSpec, Point} from '../types/index.js';\nimport type {TRBL, TRBLCorners} from '../types/geometric.js';\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\n/**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nexport function toLineHeight(value: number | string, size: number): number {\n  const matches = ('' + value).match(LINE_HEIGHT);\n  if (!matches || matches[1] === 'normal') {\n    return size * 1.2;\n  }\n\n  value = +matches[2];\n\n  switch (matches[3]) {\n    case 'px':\n      return value;\n    case '%':\n      value /= 100;\n      break;\n    default:\n      break;\n  }\n\n  return size * value;\n}\n\nconst numberOrZero = (v: unknown) => +v || 0;\n\n/**\n * @param value\n * @param props\n */\nexport function _readValueToProps<K extends string>(value: number | Record<K, number>, props: K[]): Record<K, number>;\nexport function _readValueToProps<K extends string, T extends string>(value: number | Record<K & T, number>, props: Record<T, K>): Record<T, number>;\nexport function _readValueToProps(value: number | Record<string, number>, props: string[] | Record<string, string>) {\n  const ret = {};\n  const objProps = isObject(props);\n  const keys = objProps ? Object.keys(props) : props;\n  const read = isObject(value)\n    ? objProps\n      ? prop => valueOrDefault(value[prop], value[props[prop]])\n      : prop => value[prop]\n    : () => value;\n\n  for (const prop of keys) {\n    ret[prop] = numberOrZero(read(prop));\n  }\n  return ret;\n}\n\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n *  x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nexport function toTRBL(value: number | TRBL | Point) {\n  return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\n\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nexport function toTRBLCorners(value: number | TRBLCorners) {\n  return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n *  x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nexport function toPadding(value?: number | TRBL): ChartArea {\n  const obj = toTRBL(value) as ChartArea;\n\n  obj.width = obj.left + obj.right;\n  obj.height = obj.top + obj.bottom;\n\n  return obj;\n}\n\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\n\nexport function toFont(options: Partial<FontSpec>, fallback?: Partial<FontSpec>) {\n  options = options || {};\n  fallback = fallback || defaults.font as FontSpec;\n\n  let size = valueOrDefault(options.size, fallback.size);\n\n  if (typeof size === 'string') {\n    size = parseInt(size, 10);\n  }\n  let style = valueOrDefault(options.style, fallback.style);\n  if (style && !('' + style).match(FONT_STYLE)) {\n    console.warn('Invalid font style specified: \"' + style + '\"');\n    style = undefined;\n  }\n\n  const font = {\n    family: valueOrDefault(options.family, fallback.family),\n    lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n    size,\n    style,\n    weight: valueOrDefault(options.weight, fallback.weight),\n    string: ''\n  };\n\n  font.string = toFontString(font);\n  return font;\n}\n\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nexport function resolve(inputs: Array<unknown>, context?: object, index?: number, info?: { cacheable: boolean }) {\n  let cacheable = true;\n  let i: number, ilen: number, value: unknown;\n\n  for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n    value = inputs[i];\n    if (value === undefined) {\n      continue;\n    }\n    if (context !== undefined && typeof value === 'function') {\n      value = value(context);\n      cacheable = false;\n    }\n    if (index !== undefined && isArray(value)) {\n      value = value[index % value.length];\n      cacheable = false;\n    }\n    if (value !== undefined) {\n      if (info && !cacheable) {\n        info.cacheable = false;\n      }\n      return value;\n    }\n  }\n}\n\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nexport function _addGrace(minmax: { min: number; max: number; }, grace: number | string, beginAtZero: boolean) {\n  const {min, max} = minmax;\n  const change = toDimension(grace, (max - min) / 2);\n  const keepZero = (value: number, add: number) => beginAtZero && value === 0 ? 0 : value + add;\n  return {\n    min: keepZero(min, -Math.abs(change)),\n    max: keepZero(max, change)\n  };\n}\n\n/**\n * Create a context inheriting parentContext\n * @param parentContext\n * @param context\n * @returns\n */\nexport function createContext<T extends object>(parentContext: null, context: T): T;\nexport function createContext<T extends object, P extends T>(parentContext: P, context: T): P & T;\nexport function createContext(parentContext: object, context: object) {\n  return Object.assign(Object.create(parentContext), context);\n}\n", "/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartMeta} from '../types/index.js';\nimport type {\n  ResolverObjectKey,\n  ResolverCache,\n  ResolverProxy,\n  DescriptorDefaults,\n  Descriptor,\n  ContextCache,\n  ContextProxy\n} from './helpers.config.types.js';\nimport {isArray, isFunction, isObject, resolveObjectKey, _capitalize} from './helpers.core.js';\n\nexport * from './helpers.config.types.js';\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nexport function _createResolver<\n  T extends AnyObject[] = AnyObject[],\n  R extends AnyObject[] = T\n>(\n  scopes: T,\n  prefixes = [''],\n  rootScopes?: R,\n  fallback?: ResolverObjectKey,\n  getTarget = () => scopes[0]\n) {\n  const finalRootScopes = rootScopes || scopes;\n  if (typeof fallback === 'undefined') {\n    fallback = _resolve('_fallback', scopes);\n  }\n  const cache: ResolverCache<T, R> = {\n    [Symbol.toStringTag]: 'Object',\n    _cacheable: true,\n    _scopes: scopes,\n    _rootScopes: finalRootScopes,\n    _fallback: fallback,\n    _getTarget: getTarget,\n    override: (scope: AnyObject) => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback),\n  };\n  return new Proxy(cache, {\n    /**\n     * A trap for the delete operator.\n     */\n    deleteProperty(target, prop: string) {\n      delete target[prop]; // remove from cache\n      delete target._keys; // remove cached keys\n      delete scopes[0][prop]; // remove from top level scope\n      return true;\n    },\n\n    /**\n     * A trap for getting property values.\n     */\n    get(target, prop: string) {\n      return _cached(target, prop,\n        () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n    },\n\n    /**\n     * A trap for Object.getOwnPropertyDescriptor.\n     * Also used by Object.hasOwnProperty.\n     */\n    getOwnPropertyDescriptor(target, prop) {\n      return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n    },\n\n    /**\n     * A trap for Object.getPrototypeOf.\n     */\n    getPrototypeOf() {\n      return Reflect.getPrototypeOf(scopes[0]);\n    },\n\n    /**\n     * A trap for the in operator.\n     */\n    has(target, prop: string) {\n      return getKeysFromAllScopes(target).includes(prop);\n    },\n\n    /**\n     * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n     */\n    ownKeys(target) {\n      return getKeysFromAllScopes(target);\n    },\n\n    /**\n     * A trap for setting property values.\n     */\n    set(target, prop: string, value) {\n      const storage = target._storage || (target._storage = getTarget());\n      target[prop] = storage[prop] = value; // set to top level scope + cache\n      delete target._keys; // remove cached keys\n      return true;\n    }\n  }) as ResolverProxy<T, R>;\n}\n\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */\nexport function _attachContext<\n  T extends AnyObject[] = AnyObject[],\n  R extends AnyObject[] = T\n>(\n  proxy: ResolverProxy<T, R>,\n  context: AnyObject,\n  subProxy?: ResolverProxy<T, R>,\n  descriptorDefaults?: DescriptorDefaults\n) {\n  const cache: ContextCache<T, R> = {\n    _cacheable: false,\n    _proxy: proxy,\n    _context: context,\n    _subProxy: subProxy,\n    _stack: new Set(),\n    _descriptors: _descriptors(proxy, descriptorDefaults),\n    setContext: (ctx: AnyObject) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n    override: (scope: AnyObject) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n  };\n  return new Proxy(cache, {\n    /**\n     * A trap for the delete operator.\n     */\n    deleteProperty(target, prop) {\n      delete target[prop]; // remove from cache\n      delete proxy[prop]; // remove from proxy\n      return true;\n    },\n\n    /**\n     * A trap for getting property values.\n     */\n    get(target, prop: string, receiver) {\n      return _cached(target, prop,\n        () => _resolveWithContext(target, prop, receiver));\n    },\n\n    /**\n     * A trap for Object.getOwnPropertyDescriptor.\n     * Also used by Object.hasOwnProperty.\n     */\n    getOwnPropertyDescriptor(target, prop) {\n      return target._descriptors.allKeys\n        ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n        : Reflect.getOwnPropertyDescriptor(proxy, prop);\n    },\n\n    /**\n     * A trap for Object.getPrototypeOf.\n     */\n    getPrototypeOf() {\n      return Reflect.getPrototypeOf(proxy);\n    },\n\n    /**\n     * A trap for the in operator.\n     */\n    has(target, prop) {\n      return Reflect.has(proxy, prop);\n    },\n\n    /**\n     * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n     */\n    ownKeys() {\n      return Reflect.ownKeys(proxy);\n    },\n\n    /**\n     * A trap for setting property values.\n     */\n    set(target, prop, value) {\n      proxy[prop] = value; // set to proxy\n      delete target[prop]; // remove from cache\n      return true;\n    }\n  }) as ContextProxy<T, R>;\n}\n\n/**\n * @private\n */\nexport function _descriptors(\n  proxy: ResolverCache,\n  defaults: DescriptorDefaults = {scriptable: true, indexable: true}\n): Descriptor {\n  const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n  return {\n    allKeys: _allKeys,\n    scriptable: _scriptable,\n    indexable: _indexable,\n    isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n    isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n  };\n}\n\nconst readKey = (prefix: string, name: string) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop: string, value: unknown) => isObject(value) && prop !== 'adapters' &&\n  (Object.getPrototypeOf(value) === null || value.constructor === Object);\n\nfunction _cached(\n  target: AnyObject,\n  prop: string,\n  resolve: () => unknown\n) {\n  if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n    return target[prop];\n  }\n\n  const value = resolve();\n  // cache the resolved value\n  target[prop] = value;\n  return value;\n}\n\nfunction _resolveWithContext(\n  target: ContextCache,\n  prop: string,\n  receiver: AnyObject\n) {\n  const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n  let value = _proxy[prop]; // resolve from proxy\n\n  // resolve with context\n  if (isFunction(value) && descriptors.isScriptable(prop)) {\n    value = _resolveScriptable(prop, value, target, receiver);\n  }\n  if (isArray(value) && value.length) {\n    value = _resolveArray(prop, value, target, descriptors.isIndexable);\n  }\n  if (needsSubResolver(prop, value)) {\n    // if the resolved value is an object, create a sub resolver for it\n    value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n  }\n  return value;\n}\n\nfunction _resolveScriptable(\n  prop: string,\n  getValue: (ctx: AnyObject, sub: AnyObject) => unknown,\n  target: ContextCache,\n  receiver: AnyObject\n) {\n  const {_proxy, _context, _subProxy, _stack} = target;\n  if (_stack.has(prop)) {\n    throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n  }\n  _stack.add(prop);\n  let value = getValue(_context, _subProxy || receiver);\n  _stack.delete(prop);\n  if (needsSubResolver(prop, value)) {\n    // When scriptable option returns an object, create a resolver on that.\n    value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n  }\n  return value;\n}\n\nfunction _resolveArray(\n  prop: string,\n  value: unknown[],\n  target: ContextCache,\n  isIndexable: (key: string) => boolean\n) {\n  const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n\n  if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n    return value[_context.index % value.length];\n  } else if (isObject(value[0])) {\n    // Array of objects, return array or resolvers\n    const arr = value;\n    const scopes = _proxy._scopes.filter(s => s !== arr);\n    value = [];\n    for (const item of arr) {\n      const resolver = createSubResolver(scopes, _proxy, prop, item);\n      value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n    }\n  }\n  return value;\n}\n\nfunction resolveFallback(\n  fallback: ResolverObjectKey | ((prop: ResolverObjectKey, value: unknown) => ResolverObjectKey),\n  prop: ResolverObjectKey,\n  value: unknown\n) {\n  return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nconst getScope = (key: ResolverObjectKey, parent: AnyObject) => key === true ? parent\n  : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n\nfunction addScopes(\n  set: Set<AnyObject>,\n  parentScopes: AnyObject[],\n  key: ResolverObjectKey,\n  parentFallback: ResolverObjectKey,\n  value: unknown\n) {\n  for (const parent of parentScopes) {\n    const scope = getScope(key, parent);\n    if (scope) {\n      set.add(scope);\n      const fallback = resolveFallback(scope._fallback, key, value);\n      if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n        // When we reach the descriptor that defines a new _fallback, return that.\n        // The fallback will resume to that new scope.\n        return fallback;\n      }\n    } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n      // Fallback to `false` results to `false`, when falling back to different key.\n      // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n      return null;\n    }\n  }\n  return false;\n}\n\nfunction createSubResolver(\n  parentScopes: AnyObject[],\n  resolver: ResolverCache,\n  prop: ResolverObjectKey,\n  value: unknown\n) {\n  const rootScopes = resolver._rootScopes;\n  const fallback = resolveFallback(resolver._fallback, prop, value);\n  const allScopes = [...parentScopes, ...rootScopes];\n  const set = new Set<AnyObject>();\n  set.add(value);\n  let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n  if (key === null) {\n    return false;\n  }\n  if (typeof fallback !== 'undefined' && fallback !== prop) {\n    key = addScopesFromKey(set, allScopes, fallback, key, value);\n    if (key === null) {\n      return false;\n    }\n  }\n  return _createResolver(Array.from(set), [''], rootScopes, fallback,\n    () => subGetTarget(resolver, prop as string, value));\n}\n\nfunction addScopesFromKey(\n  set: Set<AnyObject>,\n  allScopes: AnyObject[],\n  key: ResolverObjectKey,\n  fallback: ResolverObjectKey,\n  item: unknown\n) {\n  while (key) {\n    key = addScopes(set, allScopes, key, fallback, item);\n  }\n  return key;\n}\n\nfunction subGetTarget(\n  resolver: ResolverCache,\n  prop: string,\n  value: unknown\n) {\n  const parent = resolver._getTarget();\n  if (!(prop in parent)) {\n    parent[prop] = {};\n  }\n  const target = parent[prop];\n  if (isArray(target) && isObject(value)) {\n    // For array of objects, the object is used to store updated values\n    return value;\n  }\n  return target || {};\n}\n\nfunction _resolveWithPrefixes(\n  prop: string,\n  prefixes: string[],\n  scopes: AnyObject[],\n  proxy: ResolverProxy\n) {\n  let value: unknown;\n  for (const prefix of prefixes) {\n    value = _resolve(readKey(prefix, prop), scopes);\n    if (typeof value !== 'undefined') {\n      return needsSubResolver(prop, value)\n        ? createSubResolver(scopes, proxy, prop, value)\n        : value;\n    }\n  }\n}\n\nfunction _resolve(key: string, scopes: AnyObject[]) {\n  for (const scope of scopes) {\n    if (!scope) {\n      continue;\n    }\n    const value = scope[key];\n    if (typeof value !== 'undefined') {\n      return value;\n    }\n  }\n}\n\nfunction getKeysFromAllScopes(target: ResolverCache) {\n  let keys = target._keys;\n  if (!keys) {\n    keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n  }\n  return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes: AnyObject[]) {\n  const set = new Set<string>();\n  for (const scope of scopes) {\n    for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n      set.add(key);\n    }\n  }\n  return Array.from(set);\n}\n\nexport function _parseObjectDataRadialScale(\n  meta: ChartMeta<'line' | 'scatter'>,\n  data: AnyObject[],\n  start: number,\n  count: number\n) {\n  const {iScale} = meta;\n  const {key = 'r'} = this._parsing;\n  const parsed = new Array<{r: unknown}>(count);\n  let i: number, ilen: number, index: number, item: AnyObject;\n\n  for (i = 0, ilen = count; i < ilen; ++i) {\n    index = i + start;\n    item = data[index];\n    parsed[i] = {\n      r: iScale.parse(resolveObjectKey(item, key), index)\n    };\n  }\n  return parsed;\n}\n", "import {almostEquals, distanceBetweenPoints, sign} from './helpers.math.js';\nimport {_isPointInArea} from './helpers.canvas.js';\nimport type {ChartArea} from '../types/index.js';\nimport type {SplinePoint} from '../types/geometric.js';\n\nconst EPSILON = Number.EPSILON || 1e-14;\n\ntype OptionalSplinePoint = SplinePoint | false\nconst getPoint = (points: SplinePoint[], i: number): OptionalSplinePoint => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis: 'x' | 'y') => indexAxis === 'x' ? 'y' : 'x';\n\nexport function splineCurve(\n  firstPoint: SplinePoint,\n  middlePoint: SplinePoint,\n  afterPoint: SplinePoint,\n  t: number\n): {\n    previous: SplinePoint\n    next: SplinePoint\n  } {\n  // Props to Rob Spencer at scaled innovation for his post on splining between points\n  // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n  // This function must also respect \"skipped\" points\n\n  const previous = firstPoint.skip ? middlePoint : firstPoint;\n  const current = middlePoint;\n  const next = afterPoint.skip ? middlePoint : afterPoint;\n  const d01 = distanceBetweenPoints(current, previous);\n  const d12 = distanceBetweenPoints(next, current);\n\n  let s01 = d01 / (d01 + d12);\n  let s12 = d12 / (d01 + d12);\n\n  // If all points are the same, s01 & s02 will be inf\n  s01 = isNaN(s01) ? 0 : s01;\n  s12 = isNaN(s12) ? 0 : s12;\n\n  const fa = t * s01; // scaling factor for triangle Ta\n  const fb = t * s12;\n\n  return {\n    previous: {\n      x: current.x - fa * (next.x - previous.x),\n      y: current.y - fa * (next.y - previous.y)\n    },\n    next: {\n      x: current.x + fb * (next.x - previous.x),\n      y: current.y + fb * (next.y - previous.y)\n    }\n  };\n}\n\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points: SplinePoint[], deltaK: number[], mK: number[]) {\n  const pointsLen = points.length;\n\n  let alphaK: number, betaK: number, tauK: number, squaredMagnitude: number, pointCurrent: OptionalSplinePoint;\n  let pointAfter = getPoint(points, 0);\n  for (let i = 0; i < pointsLen - 1; ++i) {\n    pointCurrent = pointAfter;\n    pointAfter = getPoint(points, i + 1);\n    if (!pointCurrent || !pointAfter) {\n      continue;\n    }\n\n    if (almostEquals(deltaK[i], 0, EPSILON)) {\n      mK[i] = mK[i + 1] = 0;\n      continue;\n    }\n\n    alphaK = mK[i] / deltaK[i];\n    betaK = mK[i + 1] / deltaK[i];\n    squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n    if (squaredMagnitude <= 9) {\n      continue;\n    }\n\n    tauK = 3 / Math.sqrt(squaredMagnitude);\n    mK[i] = alphaK * tauK * deltaK[i];\n    mK[i + 1] = betaK * tauK * deltaK[i];\n  }\n}\n\nfunction monotoneCompute(points: SplinePoint[], mK: number[], indexAxis: 'x' | 'y' = 'x') {\n  const valueAxis = getValueAxis(indexAxis);\n  const pointsLen = points.length;\n  let delta: number, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n  let pointAfter = getPoint(points, 0);\n\n  for (let i = 0; i < pointsLen; ++i) {\n    pointBefore = pointCurrent;\n    pointCurrent = pointAfter;\n    pointAfter = getPoint(points, i + 1);\n    if (!pointCurrent) {\n      continue;\n    }\n\n    const iPixel = pointCurrent[indexAxis];\n    const vPixel = pointCurrent[valueAxis];\n    if (pointBefore) {\n      delta = (iPixel - pointBefore[indexAxis]) / 3;\n      pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n      pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n    }\n    if (pointAfter) {\n      delta = (pointAfter[indexAxis] - iPixel) / 3;\n      pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n      pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n    }\n  }\n}\n\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nexport function splineCurveMonotone(points: SplinePoint[], indexAxis: 'x' | 'y' = 'x') {\n  const valueAxis = getValueAxis(indexAxis);\n  const pointsLen = points.length;\n  const deltaK: number[] = Array(pointsLen).fill(0);\n  const mK: number[] = Array(pointsLen);\n\n  // Calculate slopes (deltaK) and initialize tangents (mK)\n  let i, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n  let pointAfter = getPoint(points, 0);\n\n  for (i = 0; i < pointsLen; ++i) {\n    pointBefore = pointCurrent;\n    pointCurrent = pointAfter;\n    pointAfter = getPoint(points, i + 1);\n    if (!pointCurrent) {\n      continue;\n    }\n\n    if (pointAfter) {\n      const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n\n      // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n      deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n    }\n    mK[i] = !pointBefore ? deltaK[i]\n      : !pointAfter ? deltaK[i - 1]\n        : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n          : (deltaK[i - 1] + deltaK[i]) / 2;\n  }\n\n  monotoneAdjust(points, deltaK, mK);\n\n  monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt: number, min: number, max: number) {\n  return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points: SplinePoint[], area: ChartArea) {\n  let i, ilen, point, inArea, inAreaPrev;\n  let inAreaNext = _isPointInArea(points[0], area);\n  for (i = 0, ilen = points.length; i < ilen; ++i) {\n    inAreaPrev = inArea;\n    inArea = inAreaNext;\n    inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n    if (!inArea) {\n      continue;\n    }\n    point = points[i];\n    if (inAreaPrev) {\n      point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n      point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n    }\n    if (inAreaNext) {\n      point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n      point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n    }\n  }\n}\n\n/**\n * @private\n */\nexport function _updateBezierControlPoints(\n  points: SplinePoint[],\n  options,\n  area: ChartArea,\n  loop: boolean,\n  indexAxis: 'x' | 'y'\n) {\n  let i: number, ilen: number, point: SplinePoint, controlPoints: ReturnType<typeof splineCurve>;\n\n  // Only consider points that are drawn in case the spanGaps option is used\n  if (options.spanGaps) {\n    points = points.filter((pt) => !pt.skip);\n  }\n\n  if (options.cubicInterpolationMode === 'monotone') {\n    splineCurveMonotone(points, indexAxis);\n  } else {\n    let prev = loop ? points[points.length - 1] : points[0];\n    for (i = 0, ilen = points.length; i < ilen; ++i) {\n      point = points[i];\n      controlPoints = splineCurve(\n        prev,\n        point,\n        points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n        options.tension\n      );\n      point.cp1x = controlPoints.previous.x;\n      point.cp1y = controlPoints.previous.y;\n      point.cp2x = controlPoints.next.x;\n      point.cp2y = controlPoints.next.y;\n      prev = point;\n    }\n  }\n\n  if (options.capBezierPoints) {\n    capBezierPoints(points, area);\n  }\n}\n", "import type {ChartArea, Scale} from '../types/index.js';\nimport type PrivateChart from '../core/core.controller.js';\nimport type {Chart, ChartEvent} from '../types.js';\nimport {INFINITY} from './helpers.math.js';\n\n/**\n * @private\n */\nexport function _isDomSupported(): boolean {\n  return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * @private\n */\nexport function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement {\n  let parent = domNode.parentNode;\n  if (parent && parent.toString() === '[object ShadowRoot]') {\n    parent = (parent as ShadowRoot).host;\n  }\n  return parent as HTMLCanvasElement;\n}\n\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\n\nfunction parseMaxStyle(styleValue: string | number, node: HTMLElement, parentProperty: string) {\n  let valueInPixels: number;\n  if (typeof styleValue === 'string') {\n    valueInPixels = parseInt(styleValue, 10);\n\n    if (styleValue.indexOf('%') !== -1) {\n      // percentage * size in dimension\n      valueInPixels = (valueInPixels / 100) * node.parentNode[parentProperty];\n    }\n  } else {\n    valueInPixels = styleValue;\n  }\n\n  return valueInPixels;\n}\n\nconst getComputedStyle = (element: HTMLElement): CSSStyleDeclaration =>\n  element.ownerDocument.defaultView.getComputedStyle(element, null);\n\nexport function getStyle(el: HTMLElement, property: string): string {\n  return getComputedStyle(el).getPropertyValue(property);\n}\n\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles: CSSStyleDeclaration, style: string, suffix?: string): ChartArea {\n  const result = {} as ChartArea;\n  suffix = suffix ? '-' + suffix : '';\n  for (let i = 0; i < 4; i++) {\n    const pos = positions[i];\n    result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n  }\n  result.width = result.left + result.right;\n  result.height = result.top + result.bottom;\n  return result;\n}\n\nconst useOffsetPos = (x: number, y: number, target: HTMLElement | EventTarget) =>\n  (x > 0 || y > 0) && (!target || !(target as HTMLElement).shadowRoot);\n\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(\n  e: Event | TouchEvent | MouseEvent,\n  canvas: HTMLCanvasElement\n): {\n    x: number;\n    y: number;\n    box: boolean;\n  } {\n  const touches = (e as TouchEvent).touches;\n  const source = (touches && touches.length ? touches[0] : e) as MouseEvent;\n  const {offsetX, offsetY} = source as MouseEvent;\n  let box = false;\n  let x, y;\n  if (useOffsetPos(offsetX, offsetY, e.target)) {\n    x = offsetX;\n    y = offsetY;\n  } else {\n    const rect = canvas.getBoundingClientRect();\n    x = source.clientX - rect.left;\n    y = source.clientY - rect.top;\n    box = true;\n  }\n  return {x, y, box};\n}\n\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\n\nexport function getRelativePosition(\n  event: Event | ChartEvent | TouchEvent | MouseEvent,\n  chart: Chart | PrivateChart\n): { x: number; y: number } {\n  if ('native' in event) {\n    return event;\n  }\n\n  const {canvas, currentDevicePixelRatio} = chart;\n  const style = getComputedStyle(canvas);\n  const borderBox = style.boxSizing === 'border-box';\n  const paddings = getPositionedStyle(style, 'padding');\n  const borders = getPositionedStyle(style, 'border', 'width');\n  const {x, y, box} = getCanvasPosition(event, canvas);\n  const xOffset = paddings.left + (box && borders.left);\n  const yOffset = paddings.top + (box && borders.top);\n\n  let {width, height} = chart;\n  if (borderBox) {\n    width -= paddings.width + borders.width;\n    height -= paddings.height + borders.height;\n  }\n  return {\n    x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n    y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n  };\n}\n\nfunction getContainerSize(canvas: HTMLCanvasElement, width: number, height: number): Partial<Scale> {\n  let maxWidth: number, maxHeight: number;\n\n  if (width === undefined || height === undefined) {\n    const container = canvas && _getParentNode(canvas);\n    if (!container) {\n      width = canvas.clientWidth;\n      height = canvas.clientHeight;\n    } else {\n      const rect = container.getBoundingClientRect(); // this is the border box of the container\n      const containerStyle = getComputedStyle(container);\n      const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n      const containerPadding = getPositionedStyle(containerStyle, 'padding');\n      width = rect.width - containerPadding.width - containerBorder.width;\n      height = rect.height - containerPadding.height - containerBorder.height;\n      maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n      maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n    }\n  }\n  return {\n    width,\n    height,\n    maxWidth: maxWidth || INFINITY,\n    maxHeight: maxHeight || INFINITY\n  };\n}\n\nconst round1 = (v: number) => Math.round(v * 10) / 10;\n\n// eslint-disable-next-line complexity\nexport function getMaximumSize(\n  canvas: HTMLCanvasElement,\n  bbWidth?: number,\n  bbHeight?: number,\n  aspectRatio?: number\n): { width: number; height: number } {\n  const style = getComputedStyle(canvas);\n  const margins = getPositionedStyle(style, 'margin');\n  const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n  const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n  const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n  let {width, height} = containerSize;\n\n  if (style.boxSizing === 'content-box') {\n    const borders = getPositionedStyle(style, 'border', 'width');\n    const paddings = getPositionedStyle(style, 'padding');\n    width -= paddings.width + borders.width;\n    height -= paddings.height + borders.height;\n  }\n  width = Math.max(0, width - margins.width);\n  height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n  width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n  height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n  if (width && !height) {\n    // https://github.com/chartjs/Chart.js/issues/4659\n    // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n    height = round1(width / 2);\n  }\n\n  const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n\n  if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n    height = containerSize.height;\n    width = round1(Math.floor(height * aspectRatio));\n  }\n\n  return {width, height};\n}\n\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nexport function retinaScale(\n  chart: Chart | PrivateChart,\n  forceRatio: number,\n  forceStyle?: boolean\n): boolean | void {\n  const pixelRatio = forceRatio || 1;\n  const deviceHeight = round1(chart.height * pixelRatio);\n  const deviceWidth = round1(chart.width * pixelRatio);\n\n  (chart as PrivateChart).height = round1(chart.height);\n  (chart as PrivateChart).width = round1(chart.width);\n\n  const canvas = chart.canvas;\n\n  // If no style has been set on the canvas, the render size is used as display size,\n  // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n  // See https://github.com/chartjs/Chart.js/issues/3575\n  if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n    canvas.style.height = `${chart.height}px`;\n    canvas.style.width = `${chart.width}px`;\n  }\n\n  if (chart.currentDevicePixelRatio !== pixelRatio\n      || canvas.height !== deviceHeight\n      || canvas.width !== deviceWidth) {\n    (chart as PrivateChart).currentDevicePixelRatio = pixelRatio;\n    canvas.height = deviceHeight;\n    canvas.width = deviceWidth;\n    chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nexport const supportsEventListenerOptions = (function() {\n  let passiveSupported = false;\n  try {\n    const options = {\n      get passive() { // This function will be called when the browser attempts to access the passive property.\n        passiveSupported = true;\n        return false;\n      }\n    } as EventListenerOptions;\n\n    if (_isDomSupported()) {\n      window.addEventListener('test', null, options);\n      window.removeEventListener('test', null, options);\n    }\n  } catch (e) {\n    // continue regardless of error\n  }\n  return passiveSupported;\n}());\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\n\nexport function readUsedSize(\n  element: HTMLElement,\n  property: 'width' | 'height'\n): number | undefined {\n  const value = getStyle(element, property);\n  const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n  return matches ? +matches[1] : undefined;\n}\n", "import type {Point, SplinePoint} from '../types/geometric.js';\n\n/**\n * @private\n */\nexport function _pointInLine(p1: Point, p2: Point, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n  return {\n    x: p1.x + t * (p2.x - p1.x),\n    y: p1.y + t * (p2.y - p1.y)\n  };\n}\n\n/**\n * @private\n */\nexport function _steppedInterpolation(\n  p1: Point,\n  p2: Point,\n  t: number, mode: 'middle' | 'after' | unknown\n) {\n  return {\n    x: p1.x + t * (p2.x - p1.x),\n    y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n      : mode === 'after' ? t < 1 ? p1.y : p2.y\n        : t > 0 ? p2.y : p1.y\n  };\n}\n\n/**\n * @private\n */\nexport function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n  const cp1 = {x: p1.cp2x, y: p1.cp2y};\n  const cp2 = {x: p2.cp1x, y: p2.cp1y};\n  const a = _pointInLine(p1, cp1, t);\n  const b = _pointInLine(cp1, cp2, t);\n  const c = _pointInLine(cp2, p2, t);\n  const d = _pointInLine(a, b, t);\n  const e = _pointInLine(b, c, t);\n  return _pointInLine(d, e, t);\n}\n", "export interface RTLAdapter {\n  x(x: number): number;\n  setWidth(w: number): void;\n  textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right';\n  xPlus(x: number, value: number): number;\n  leftForLtr(x: number, itemWidth: number): number;\n}\n\nconst getRightToLeftAdapter = function(rectX: number, width: number): RTLAdapter {\n  return {\n    x(x) {\n      return rectX + rectX + width - x;\n    },\n    setWidth(w) {\n      width = w;\n    },\n    textAlign(align) {\n      if (align === 'center') {\n        return align;\n      }\n      return align === 'right' ? 'left' : 'right';\n    },\n    xPlus(x, value) {\n      return x - value;\n    },\n    leftForLtr(x, itemWidth) {\n      return x - itemWidth;\n    },\n  };\n};\n\nconst getLeftToRightAdapter = function(): RTLAdapter {\n  return {\n    x(x) {\n      return x;\n    },\n    setWidth(w) { // eslint-disable-line no-unused-vars\n    },\n    textAlign(align) {\n      return align;\n    },\n    xPlus(x, value) {\n      return x + value;\n    },\n    leftForLtr(x, _itemWidth) { // eslint-disable-line @typescript-eslint/no-unused-vars\n      return x;\n    },\n  };\n};\n\nexport function getRtlAdapter(rtl: boolean, rectX: number, width: number) {\n  return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nexport function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') {\n  let style: CSSStyleDeclaration, original: [string, string];\n  if (direction === 'ltr' || direction === 'rtl') {\n    style = ctx.canvas.style;\n    original = [\n      style.getPropertyValue('direction'),\n      style.getPropertyPriority('direction'),\n    ];\n\n    style.setProperty('direction', direction, 'important');\n    (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original;\n  }\n}\n\nexport function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) {\n  if (original !== undefined) {\n    delete (ctx as { prevTextDirection?: [string, string] }).prevTextDirection;\n    ctx.canvas.style.setProperty('direction', original[0], original[1]);\n  }\n}\n", "import {_angleBetween, _angleDiff, _isBetween, _normalizeAngle} from './helpers.math.js';\nimport {createContext} from './helpers.options.js';\nimport {isPatternOrGradient} from './helpers.color.js';\n\n/**\n * @typedef { import('../elements/element.line.js').default } LineElement\n * @typedef { import('../elements/element.point.js').default } PointElement\n * @typedef {{start: number, end: number, loop: boolean, style?: any}} Segment\n */\n\nfunction propertyFn(property) {\n  if (property === 'angle') {\n    return {\n      between: _angleBetween,\n      compare: _angleDiff,\n      normalize: _normalizeAngle,\n    };\n  }\n  return {\n    between: _isBetween,\n    compare: (a, b) => a - b,\n    normalize: x => x\n  };\n}\n\nfunction normalizeSegment({start, end, count, loop, style}) {\n  return {\n    start: start % count,\n    end: end % count,\n    loop: loop && (end - start + 1) % count === 0,\n    style\n  };\n}\n\nfunction getSegment(segment, points, bounds) {\n  const {property, start: startBound, end: endBound} = bounds;\n  const {between, normalize} = propertyFn(property);\n  const count = points.length;\n  // eslint-disable-next-line prefer-const\n  let {start, end, loop} = segment;\n  let i, ilen;\n\n  if (loop) {\n    start += count;\n    end += count;\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n        break;\n      }\n      start--;\n      end--;\n    }\n    start %= count;\n    end %= count;\n  }\n\n  if (end < start) {\n    end += count;\n  }\n  return {start, end, loop, style: segment.style};\n}\n\n/**\n * Returns the sub-segment(s) of a line segment that fall in the given bounds\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} [segment.style] - segment style\n * @param {PointElement[]} points - the points that this segment refers to\n * @param {object} [bounds]\n * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the property\n * @param {number} bounds.end - end value of the property\n * @private\n **/\nexport function _boundSegment(segment, points, bounds) {\n  if (!bounds) {\n    return [segment];\n  }\n\n  const {property, start: startBound, end: endBound} = bounds;\n  const count = points.length;\n  const {compare, between, normalize} = propertyFn(property);\n  const {start, end, loop, style} = getSegment(segment, points, bounds);\n\n  const result = [];\n  let inside = false;\n  let subStart = null;\n  let value, point, prevValue;\n\n  const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n  const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n  const shouldStart = () => inside || startIsBefore();\n  const shouldStop = () => !inside || endIsBefore();\n\n  for (let i = start, prev = start; i <= end; ++i) {\n    point = points[i % count];\n\n    if (point.skip) {\n      continue;\n    }\n\n    value = normalize(point[property]);\n\n    if (value === prevValue) {\n      continue;\n    }\n\n    inside = between(value, startBound, endBound);\n\n    if (subStart === null && shouldStart()) {\n      subStart = compare(value, startBound) === 0 ? i : prev;\n    }\n\n    if (subStart !== null && shouldStop()) {\n      result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n      subStart = null;\n    }\n    prev = i;\n    prevValue = value;\n  }\n\n  if (subStart !== null) {\n    result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n  }\n\n  return result;\n}\n\n\n/**\n * Returns the segments of the line that are inside given bounds\n * @param {LineElement} line\n * @param {object} [bounds]\n * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the `property`\n * @param {number} bounds.end - end value of the `property`\n * @private\n */\nexport function _boundSegments(line, bounds) {\n  const result = [];\n  const segments = line.segments;\n\n  for (let i = 0; i < segments.length; i++) {\n    const sub = _boundSegment(segments[i], line.points, bounds);\n    if (sub.length) {\n      result.push(...sub);\n    }\n  }\n  return result;\n}\n\n/**\n * Find start and end index of a line.\n */\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n  let start = 0;\n  let end = count - 1;\n\n  if (loop && !spanGaps) {\n    // loop and not spanning gaps, first find a gap to start from\n    while (start < count && !points[start].skip) {\n      start++;\n    }\n  }\n\n  // find first non skipped point (after the first gap possibly)\n  while (start < count && points[start].skip) {\n    start++;\n  }\n\n  // if we looped to count, start needs to be 0\n  start %= count;\n\n  if (loop) {\n    // loop will go past count, if start > 0\n    end += start;\n  }\n\n  while (end > start && points[end % count].skip) {\n    end--;\n  }\n\n  // end could be more than count, normalize\n  end %= count;\n\n  return {start, end};\n}\n\n/**\n * Compute solid segments from Points, when spanGaps === false\n * @param {PointElement[]} points - the points\n * @param {number} start - start index\n * @param {number} max - max index (can go past count on a loop)\n * @param {boolean} loop - boolean indicating that this would be a loop if no gaps are found\n */\nfunction solidSegments(points, start, max, loop) {\n  const count = points.length;\n  const result = [];\n  let last = start;\n  let prev = points[start];\n  let end;\n\n  for (end = start + 1; end <= max; ++end) {\n    const cur = points[end % count];\n    if (cur.skip || cur.stop) {\n      if (!prev.skip) {\n        loop = false;\n        result.push({start: start % count, end: (end - 1) % count, loop});\n        // @ts-ignore\n        start = last = cur.stop ? end : null;\n      }\n    } else {\n      last = end;\n      if (prev.skip) {\n        start = end;\n      }\n    }\n    prev = cur;\n  }\n\n  if (last !== null) {\n    result.push({start: start % count, end: last % count, loop});\n  }\n\n  return result;\n}\n\n/**\n * Compute the continuous segments that define the whole line\n * There can be skipped points within a segment, if spanGaps is true.\n * @param {LineElement} line\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n * @private\n */\nexport function _computeSegments(line, segmentOptions) {\n  const points = line.points;\n  const spanGaps = line.options.spanGaps;\n  const count = points.length;\n\n  if (!count) {\n    return [];\n  }\n\n  const loop = !!line._loop;\n  const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n\n  if (spanGaps === true) {\n    return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n  }\n\n  const max = end < start ? end + count : end;\n  const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n  return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\n/**\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction splitByStyles(line, segments, points, segmentOptions) {\n  if (!segmentOptions || !segmentOptions.setContext || !points) {\n    return segments;\n  }\n  return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\n/**\n * @param {LineElement} line\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n  const chartContext = line._chart.getContext();\n  const baseStyle = readStyle(line.options);\n  const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n  const count = points.length;\n  const result = [];\n  let prevStyle = baseStyle;\n  let start = segments[0].start;\n  let i = start;\n\n  function addStyle(s, e, l, st) {\n    const dir = spanGaps ? -1 : 1;\n    if (s === e) {\n      return;\n    }\n    // Style can not start/end on a skipped point, adjust indices accordingly\n    s += count;\n    while (points[s % count].skip) {\n      s -= dir;\n    }\n    while (points[e % count].skip) {\n      e += dir;\n    }\n    if (s % count !== e % count) {\n      result.push({start: s % count, end: e % count, loop: l, style: st});\n      prevStyle = st;\n      start = e % count;\n    }\n  }\n\n  for (const segment of segments) {\n    start = spanGaps ? start : segment.start;\n    let prev = points[start % count];\n    let style;\n    for (i = start + 1; i <= segment.end; i++) {\n      const pt = points[i % count];\n      style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n        type: 'segment',\n        p0: prev,\n        p1: pt,\n        p0DataIndex: (i - 1) % count,\n        p1DataIndex: i % count,\n        datasetIndex\n      })));\n      if (styleChanged(style, prevStyle)) {\n        addStyle(start, i - 1, segment.loop, prevStyle);\n      }\n      prev = pt;\n      prevStyle = style;\n    }\n    if (start < i - 1) {\n      addStyle(start, i - 1, segment.loop, prevStyle);\n    }\n  }\n\n  return result;\n}\n\nfunction readStyle(options) {\n  return {\n    backgroundColor: options.backgroundColor,\n    borderCapStyle: options.borderCapStyle,\n    borderDash: options.borderDash,\n    borderDashOffset: options.borderDashOffset,\n    borderJoinStyle: options.borderJoinStyle,\n    borderWidth: options.borderWidth,\n    borderColor: options.borderColor\n  };\n}\n\nfunction styleChanged(style, prevStyle) {\n  if (!prevStyle) {\n    return false;\n  }\n  const cache = [];\n  const replacer = function(key, value) {\n    if (!isPatternOrGradient(value)) {\n      return value;\n    }\n    if (!cache.includes(value)) {\n      cache.push(value);\n    }\n    return cache.indexOf(value);\n  };\n  return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n", "import type {Chart, ChartArea, ChartMeta, Scale, TRBL} from '../types/index.js';\n\nfunction getSizeForArea(scale: Scale, chartArea: ChartArea, field: keyof ChartArea) {\n  return scale.options.clip ? scale[field] : chartArea[field];\n}\n\nfunction getDatasetArea(meta: ChartMeta, chartArea: ChartArea): TRBL {\n  const {xScale, yScale} = meta;\n  if (xScale && yScale) {\n    return {\n      left: getSizeForArea(xScale, chartArea, 'left'),\n      right: getSizeForArea(xScale, chartArea, 'right'),\n      top: getSizeForArea(yScale, chartArea, 'top'),\n      bottom: getSizeForArea(yScale, chartArea, 'bottom')\n    };\n  }\n  return chartArea;\n}\n\nexport function getDatasetClipArea(chart: Chart, meta: ChartMeta): TRBL | false {\n  const clip = meta._clip;\n  if (clip.disabled) {\n    return false;\n  }\n  const area = getDatasetArea(meta, chart.chartArea);\n\n  return {\n    left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n    right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n    top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n    bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n  };\n}\n", "import {requestAnimFrame} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('./core.animation.js').default } Animation\n * @typedef { import('./core.controller.js').default } Chart\n */\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is export for typedoc\n */\nexport class Animator {\n  constructor() {\n    this._request = null;\n    this._charts = new Map();\n    this._running = false;\n    this._lastDate = undefined;\n  }\n\n  /**\n\t * @private\n\t */\n  _notify(chart, anims, date, type) {\n    const callbacks = anims.listeners[type];\n    const numSteps = anims.duration;\n\n    callbacks.forEach(fn => fn({\n      chart,\n      initial: anims.initial,\n      numSteps,\n      currentStep: Math.min(date - anims.start, numSteps)\n    }));\n  }\n\n  /**\n\t * @private\n\t */\n  _refresh() {\n    if (this._request) {\n      return;\n    }\n    this._running = true;\n\n    this._request = requestAnimFrame.call(window, () => {\n      this._update();\n      this._request = null;\n\n      if (this._running) {\n        this._refresh();\n      }\n    });\n  }\n\n  /**\n\t * @private\n\t */\n  _update(date = Date.now()) {\n    let remaining = 0;\n\n    this._charts.forEach((anims, chart) => {\n      if (!anims.running || !anims.items.length) {\n        return;\n      }\n      const items = anims.items;\n      let i = items.length - 1;\n      let draw = false;\n      let item;\n\n      for (; i >= 0; --i) {\n        item = items[i];\n\n        if (item._active) {\n          if (item._total > anims.duration) {\n            // if the animation has been updated and its duration prolonged,\n            // update to total duration of current animations run (for progress event)\n            anims.duration = item._total;\n          }\n          item.tick(date);\n          draw = true;\n        } else {\n          // Remove the item by replacing it with last item and removing the last\n          // A lot faster than splice.\n          items[i] = items[items.length - 1];\n          items.pop();\n        }\n      }\n\n      if (draw) {\n        chart.draw();\n        this._notify(chart, anims, date, 'progress');\n      }\n\n      if (!items.length) {\n        anims.running = false;\n        this._notify(chart, anims, date, 'complete');\n        anims.initial = false;\n      }\n\n      remaining += items.length;\n    });\n\n    this._lastDate = date;\n\n    if (remaining === 0) {\n      this._running = false;\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _getAnims(chart) {\n    const charts = this._charts;\n    let anims = charts.get(chart);\n    if (!anims) {\n      anims = {\n        running: false,\n        initial: true,\n        items: [],\n        listeners: {\n          complete: [],\n          progress: []\n        }\n      };\n      charts.set(chart, anims);\n    }\n    return anims;\n  }\n\n  /**\n\t * @param {Chart} chart\n\t * @param {string} event - event name\n\t * @param {Function} cb - callback\n\t */\n  listen(chart, event, cb) {\n    this._getAnims(chart).listeners[event].push(cb);\n  }\n\n  /**\n\t * Add animations\n\t * @param {Chart} chart\n\t * @param {Animation[]} items - animations\n\t */\n  add(chart, items) {\n    if (!items || !items.length) {\n      return;\n    }\n    this._getAnims(chart).items.push(...items);\n  }\n\n  /**\n\t * Counts number of active animations for the chart\n\t * @param {Chart} chart\n\t */\n  has(chart) {\n    return this._getAnims(chart).items.length > 0;\n  }\n\n  /**\n\t * Start animating (all charts)\n\t * @param {Chart} chart\n\t */\n  start(chart) {\n    const anims = this._charts.get(chart);\n    if (!anims) {\n      return;\n    }\n    anims.running = true;\n    anims.start = Date.now();\n    anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n    this._refresh();\n  }\n\n  running(chart) {\n    if (!this._running) {\n      return false;\n    }\n    const anims = this._charts.get(chart);\n    if (!anims || !anims.running || !anims.items.length) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n\t * Stop all animations for the chart\n\t * @param {Chart} chart\n\t */\n  stop(chart) {\n    const anims = this._charts.get(chart);\n    if (!anims || !anims.items.length) {\n      return;\n    }\n    const items = anims.items;\n    let i = items.length - 1;\n\n    for (; i >= 0; --i) {\n      items[i].cancel();\n    }\n    anims.items = [];\n    this._notify(chart, anims, Date.now(), 'complete');\n  }\n\n  /**\n\t * Remove chart from Animator\n\t * @param {Chart} chart\n\t */\n  remove(chart) {\n    return this._charts.delete(chart);\n  }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Animator();\n", "import effects from '../helpers/helpers.easing.js';\nimport {resolve} from '../helpers/helpers.options.js';\nimport {color as helpersColor} from '../helpers/helpers.color.js';\n\nconst transparent = 'transparent';\nconst interpolators = {\n  boolean(from, to, factor) {\n    return factor > 0.5 ? to : from;\n  },\n  /**\n   * @param {string} from\n   * @param {string} to\n   * @param {number} factor\n   */\n  color(from, to, factor) {\n    const c0 = helpersColor(from || transparent);\n    const c1 = c0.valid && helpersColor(to || transparent);\n    return c1 && c1.valid\n      ? c1.mix(c0, factor).hexString()\n      : to;\n  },\n  number(from, to, factor) {\n    return from + (to - from) * factor;\n  }\n};\n\nexport default class Animation {\n  constructor(cfg, target, prop, to) {\n    const currentValue = target[prop];\n\n    to = resolve([cfg.to, to, currentValue, cfg.from]);\n    const from = resolve([cfg.from, currentValue, to]);\n\n    this._active = true;\n    this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n    this._easing = effects[cfg.easing] || effects.linear;\n    this._start = Math.floor(Date.now() + (cfg.delay || 0));\n    this._duration = this._total = Math.floor(cfg.duration);\n    this._loop = !!cfg.loop;\n    this._target = target;\n    this._prop = prop;\n    this._from = from;\n    this._to = to;\n    this._promises = undefined;\n  }\n\n  active() {\n    return this._active;\n  }\n\n  update(cfg, to, date) {\n    if (this._active) {\n      this._notify(false);\n\n      const currentValue = this._target[this._prop];\n      const elapsed = date - this._start;\n      const remain = this._duration - elapsed;\n      this._start = date;\n      this._duration = Math.floor(Math.max(remain, cfg.duration));\n      this._total += elapsed;\n      this._loop = !!cfg.loop;\n      this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n      this._from = resolve([cfg.from, currentValue, to]);\n    }\n  }\n\n  cancel() {\n    if (this._active) {\n      // update current evaluated value, for smoother animations\n      this.tick(Date.now());\n      this._active = false;\n      this._notify(false);\n    }\n  }\n\n  tick(date) {\n    const elapsed = date - this._start;\n    const duration = this._duration;\n    const prop = this._prop;\n    const from = this._from;\n    const loop = this._loop;\n    const to = this._to;\n    let factor;\n\n    this._active = from !== to && (loop || (elapsed < duration));\n\n    if (!this._active) {\n      this._target[prop] = to;\n      this._notify(true);\n      return;\n    }\n\n    if (elapsed < 0) {\n      this._target[prop] = from;\n      return;\n    }\n\n    factor = (elapsed / duration) % 2;\n    factor = loop && factor > 1 ? 2 - factor : factor;\n    factor = this._easing(Math.min(1, Math.max(0, factor)));\n\n    this._target[prop] = this._fn(from, to, factor);\n  }\n\n  wait() {\n    const promises = this._promises || (this._promises = []);\n    return new Promise((res, rej) => {\n      promises.push({res, rej});\n    });\n  }\n\n  _notify(resolved) {\n    const method = resolved ? 'res' : 'rej';\n    const promises = this._promises || [];\n    for (let i = 0; i < promises.length; i++) {\n      promises[i][method]();\n    }\n  }\n}\n", "import animator from './core.animator.js';\nimport Animation from './core.animation.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isObject} from '../helpers/helpers.core.js';\n\nexport default class Animations {\n  constructor(chart, config) {\n    this._chart = chart;\n    this._properties = new Map();\n    this.configure(config);\n  }\n\n  configure(config) {\n    if (!isObject(config)) {\n      return;\n    }\n\n    const animationOptions = Object.keys(defaults.animation);\n    const animatedProps = this._properties;\n\n    Object.getOwnPropertyNames(config).forEach(key => {\n      const cfg = config[key];\n      if (!isObject(cfg)) {\n        return;\n      }\n      const resolved = {};\n      for (const option of animationOptions) {\n        resolved[option] = cfg[option];\n      }\n\n      (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n        if (prop === key || !animatedProps.has(prop)) {\n          animatedProps.set(prop, resolved);\n        }\n      });\n    });\n  }\n\n  /**\n\t * Utility to handle animation of `options`.\n\t * @private\n\t */\n  _animateOptions(target, values) {\n    const newOptions = values.options;\n    const options = resolveTargetOptions(target, newOptions);\n    if (!options) {\n      return [];\n    }\n\n    const animations = this._createAnimations(options, newOptions);\n    if (newOptions.$shared) {\n      // Going to shared options:\n      // After all animations are done, assign the shared options object to the element\n      // So any new updates to the shared options are observed\n      awaitAll(target.options.$animations, newOptions).then(() => {\n        target.options = newOptions;\n      }, () => {\n        // rejected, noop\n      });\n    }\n\n    return animations;\n  }\n\n  /**\n\t * @private\n\t */\n  _createAnimations(target, values) {\n    const animatedProps = this._properties;\n    const animations = [];\n    const running = target.$animations || (target.$animations = {});\n    const props = Object.keys(values);\n    const date = Date.now();\n    let i;\n\n    for (i = props.length - 1; i >= 0; --i) {\n      const prop = props[i];\n      if (prop.charAt(0) === '$') {\n        continue;\n      }\n\n      if (prop === 'options') {\n        animations.push(...this._animateOptions(target, values));\n        continue;\n      }\n      const value = values[prop];\n      let animation = running[prop];\n      const cfg = animatedProps.get(prop);\n\n      if (animation) {\n        if (cfg && animation.active()) {\n          // There is an existing active animation, let's update that\n          animation.update(cfg, value, date);\n          continue;\n        } else {\n          animation.cancel();\n        }\n      }\n      if (!cfg || !cfg.duration) {\n        // not animated, set directly to new value\n        target[prop] = value;\n        continue;\n      }\n\n      running[prop] = animation = new Animation(cfg, target, prop, value);\n      animations.push(animation);\n    }\n    return animations;\n  }\n\n\n  /**\n\t * Update `target` properties to new values, using configured animations\n\t * @param {object} target - object to update\n\t * @param {object} values - new target properties\n\t * @returns {boolean|undefined} - `true` if animations were started\n\t **/\n  update(target, values) {\n    if (this._properties.size === 0) {\n      // Nothing is animated, just apply the new values.\n      Object.assign(target, values);\n      return;\n    }\n\n    const animations = this._createAnimations(target, values);\n\n    if (animations.length) {\n      animator.add(this._chart, animations);\n      return true;\n    }\n  }\n}\n\nfunction awaitAll(animations, properties) {\n  const running = [];\n  const keys = Object.keys(properties);\n  for (let i = 0; i < keys.length; i++) {\n    const anim = animations[keys[i]];\n    if (anim && anim.active()) {\n      running.push(anim.wait());\n    }\n  }\n  // @ts-ignore\n  return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n  if (!newOptions) {\n    return;\n  }\n  let options = target.options;\n  if (!options) {\n    target.options = newOptions;\n    return;\n  }\n  if (options.$shared) {\n    // Going from shared options to distinct one:\n    // Create new options object containing the old shared values and start updating that.\n    target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n  }\n  return options;\n}\n", "import Animations from './core.animations.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isFinite, isObject, valueOrDefault, resolveObjectKey, defined} from '../helpers/helpers.core.js';\nimport {listenArrayEvents, unlistenArrayEvents} from '../helpers/helpers.collection.js';\nimport {createContext, sign} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('./core.scale.js').default } Scale\n */\n\nfunction scaleClip(scale, allowedOverflow) {\n  const opts = scale && scale.options || {};\n  const reverse = opts.reverse;\n  const min = opts.min === undefined ? allowedOverflow : 0;\n  const max = opts.max === undefined ? allowedOverflow : 0;\n  return {\n    start: reverse ? max : min,\n    end: reverse ? min : max\n  };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n  if (allowedOverflow === false) {\n    return false;\n  }\n  const x = scaleClip(xScale, allowedOverflow);\n  const y = scaleClip(yScale, allowedOverflow);\n\n  return {\n    top: y.end,\n    right: x.end,\n    bottom: y.start,\n    left: x.start\n  };\n}\n\nfunction toClip(value) {\n  let t, r, b, l;\n\n  if (isObject(value)) {\n    t = value.top;\n    r = value.right;\n    b = value.bottom;\n    l = value.left;\n  } else {\n    t = r = b = l = value;\n  }\n\n  return {\n    top: t,\n    right: r,\n    bottom: b,\n    left: l,\n    disabled: value === false\n  };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n  const keys = [];\n  const metasets = chart._getSortedDatasetMetas(filterVisible);\n  let i, ilen;\n\n  for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n    keys.push(metasets[i].index);\n  }\n  return keys;\n}\n\nfunction applyStack(stack, value, dsIndex, options = {}) {\n  const keys = stack.keys;\n  const singleMode = options.mode === 'single';\n  let i, ilen, datasetIndex, otherValue;\n\n  if (value === null) {\n    return;\n  }\n\n  let found = false;\n  for (i = 0, ilen = keys.length; i < ilen; ++i) {\n    datasetIndex = +keys[i];\n    if (datasetIndex === dsIndex) {\n      found = true;\n      if (options.all) {\n        continue;\n      }\n      break;\n    }\n    otherValue = stack.values[datasetIndex];\n    if (isFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n      value += otherValue;\n    }\n  }\n\n  if (!found && !options.all) {\n    return 0;\n  }\n\n  return value;\n}\n\nfunction convertObjectDataToArray(data, meta) {\n  const {iScale, vScale} = meta;\n  const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n  const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n  const keys = Object.keys(data);\n  const adata = new Array(keys.length);\n  let i, ilen, key;\n  for (i = 0, ilen = keys.length; i < ilen; ++i) {\n    key = keys[i];\n    adata[i] = {\n      [iAxisKey]: key,\n      [vAxisKey]: data[key]\n    };\n  }\n  return adata;\n}\n\nfunction isStacked(scale, meta) {\n  const stacked = scale && scale.options.stacked;\n  return stacked || (stacked === undefined && meta.stack !== undefined);\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n  return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\n\nfunction getUserBounds(scale) {\n  const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n  return {\n    min: minDefined ? min : Number.NEGATIVE_INFINITY,\n    max: maxDefined ? max : Number.POSITIVE_INFINITY\n  };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n  const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n  return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n  for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n    const value = stack[meta.index];\n    if ((positive && value > 0) || (!positive && value < 0)) {\n      return meta.index;\n    }\n  }\n\n  return null;\n}\n\nfunction updateStacks(controller, parsed) {\n  const {chart, _cachedMeta: meta} = controller;\n  const stacks = chart._stacks || (chart._stacks = {}); // map structure is {stackKey: {datasetIndex: value}}\n  const {iScale, vScale, index: datasetIndex} = meta;\n  const iAxis = iScale.axis;\n  const vAxis = vScale.axis;\n  const key = getStackKey(iScale, vScale, meta);\n  const ilen = parsed.length;\n  let stack;\n\n  for (let i = 0; i < ilen; ++i) {\n    const item = parsed[i];\n    const {[iAxis]: index, [vAxis]: value} = item;\n    const itemStacks = item._stacks || (item._stacks = {});\n    stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n    stack[datasetIndex] = value;\n\n    stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n    stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n\n    const visualValues = stack._visualValues || (stack._visualValues = {});\n    visualValues[datasetIndex] = value;\n  }\n}\n\nfunction getFirstScaleId(chart, axis) {\n  const scales = chart.scales;\n  return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n  return createContext(parent,\n    {\n      active: false,\n      dataset: undefined,\n      datasetIndex: index,\n      index,\n      mode: 'default',\n      type: 'dataset'\n    }\n  );\n}\n\nfunction createDataContext(parent, index, element) {\n  return createContext(parent, {\n    active: false,\n    dataIndex: index,\n    parsed: undefined,\n    raw: undefined,\n    element,\n    index,\n    mode: 'default',\n    type: 'data'\n  });\n}\n\nfunction clearStacks(meta, items) {\n  // Not using meta.index here, because it might be already updated if the dataset changed location\n  const datasetIndex = meta.controller.index;\n  const axis = meta.vScale && meta.vScale.axis;\n  if (!axis) {\n    return;\n  }\n\n  items = items || meta._parsed;\n  for (const parsed of items) {\n    const stacks = parsed._stacks;\n    if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n      return;\n    }\n    delete stacks[axis][datasetIndex];\n    if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n      delete stacks[axis]._visualValues[datasetIndex];\n    }\n  }\n}\n\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n  && {keys: getSortedDatasetIndices(chart, true), values: null};\n\nexport default class DatasetController {\n\n  /**\n   * @type {any}\n   */\n  static defaults = {};\n\n  /**\n   * Element type used to generate a meta dataset (e.g. Chart.element.LineElement).\n   */\n  static datasetElementType = null;\n\n  /**\n   * Element type used to generate a meta data (e.g. Chart.element.PointElement).\n   */\n  static dataElementType = null;\n\n  /**\n\t * @param {Chart} chart\n\t * @param {number} datasetIndex\n\t */\n  constructor(chart, datasetIndex) {\n    this.chart = chart;\n    this._ctx = chart.ctx;\n    this.index = datasetIndex;\n    this._cachedDataOpts = {};\n    this._cachedMeta = this.getMeta();\n    this._type = this._cachedMeta.type;\n    this.options = undefined;\n    /** @type {boolean | object} */\n    this._parsing = false;\n    this._data = undefined;\n    this._objectData = undefined;\n    this._sharedOptions = undefined;\n    this._drawStart = undefined;\n    this._drawCount = undefined;\n    this.enableOptionSharing = false;\n    this.supportsDecimation = false;\n    this.$context = undefined;\n    this._syncList = [];\n    this.datasetElementType = new.target.datasetElementType;\n    this.dataElementType = new.target.dataElementType;\n\n    this.initialize();\n  }\n\n  initialize() {\n    const meta = this._cachedMeta;\n    this.configure();\n    this.linkScales();\n    meta._stacked = isStacked(meta.vScale, meta);\n    this.addElements();\n\n    if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n      console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n    }\n  }\n\n  updateIndex(datasetIndex) {\n    if (this.index !== datasetIndex) {\n      clearStacks(this._cachedMeta);\n    }\n    this.index = datasetIndex;\n  }\n\n  linkScales() {\n    const chart = this.chart;\n    const meta = this._cachedMeta;\n    const dataset = this.getDataset();\n\n    const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n\n    const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n    const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n    const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n    const indexAxis = meta.indexAxis;\n    const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n    const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n    meta.xScale = this.getScaleForId(xid);\n    meta.yScale = this.getScaleForId(yid);\n    meta.rScale = this.getScaleForId(rid);\n    meta.iScale = this.getScaleForId(iid);\n    meta.vScale = this.getScaleForId(vid);\n  }\n\n  getDataset() {\n    return this.chart.data.datasets[this.index];\n  }\n\n  getMeta() {\n    return this.chart.getDatasetMeta(this.index);\n  }\n\n  /**\n\t * @param {string} scaleID\n\t * @return {Scale}\n\t */\n  getScaleForId(scaleID) {\n    return this.chart.scales[scaleID];\n  }\n\n  /**\n\t * @private\n\t */\n  _getOtherScale(scale) {\n    const meta = this._cachedMeta;\n    return scale === meta.iScale\n      ? meta.vScale\n      : meta.iScale;\n  }\n\n  reset() {\n    this._update('reset');\n  }\n\n  /**\n\t * @private\n\t */\n  _destroy() {\n    const meta = this._cachedMeta;\n    if (this._data) {\n      unlistenArrayEvents(this._data, this);\n    }\n    if (meta._stacked) {\n      clearStacks(meta);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _dataCheck() {\n    const dataset = this.getDataset();\n    const data = dataset.data || (dataset.data = []);\n    const _data = this._data;\n\n    // In order to correctly handle data addition/deletion animation (and thus simulate\n    // real-time charts), we need to monitor these data modifications and synchronize\n    // the internal metadata accordingly.\n\n    if (isObject(data)) {\n      const meta = this._cachedMeta;\n      this._data = convertObjectDataToArray(data, meta);\n    } else if (_data !== data) {\n      if (_data) {\n        // This case happens when the user replaced the data array instance.\n        unlistenArrayEvents(_data, this);\n        // Discard old parsed data and stacks\n        const meta = this._cachedMeta;\n        clearStacks(meta);\n        meta._parsed = [];\n      }\n      if (data && Object.isExtensible(data)) {\n        listenArrayEvents(data, this);\n      }\n      this._syncList = [];\n      this._data = data;\n    }\n  }\n\n  addElements() {\n    const meta = this._cachedMeta;\n\n    this._dataCheck();\n\n    if (this.datasetElementType) {\n      meta.dataset = new this.datasetElementType();\n    }\n  }\n\n  buildOrUpdateElements(resetNewElements) {\n    const meta = this._cachedMeta;\n    const dataset = this.getDataset();\n    let stackChanged = false;\n\n    this._dataCheck();\n\n    // make sure cached _stacked status is current\n    const oldStacked = meta._stacked;\n    meta._stacked = isStacked(meta.vScale, meta);\n\n    // detect change in stack option\n    if (meta.stack !== dataset.stack) {\n      stackChanged = true;\n      // remove values from old stack\n      clearStacks(meta);\n      meta.stack = dataset.stack;\n    }\n\n    // Re-sync meta data in case the user replaced the data array or if we missed\n    // any updates and so make sure that we handle number of datapoints changing.\n    this._resyncElements(resetNewElements);\n\n    // if stack changed, update stack values for the whole dataset\n    if (stackChanged || oldStacked !== meta._stacked) {\n      updateStacks(this, meta._parsed);\n      meta._stacked = isStacked(meta.vScale, meta);\n    }\n  }\n\n  /**\n\t * Merges user-supplied and default dataset-level options\n\t * @private\n\t */\n  configure() {\n    const config = this.chart.config;\n    const scopeKeys = config.datasetScopeKeys(this._type);\n    const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n    this.options = config.createResolver(scopes, this.getContext());\n    this._parsing = this.options.parsing;\n    this._cachedDataOpts = {};\n  }\n\n  /**\n\t * @param {number} start\n\t * @param {number} count\n\t */\n  parse(start, count) {\n    const {_cachedMeta: meta, _data: data} = this;\n    const {iScale, _stacked} = meta;\n    const iAxis = iScale.axis;\n\n    let sorted = start === 0 && count === data.length ? true : meta._sorted;\n    let prev = start > 0 && meta._parsed[start - 1];\n    let i, cur, parsed;\n\n    if (this._parsing === false) {\n      meta._parsed = data;\n      meta._sorted = true;\n      parsed = data;\n    } else {\n      if (isArray(data[start])) {\n        parsed = this.parseArrayData(meta, data, start, count);\n      } else if (isObject(data[start])) {\n        parsed = this.parseObjectData(meta, data, start, count);\n      } else {\n        parsed = this.parsePrimitiveData(meta, data, start, count);\n      }\n\n      const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n      for (i = 0; i < count; ++i) {\n        meta._parsed[i + start] = cur = parsed[i];\n        if (sorted) {\n          if (isNotInOrderComparedToPrev()) {\n            sorted = false;\n          }\n          prev = cur;\n        }\n      }\n      meta._sorted = sorted;\n    }\n\n    if (_stacked) {\n      updateStacks(this, parsed);\n    }\n  }\n\n  /**\n\t * Parse array of primitive values\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [1,3,4]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {xScale0: 0, yScale0: 1}\n\t * @protected\n\t */\n  parsePrimitiveData(meta, data, start, count) {\n    const {iScale, vScale} = meta;\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const labels = iScale.getLabels();\n    const singleScale = iScale === vScale;\n    const parsed = new Array(count);\n    let i, ilen, index;\n\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      index = i + start;\n      parsed[i] = {\n        [iAxis]: singleScale || iScale.parse(labels[index], index),\n        [vAxis]: vScale.parse(data[index], index)\n      };\n    }\n    return parsed;\n  }\n\n  /**\n\t * Parse array of arrays\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [[1,2],[3,4]]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {x: 0, y: 1}\n\t * @protected\n\t */\n  parseArrayData(meta, data, start, count) {\n    const {xScale, yScale} = meta;\n    const parsed = new Array(count);\n    let i, ilen, index, item;\n\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      index = i + start;\n      item = data[index];\n      parsed[i] = {\n        x: xScale.parse(item[0], index),\n        y: yScale.parse(item[1], index)\n      };\n    }\n    return parsed;\n  }\n\n  /**\n\t * Parse array of objects\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [{x:1, y:5}, {x:2, y:10}]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id. _custom is optional\n\t * Example: {xScale0: 0, yScale0: 1, _custom: {r: 10, foo: 'bar'}}\n\t * @protected\n\t */\n  parseObjectData(meta, data, start, count) {\n    const {xScale, yScale} = meta;\n    const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n    const parsed = new Array(count);\n    let i, ilen, index, item;\n\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      index = i + start;\n      item = data[index];\n      parsed[i] = {\n        x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n        y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n      };\n    }\n    return parsed;\n  }\n\n  /**\n\t * @protected\n\t */\n  getParsed(index) {\n    return this._cachedMeta._parsed[index];\n  }\n\n  /**\n\t * @protected\n\t */\n  getDataElement(index) {\n    return this._cachedMeta.data[index];\n  }\n\n  /**\n\t * @protected\n\t */\n  applyStack(scale, parsed, mode) {\n    const chart = this.chart;\n    const meta = this._cachedMeta;\n    const value = parsed[scale.axis];\n    const stack = {\n      keys: getSortedDatasetIndices(chart, true),\n      values: parsed._stacks[scale.axis]._visualValues\n    };\n    return applyStack(stack, value, meta.index, {mode});\n  }\n\n  /**\n\t * @protected\n\t */\n  updateRangeFromParsed(range, scale, parsed, stack) {\n    const parsedValue = parsed[scale.axis];\n    let value = parsedValue === null ? NaN : parsedValue;\n    const values = stack && parsed._stacks[scale.axis];\n    if (stack && values) {\n      stack.values = values;\n      value = applyStack(stack, parsedValue, this._cachedMeta.index);\n    }\n    range.min = Math.min(range.min, value);\n    range.max = Math.max(range.max, value);\n  }\n\n  /**\n\t * @protected\n\t */\n  getMinMax(scale, canStack) {\n    const meta = this._cachedMeta;\n    const _parsed = meta._parsed;\n    const sorted = meta._sorted && scale === meta.iScale;\n    const ilen = _parsed.length;\n    const otherScale = this._getOtherScale(scale);\n    const stack = createStack(canStack, meta, this.chart);\n    const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n    const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n    let i, parsed;\n\n    function _skip() {\n      parsed = _parsed[i];\n      const otherValue = parsed[otherScale.axis];\n      return !isFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n    }\n\n    for (i = 0; i < ilen; ++i) {\n      if (_skip()) {\n        continue;\n      }\n      this.updateRangeFromParsed(range, scale, parsed, stack);\n      if (sorted) {\n        // if the data is sorted, we don't need to check further from this end of array\n        break;\n      }\n    }\n    if (sorted) {\n      // in the sorted case, find first non-skipped value from other end of array\n      for (i = ilen - 1; i >= 0; --i) {\n        if (_skip()) {\n          continue;\n        }\n        this.updateRangeFromParsed(range, scale, parsed, stack);\n        break;\n      }\n    }\n    return range;\n  }\n\n  getAllParsedValues(scale) {\n    const parsed = this._cachedMeta._parsed;\n    const values = [];\n    let i, ilen, value;\n\n    for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n      value = parsed[i][scale.axis];\n      if (isFinite(value)) {\n        values.push(value);\n      }\n    }\n    return values;\n  }\n\n  /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n  getMaxOverflow() {\n    return false;\n  }\n\n  /**\n\t * @protected\n\t */\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const iScale = meta.iScale;\n    const vScale = meta.vScale;\n    const parsed = this.getParsed(index);\n    return {\n      label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n      value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n    };\n  }\n\n  /**\n\t * @private\n\t */\n  _update(mode) {\n    const meta = this._cachedMeta;\n    this.update(mode || 'default');\n    meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n  }\n\n  /**\n\t * @param {string} mode\n\t */\n  update(mode) {} // eslint-disable-line no-unused-vars\n\n  draw() {\n    const ctx = this._ctx;\n    const chart = this.chart;\n    const meta = this._cachedMeta;\n    const elements = meta.data || [];\n    const area = chart.chartArea;\n    const active = [];\n    const start = this._drawStart || 0;\n    const count = this._drawCount || (elements.length - start);\n    const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n    let i;\n\n    if (meta.dataset) {\n      meta.dataset.draw(ctx, area, start, count);\n    }\n\n    for (i = start; i < start + count; ++i) {\n      const element = elements[i];\n      if (element.hidden) {\n        continue;\n      }\n      if (element.active && drawActiveElementsOnTop) {\n        active.push(element);\n      } else {\n        element.draw(ctx, area);\n      }\n    }\n\n    for (i = 0; i < active.length; ++i) {\n      active[i].draw(ctx, area);\n    }\n  }\n\n  /**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @param {boolean} [active] - true if hover\n\t * @return {object} style object\n\t */\n  getStyle(index, active) {\n    const mode = active ? 'active' : 'default';\n    return index === undefined && this._cachedMeta.dataset\n      ? this.resolveDatasetElementOptions(mode)\n      : this.resolveDataElementOptions(index || 0, mode);\n  }\n\n  /**\n\t * @protected\n\t */\n  getContext(index, active, mode) {\n    const dataset = this.getDataset();\n    let context;\n    if (index >= 0 && index < this._cachedMeta.data.length) {\n      const element = this._cachedMeta.data[index];\n      context = element.$context ||\n        (element.$context = createDataContext(this.getContext(), index, element));\n      context.parsed = this.getParsed(index);\n      context.raw = dataset.data[index];\n      context.index = context.dataIndex = index;\n    } else {\n      context = this.$context ||\n        (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n      context.dataset = dataset;\n      context.index = context.datasetIndex = this.index;\n    }\n\n    context.active = !!active;\n    context.mode = mode;\n    return context;\n  }\n\n  /**\n\t * @param {string} [mode]\n\t * @protected\n\t */\n  resolveDatasetElementOptions(mode) {\n    return this._resolveElementOptions(this.datasetElementType.id, mode);\n  }\n\n  /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n  resolveDataElementOptions(index, mode) {\n    return this._resolveElementOptions(this.dataElementType.id, mode, index);\n  }\n\n  /**\n\t * @private\n\t */\n  _resolveElementOptions(elementType, mode = 'default', index) {\n    const active = mode === 'active';\n    const cache = this._cachedDataOpts;\n    const cacheKey = elementType + '-' + mode;\n    const cached = cache[cacheKey];\n    const sharing = this.enableOptionSharing && defined(index);\n    if (cached) {\n      return cloneIfNotShared(cached, sharing);\n    }\n    const config = this.chart.config;\n    const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n    const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n    const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n    const names = Object.keys(defaults.elements[elementType]);\n    // context is provided as a function, and is called only if needed,\n    // so we don't create a context for each element if not needed.\n    const context = () => this.getContext(index, active, mode);\n    const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n    if (values.$shared) {\n      // `$shared` indicates this set of options can be shared between multiple elements.\n      // Sharing is used to reduce number of properties to change during animation.\n      values.$shared = sharing;\n\n      // We cache options by `mode`, which can be 'active' for example. This enables us\n      // to have the 'active' element options and 'default' options to switch between\n      // when interacting.\n      cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n    }\n\n    return values;\n  }\n\n\n  /**\n\t * @private\n\t */\n  _resolveAnimations(index, transition, active) {\n    const chart = this.chart;\n    const cache = this._cachedDataOpts;\n    const cacheKey = `animation-${transition}`;\n    const cached = cache[cacheKey];\n    if (cached) {\n      return cached;\n    }\n    let options;\n    if (chart.options.animation !== false) {\n      const config = this.chart.config;\n      const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n      const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n      options = config.createResolver(scopes, this.getContext(index, active, transition));\n    }\n    const animations = new Animations(chart, options && options.animations);\n    if (options && options._cacheable) {\n      cache[cacheKey] = Object.freeze(animations);\n    }\n    return animations;\n  }\n\n  /**\n\t * Utility for getting the options object shared between elements\n\t * @protected\n\t */\n  getSharedOptions(options) {\n    if (!options.$shared) {\n      return;\n    }\n    return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n  }\n\n  /**\n\t * Utility for determining if `options` should be included in the updated properties\n\t * @protected\n\t */\n  includeOptions(mode, sharedOptions) {\n    return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n  }\n\n  /**\n   * @todo v4, rename to getSharedOptions and remove excess functions\n   */\n  _getSharedOptions(start, mode) {\n    const firstOpts = this.resolveDataElementOptions(start, mode);\n    const previouslySharedOptions = this._sharedOptions;\n    const sharedOptions = this.getSharedOptions(firstOpts);\n    const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n    this.updateSharedOptions(sharedOptions, mode, firstOpts);\n    return {sharedOptions, includeOptions};\n  }\n\n  /**\n\t * Utility for updating an element with new properties, using animations when appropriate.\n\t * @protected\n\t */\n  updateElement(element, index, properties, mode) {\n    if (isDirectUpdateMode(mode)) {\n      Object.assign(element, properties);\n    } else {\n      this._resolveAnimations(index, mode).update(element, properties);\n    }\n  }\n\n  /**\n\t * Utility to animate the shared options, that are potentially affecting multiple elements.\n\t * @protected\n\t */\n  updateSharedOptions(sharedOptions, mode, newOptions) {\n    if (sharedOptions && !isDirectUpdateMode(mode)) {\n      this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _setStyle(element, index, mode, active) {\n    element.active = active;\n    const options = this.getStyle(index, active);\n    this._resolveAnimations(index, mode, active).update(element, {\n      // When going from active to inactive, we need to update to the shared options.\n      // This way the once hovered element will end up with the same original shared options instance, after animation.\n      options: (!active && this.getSharedOptions(options)) || options\n    });\n  }\n\n  removeHoverStyle(element, datasetIndex, index) {\n    this._setStyle(element, index, 'active', false);\n  }\n\n  setHoverStyle(element, datasetIndex, index) {\n    this._setStyle(element, index, 'active', true);\n  }\n\n  /**\n\t * @private\n\t */\n  _removeDatasetHoverStyle() {\n    const element = this._cachedMeta.dataset;\n\n    if (element) {\n      this._setStyle(element, undefined, 'active', false);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _setDatasetHoverStyle() {\n    const element = this._cachedMeta.dataset;\n\n    if (element) {\n      this._setStyle(element, undefined, 'active', true);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _resyncElements(resetNewElements) {\n    const data = this._data;\n    const elements = this._cachedMeta.data;\n\n    // Apply changes detected through array listeners\n    for (const [method, arg1, arg2] of this._syncList) {\n      this[method](arg1, arg2);\n    }\n    this._syncList = [];\n\n    const numMeta = elements.length;\n    const numData = data.length;\n    const count = Math.min(numData, numMeta);\n\n    if (count) {\n      // TODO: It is not optimal to always parse the old data\n      // This is done because we are not detecting direct assignments:\n      // chart.data.datasets[0].data[5] = 10;\n      // chart.data.datasets[0].data[5].y = 10;\n      this.parse(0, count);\n    }\n\n    if (numData > numMeta) {\n      this._insertElements(numMeta, numData - numMeta, resetNewElements);\n    } else if (numData < numMeta) {\n      this._removeElements(numData, numMeta - numData);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _insertElements(start, count, resetNewElements = true) {\n    const meta = this._cachedMeta;\n    const data = meta.data;\n    const end = start + count;\n    let i;\n\n    const move = (arr) => {\n      arr.length += count;\n      for (i = arr.length - 1; i >= end; i--) {\n        arr[i] = arr[i - count];\n      }\n    };\n    move(data);\n\n    for (i = start; i < end; ++i) {\n      data[i] = new this.dataElementType();\n    }\n\n    if (this._parsing) {\n      move(meta._parsed);\n    }\n    this.parse(start, count);\n\n    if (resetNewElements) {\n      this.updateElements(data, start, count, 'reset');\n    }\n  }\n\n  updateElements(element, start, count, mode) {} // eslint-disable-line no-unused-vars\n\n  /**\n\t * @private\n\t */\n  _removeElements(start, count) {\n    const meta = this._cachedMeta;\n    if (this._parsing) {\n      const removed = meta._parsed.splice(start, count);\n      if (meta._stacked) {\n        clearStacks(meta, removed);\n      }\n    }\n    meta.data.splice(start, count);\n  }\n\n  /**\n\t * @private\n   */\n  _sync(args) {\n    if (this._parsing) {\n      this._syncList.push(args);\n    } else {\n      const [method, arg1, arg2] = args;\n      this[method](arg1, arg2);\n    }\n    this.chart._dataChanges.push([this.index, ...args]);\n  }\n\n  _onDataPush() {\n    const count = arguments.length;\n    this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n  }\n\n  _onDataPop() {\n    this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n  }\n\n  _onDataShift() {\n    this._sync(['_removeElements', 0, 1]);\n  }\n\n  _onDataSplice(start, count) {\n    if (count) {\n      this._sync(['_removeElements', start, count]);\n    }\n    const newCount = arguments.length - 2;\n    if (newCount) {\n      this._sync(['_insertElements', start, newCount]);\n    }\n  }\n\n  _onDataUnshift() {\n    this._sync(['_insertElements', 0, arguments.length]);\n  }\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {\n  _arrayUnique, isArray, isNullOrUndef,\n  valueOrDefault, resolveObjectKey, sign, defined\n} from '../helpers/index.js';\n\nfunction getAllScaleValues(scale, type) {\n  if (!scale._cache.$bar) {\n    const visibleMetas = scale.getMatchingVisibleMetas(type);\n    let values = [];\n\n    for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n      values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n    }\n    scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n  }\n  return scale._cache.$bar;\n}\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(meta) {\n  const scale = meta.iScale;\n  const values = getAllScaleValues(scale, meta.type);\n  let min = scale._length;\n  let i, ilen, curr, prev;\n  const updateMinAndPrev = () => {\n    if (curr === 32767 || curr === -32768) {\n      // Ignore truncated pixels\n      return;\n    }\n    if (defined(prev)) {\n      // curr - prev === 0 is ignored\n      min = Math.min(min, Math.abs(curr - prev) || min);\n    }\n    prev = curr;\n  };\n\n  for (i = 0, ilen = values.length; i < ilen; ++i) {\n    curr = scale.getPixelForValue(values[i]);\n    updateMinAndPrev();\n  }\n\n  prev = undefined;\n  for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n    curr = scale.getPixelForTick(i);\n    updateMinAndPrev();\n  }\n\n  return min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n  const thickness = options.barThickness;\n  let size, ratio;\n\n  if (isNullOrUndef(thickness)) {\n    size = ruler.min * options.categoryPercentage;\n    ratio = options.barPercentage;\n  } else {\n    // When bar thickness is enforced, category and bar percentages are ignored.\n    // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n    // and deprecate barPercentage since this value is ignored when thickness is absolute.\n    size = thickness * stackCount;\n    ratio = 1;\n  }\n\n  return {\n    chunk: size / stackCount,\n    ratio,\n    start: ruler.pixels[index] - (size / 2)\n  };\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n  const pixels = ruler.pixels;\n  const curr = pixels[index];\n  let prev = index > 0 ? pixels[index - 1] : null;\n  let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n  const percent = options.categoryPercentage;\n\n  if (prev === null) {\n    // first data: its size is double based on the next point or,\n    // if it's also the last data, we use the scale size.\n    prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n  }\n\n  if (next === null) {\n    // last data: its size is also double based on the previous point.\n    next = curr + curr - prev;\n  }\n\n  const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n  const size = Math.abs(next - prev) / 2 * percent;\n\n  return {\n    chunk: size / stackCount,\n    ratio: options.barPercentage,\n    start\n  };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n  const startValue = vScale.parse(entry[0], i);\n  const endValue = vScale.parse(entry[1], i);\n  const min = Math.min(startValue, endValue);\n  const max = Math.max(startValue, endValue);\n  let barStart = min;\n  let barEnd = max;\n\n  if (Math.abs(min) > Math.abs(max)) {\n    barStart = max;\n    barEnd = min;\n  }\n\n  // Store `barEnd` (furthest away from origin) as parsed value,\n  // to make stacking straight forward\n  item[vScale.axis] = barEnd;\n\n  item._custom = {\n    barStart,\n    barEnd,\n    start: startValue,\n    end: endValue,\n    min,\n    max\n  };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n  if (isArray(entry)) {\n    parseFloatBar(entry, item, vScale, i);\n  } else {\n    item[vScale.axis] = vScale.parse(entry, i);\n  }\n  return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n  const iScale = meta.iScale;\n  const vScale = meta.vScale;\n  const labels = iScale.getLabels();\n  const singleScale = iScale === vScale;\n  const parsed = [];\n  let i, ilen, item, entry;\n\n  for (i = start, ilen = start + count; i < ilen; ++i) {\n    entry = data[i];\n    item = {};\n    item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n    parsed.push(parseValue(entry, item, vScale, i));\n  }\n  return parsed;\n}\n\nfunction isFloatBar(custom) {\n  return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n  if (size !== 0) {\n    return sign(size);\n  }\n  return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n  let reverse, start, end, top, bottom;\n  if (properties.horizontal) {\n    reverse = properties.base > properties.x;\n    start = 'left';\n    end = 'right';\n  } else {\n    reverse = properties.base < properties.y;\n    start = 'bottom';\n    end = 'top';\n  }\n  if (reverse) {\n    top = 'end';\n    bottom = 'start';\n  } else {\n    top = 'start';\n    bottom = 'end';\n  }\n  return {start, end, reverse, top, bottom};\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n  let edge = options.borderSkipped;\n  const res = {};\n\n  if (!edge) {\n    properties.borderSkipped = res;\n    return;\n  }\n\n  if (edge === true) {\n    properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n    return;\n  }\n\n  const {start, end, reverse, top, bottom} = borderProps(properties);\n\n  if (edge === 'middle' && stack) {\n    properties.enableBorderRadius = true;\n    if ((stack._top || 0) === index) {\n      edge = top;\n    } else if ((stack._bottom || 0) === index) {\n      edge = bottom;\n    } else {\n      res[parseEdge(bottom, start, end, reverse)] = true;\n      edge = top;\n    }\n  }\n\n  res[parseEdge(edge, start, end, reverse)] = true;\n  properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n  if (reverse) {\n    edge = swap(edge, a, b);\n    edge = startEnd(edge, b, a);\n  } else {\n    edge = startEnd(edge, a, b);\n  }\n  return edge;\n}\n\nfunction swap(orig, v1, v2) {\n  return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n  return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n  properties.inflateAmount = inflateAmount === 'auto'\n    ? ratio === 1 ? 0.33 : 0\n    : inflateAmount;\n}\n\nexport default class BarController extends DatasetController {\n\n  static id = 'bar';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'bar',\n\n    categoryPercentage: 0.8,\n    barPercentage: 0.9,\n    grouped: true,\n\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'base', 'width', 'height']\n      }\n    }\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n    scales: {\n      _index_: {\n        type: 'category',\n        offset: true,\n        grid: {\n          offset: true\n        }\n      },\n      _value_: {\n        type: 'linear',\n        beginAtZero: true,\n      }\n    }\n  };\n\n\n  /**\n\t * Overriding primitive data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n  parsePrimitiveData(meta, data, start, count) {\n    return parseArrayOrPrimitive(meta, data, start, count);\n  }\n\n  /**\n\t * Overriding array data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n  parseArrayData(meta, data, start, count) {\n    return parseArrayOrPrimitive(meta, data, start, count);\n  }\n\n  /**\n\t * Overriding object data parsing since we support mixed primitive/array\n\t * value-scale data for float bars\n\t * @protected\n\t */\n  parseObjectData(meta, data, start, count) {\n    const {iScale, vScale} = meta;\n    const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n    const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n    const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n    const parsed = [];\n    let i, ilen, item, obj;\n    for (i = start, ilen = start + count; i < ilen; ++i) {\n      obj = data[i];\n      item = {};\n      item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n      parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n    }\n    return parsed;\n  }\n\n  /**\n\t * @protected\n\t */\n  updateRangeFromParsed(range, scale, parsed, stack) {\n    super.updateRangeFromParsed(range, scale, parsed, stack);\n    const custom = parsed._custom;\n    if (custom && scale === this._cachedMeta.vScale) {\n      // float bar: only one end of the bar is considered by `super`\n      range.min = Math.min(range.min, custom.min);\n      range.max = Math.max(range.max, custom.max);\n    }\n  }\n\n  /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n  getMaxOverflow() {\n    return 0;\n  }\n\n  /**\n\t * @protected\n\t */\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const {iScale, vScale} = meta;\n    const parsed = this.getParsed(index);\n    const custom = parsed._custom;\n    const value = isFloatBar(custom)\n      ? '[' + custom.start + ', ' + custom.end + ']'\n      : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n\n    return {\n      label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n      value\n    };\n  }\n\n  initialize() {\n    this.enableOptionSharing = true;\n\n    super.initialize();\n\n    const meta = this._cachedMeta;\n    meta.stack = this.getDataset().stack;\n  }\n\n  update(mode) {\n    const meta = this._cachedMeta;\n    this.updateElements(meta.data, 0, meta.data.length, mode);\n  }\n\n  updateElements(bars, start, count, mode) {\n    const reset = mode === 'reset';\n    const {index, _cachedMeta: {vScale}} = this;\n    const base = vScale.getBasePixel();\n    const horizontal = vScale.isHorizontal();\n    const ruler = this._getRuler();\n    const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n\n    for (let i = start; i < start + count; i++) {\n      const parsed = this.getParsed(i);\n      const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n      const ipixels = this._calculateBarIndexPixels(i, ruler);\n      const stack = (parsed._stacks || {})[vScale.axis];\n\n      const properties = {\n        horizontal,\n        base: vpixels.base,\n        enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n        x: horizontal ? vpixels.head : ipixels.center,\n        y: horizontal ? ipixels.center : vpixels.head,\n        height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n        width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n      };\n\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n      }\n      const options = properties.options || bars[i].options;\n      setBorderSkipped(properties, options, stack, index);\n      setInflateAmount(properties, options, ruler.ratio);\n      this.updateElement(bars[i], i, properties, mode);\n    }\n  }\n\n  /**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @param {number} [dataIndex] - The data index of the ruler\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n  _getStacks(last, dataIndex) {\n    const {iScale} = this._cachedMeta;\n    const metasets = iScale.getMatchingVisibleMetas(this._type)\n      .filter(meta => meta.controller.options.grouped);\n    const stacked = iScale.options.stacked;\n    const stacks = [];\n    const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n    const iScaleValue = currentParsed && currentParsed[iScale.axis];\n\n    const skipNull = (meta) => {\n      const parsed = meta._parsed.find(item => item[iScale.axis] === iScaleValue);\n      const val = parsed && parsed[meta.vScale.axis];\n\n      if (isNullOrUndef(val) || isNaN(val)) {\n        return true;\n      }\n    };\n\n    for (const meta of metasets) {\n      if (dataIndex !== undefined && skipNull(meta)) {\n        continue;\n      }\n\n      // stacked   | meta.stack\n      //           | found | not found | undefined\n      // false     |   x   |     x     |     x\n      // true      |       |     x     |\n      // undefined |       |     x     |     x\n      if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n        stacks.push(meta.stack);\n      }\n      if (meta.index === last) {\n        break;\n      }\n    }\n\n    // No stacks? that means there is no visible data. Let's still initialize an `undefined`\n    // stack where possible invisible bars will be located.\n    // https://github.com/chartjs/Chart.js/issues/6368\n    if (!stacks.length) {\n      stacks.push(undefined);\n    }\n\n    return stacks;\n  }\n\n  /**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n  _getStackCount(index) {\n    return this._getStacks(undefined, index).length;\n  }\n\n  _getAxisCount() {\n    return this._getAxis().length;\n  }\n\n  getFirstScaleIdForIndexAxis() {\n    const scales = this.chart.scales;\n    const indexScaleId = this.chart.options.indexAxis;\n    return Object.keys(scales).filter(key => scales[key].axis === indexScaleId).shift();\n  }\n\n  _getAxis() {\n    const axis = {};\n    const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n    for (const dataset of this.chart.data.datasets) {\n      axis[valueOrDefault(\n        this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId\n      )] = true;\n    }\n    return Object.keys(axis);\n  }\n\n  /**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n   * @param {number} [dataIndex]\n\t * @returns {number} The stack index\n\t * @private\n\t */\n  _getStackIndex(datasetIndex, name, dataIndex) {\n    const stacks = this._getStacks(datasetIndex, dataIndex);\n    const index = (name !== undefined)\n      ? stacks.indexOf(name)\n      : -1; // indexOf returns -1 if element is not present\n\n    return (index === -1)\n      ? stacks.length - 1\n      : index;\n  }\n\n  /**\n\t * @private\n\t */\n  _getRuler() {\n    const opts = this.options;\n    const meta = this._cachedMeta;\n    const iScale = meta.iScale;\n    const pixels = [];\n    let i, ilen;\n\n    for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n      pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n    }\n\n    const barThickness = opts.barThickness;\n    const min = barThickness || computeMinSampleSize(meta);\n\n    return {\n      min,\n      pixels,\n      start: iScale._startPixel,\n      end: iScale._endPixel,\n      stackCount: this._getStackCount(),\n      scale: iScale,\n      grouped: opts.grouped,\n      // bar thickness ratio used for non-grouped bars\n      ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n    };\n  }\n\n  /**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n  _calculateBarValuePixels(index) {\n    const {_cachedMeta: {vScale, _stacked, index: datasetIndex}, options: {base: baseValue, minBarLength}} = this;\n    const actualBase = baseValue || 0;\n    const parsed = this.getParsed(index);\n    const custom = parsed._custom;\n    const floating = isFloatBar(custom);\n    let value = parsed[vScale.axis];\n    let start = 0;\n    let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n    let head, size;\n\n    if (length !== value) {\n      start = length - value;\n      length = value;\n    }\n\n    if (floating) {\n      value = custom.barStart;\n      length = custom.barEnd - custom.barStart;\n      // bars crossing origin are not stacked\n      if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n        start = 0;\n      }\n      start += value;\n    }\n\n    const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n    let base = vScale.getPixelForValue(startValue);\n\n    if (this.chart.getDataVisibility(index)) {\n      head = vScale.getPixelForValue(start + length);\n    } else {\n      // When not visible, no height\n      head = base;\n    }\n\n    size = head - base;\n\n    if (Math.abs(size) < minBarLength) {\n      size = barSign(size, vScale, actualBase) * minBarLength;\n      if (value === actualBase) {\n        base -= size / 2;\n      }\n      const startPixel = vScale.getPixelForDecimal(0);\n      const endPixel = vScale.getPixelForDecimal(1);\n      const min = Math.min(startPixel, endPixel);\n      const max = Math.max(startPixel, endPixel);\n      base = Math.max(Math.min(base, max), min);\n      head = base + size;\n\n      if (_stacked && !floating) {\n        // visual data coordinates after applying minBarLength\n        parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n      }\n    }\n\n    if (base === vScale.getPixelForValue(actualBase)) {\n      const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n      base += halfGrid;\n      size -= halfGrid;\n    }\n\n    return {\n      size,\n      base,\n      head,\n      center: head + size / 2\n    };\n  }\n\n  /**\n\t * @private\n\t */\n  _calculateBarIndexPixels(index, ruler) {\n    const scale = ruler.scale;\n    const options = this.options;\n    const skipNull = options.skipNull;\n    const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n    let center, size;\n    const axisCount = this._getAxisCount();\n    if (ruler.grouped) {\n      const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n      const range = options.barThickness === 'flex'\n        ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount)\n        : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n      const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n      const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n      const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n      center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n      size = Math.min(maxBarThickness, range.chunk * range.ratio);\n    } else {\n      // For non-grouped bar charts, exact pixel values are used\n      center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n      size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n    }\n\n\n    return {\n      base: center - size / 2,\n      head: center + size / 2,\n      center,\n      size\n    };\n  }\n\n  draw() {\n    const meta = this._cachedMeta;\n    const vScale = meta.vScale;\n    const rects = meta.data;\n    const ilen = rects.length;\n    let i = 0;\n\n    for (; i < ilen; ++i) {\n      if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n        rects[i].draw(this._ctx);\n      }\n    }\n  }\n\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {valueOrDefault} from '../helpers/helpers.core.js';\n\nexport default class BubbleController extends DatasetController {\n\n  static id = 'bubble';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'point',\n\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'borderWidth', 'radius']\n      }\n    }\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n    scales: {\n      x: {\n        type: 'linear'\n      },\n      y: {\n        type: 'linear'\n      }\n    }\n  };\n\n  initialize() {\n    this.enableOptionSharing = true;\n    super.initialize();\n  }\n\n  /**\n\t * Parse array of primitive values\n\t * @protected\n\t */\n  parsePrimitiveData(meta, data, start, count) {\n    const parsed = super.parsePrimitiveData(meta, data, start, count);\n    for (let i = 0; i < parsed.length; i++) {\n      parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n    }\n    return parsed;\n  }\n\n  /**\n\t * Parse array of arrays\n\t * @protected\n\t */\n  parseArrayData(meta, data, start, count) {\n    const parsed = super.parseArrayData(meta, data, start, count);\n    for (let i = 0; i < parsed.length; i++) {\n      const item = data[start + i];\n      parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n    }\n    return parsed;\n  }\n\n  /**\n\t * Parse array of objects\n\t * @protected\n\t */\n  parseObjectData(meta, data, start, count) {\n    const parsed = super.parseObjectData(meta, data, start, count);\n    for (let i = 0; i < parsed.length; i++) {\n      const item = data[start + i];\n      parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n    }\n    return parsed;\n  }\n\n  /**\n\t * @protected\n\t */\n  getMaxOverflow() {\n    const data = this._cachedMeta.data;\n\n    let max = 0;\n    for (let i = data.length - 1; i >= 0; --i) {\n      max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n    }\n    return max > 0 && max;\n  }\n\n  /**\n\t * @protected\n\t */\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const labels = this.chart.data.labels || [];\n    const {xScale, yScale} = meta;\n    const parsed = this.getParsed(index);\n    const x = xScale.getLabelForValue(parsed.x);\n    const y = yScale.getLabelForValue(parsed.y);\n    const r = parsed._custom;\n\n    return {\n      label: labels[index] || '',\n      value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n    };\n  }\n\n  update(mode) {\n    const points = this._cachedMeta.data;\n\n    // Update Points\n    this.updateElements(points, 0, points.length, mode);\n  }\n\n  updateElements(points, start, count, mode) {\n    const reset = mode === 'reset';\n    const {iScale, vScale} = this._cachedMeta;\n    const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n\n    for (let i = start; i < start + count; i++) {\n      const point = points[i];\n      const parsed = !reset && this.getParsed(i);\n      const properties = {};\n      const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n      const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n\n      properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n        if (reset) {\n          properties.options.radius = 0;\n        }\n      }\n\n      this.updateElement(point, i, properties, mode);\n    }\n  }\n\n  /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n  resolveDataElementOptions(index, mode) {\n    const parsed = this.getParsed(index);\n    let values = super.resolveDataElementOptions(index, mode);\n\n    // In case values were cached (and thus frozen), we need to clone the values\n    if (values.$shared) {\n      values = Object.assign({}, values, {$shared: false});\n    }\n\n    // Custom radius resolution\n    const radius = values.radius;\n    if (mode !== 'active') {\n      values.radius = 0;\n    }\n    values.radius += valueOrDefault(parsed && parsed._custom, radius);\n\n    return values;\n  }\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {isObject, resolveObjectKey, toPercentage, toDimension, valueOrDefault} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {toRadians, PI, TAU, HALF_PI, _angleBetween} from '../helpers/helpers.math.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n  let ratioX = 1;\n  let ratioY = 1;\n  let offsetX = 0;\n  let offsetY = 0;\n  // If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n  if (circumference < TAU) {\n    const startAngle = rotation;\n    const endAngle = startAngle + circumference;\n    const startX = Math.cos(startAngle);\n    const startY = Math.sin(startAngle);\n    const endX = Math.cos(endAngle);\n    const endY = Math.sin(endAngle);\n    const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n    const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n    const maxX = calcMax(0, startX, endX);\n    const maxY = calcMax(HALF_PI, startY, endY);\n    const minX = calcMin(PI, startX, endX);\n    const minY = calcMin(PI + HALF_PI, startY, endY);\n    ratioX = (maxX - minX) / 2;\n    ratioY = (maxY - minY) / 2;\n    offsetX = -(maxX + minX) / 2;\n    offsetY = -(maxY + minY) / 2;\n  }\n  return {ratioX, ratioY, offsetX, offsetY};\n}\n\nexport default class DoughnutController extends DatasetController {\n\n  static id = 'doughnut';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'arc',\n    animation: {\n      // Boolean - Whether we animate the rotation of the Doughnut\n      animateRotate: true,\n      // Boolean - Whether we animate scaling the Doughnut from the centre\n      animateScale: false\n    },\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n      },\n    },\n    // The percentage of the chart that we cut out of the middle.\n    cutout: '50%',\n\n    // The rotation of the chart, where the first data arc begins.\n    rotation: 0,\n\n    // The total circumference of the chart.\n    circumference: 360,\n\n    // The outer radius of the chart\n    radius: '100%',\n\n    // Spacing between arcs\n    spacing: 0,\n\n    indexAxis: 'r',\n  };\n\n  static descriptors = {\n    _scriptable: (name) => name !== 'spacing',\n    _indexable: (name) => name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash'),\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n    aspectRatio: 1,\n\n    // Need to override these to give a nice default\n    plugins: {\n      legend: {\n        labels: {\n          generateLabels(chart) {\n            const data = chart.data;\n            const {labels: {pointStyle, textAlign, color, useBorderRadius, borderRadius}} = chart.legend.options;\n            if (data.labels.length && data.datasets.length) {\n              return data.labels.map((label, i) => {\n                const meta = chart.getDatasetMeta(0);\n                const style = meta.controller.getStyle(i);\n\n                return {\n                  text: label,\n                  fillStyle: style.backgroundColor,\n                  fontColor: color,\n                  hidden: !chart.getDataVisibility(i),\n                  lineDash: style.borderDash,\n                  lineDashOffset: style.borderDashOffset,\n                  lineJoin: style.borderJoinStyle,\n                  lineWidth: style.borderWidth,\n                  strokeStyle: style.borderColor,\n                  textAlign: textAlign,\n                  pointStyle: pointStyle,\n                  borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n                  // Extra data used for toggling the correct item\n                  index: i\n                };\n              });\n            }\n            return [];\n          }\n        },\n\n        onClick(e, legendItem, legend) {\n          legend.chart.toggleDataVisibility(legendItem.index);\n          legend.chart.update();\n        }\n      }\n    }\n  };\n\n  constructor(chart, datasetIndex) {\n    super(chart, datasetIndex);\n\n    this.enableOptionSharing = true;\n    this.innerRadius = undefined;\n    this.outerRadius = undefined;\n    this.offsetX = undefined;\n    this.offsetY = undefined;\n  }\n\n  linkScales() {}\n\n  /**\n\t * Override data parsing, since we are not using scales\n\t */\n  parse(start, count) {\n    const data = this.getDataset().data;\n    const meta = this._cachedMeta;\n\n    if (this._parsing === false) {\n      meta._parsed = data;\n    } else {\n      let getter = (i) => +data[i];\n\n      if (isObject(data[start])) {\n        const {key = 'value'} = this._parsing;\n        getter = (i) => +resolveObjectKey(data[i], key);\n      }\n\n      let i, ilen;\n      for (i = start, ilen = start + count; i < ilen; ++i) {\n        meta._parsed[i] = getter(i);\n      }\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _getRotation() {\n    return toRadians(this.options.rotation - 90);\n  }\n\n  /**\n\t * @private\n\t */\n  _getCircumference() {\n    return toRadians(this.options.circumference);\n  }\n\n  /**\n\t * Get the maximal rotation & circumference extents\n\t * across all visible datasets.\n\t */\n  _getRotationExtents() {\n    let min = TAU;\n    let max = -TAU;\n\n    for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n      if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n        const controller = this.chart.getDatasetMeta(i).controller;\n        const rotation = controller._getRotation();\n        const circumference = controller._getCircumference();\n\n        min = Math.min(min, rotation);\n        max = Math.max(max, rotation + circumference);\n      }\n    }\n\n    return {\n      rotation: min,\n      circumference: max - min,\n    };\n  }\n\n  /**\n\t * @param {string} mode\n\t */\n  update(mode) {\n    const chart = this.chart;\n    const {chartArea} = chart;\n    const meta = this._cachedMeta;\n    const arcs = meta.data;\n    const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n    const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n    const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n    const chartWeight = this._getRingWeight(this.index);\n\n    // Compute the maximal rotation & circumference limits.\n    // If we only consider our dataset, this can cause problems when two datasets\n    // are both less than a circle with different rotations (starting angles)\n    const {circumference, rotation} = this._getRotationExtents();\n    const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n    const maxWidth = (chartArea.width - spacing) / ratioX;\n    const maxHeight = (chartArea.height - spacing) / ratioY;\n    const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n    const outerRadius = toDimension(this.options.radius, maxRadius);\n    const innerRadius = Math.max(outerRadius * cutout, 0);\n    const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n    this.offsetX = offsetX * outerRadius;\n    this.offsetY = offsetY * outerRadius;\n\n    meta.total = this.calculateTotal();\n\n    this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n    this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n\n    this.updateElements(arcs, 0, arcs.length, mode);\n  }\n\n  /**\n   * @private\n   */\n  _circumference(i, reset) {\n    const opts = this.options;\n    const meta = this._cachedMeta;\n    const circumference = this._getCircumference();\n    if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n      return 0;\n    }\n    return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n  }\n\n  updateElements(arcs, start, count, mode) {\n    const reset = mode === 'reset';\n    const chart = this.chart;\n    const chartArea = chart.chartArea;\n    const opts = chart.options;\n    const animationOpts = opts.animation;\n    const centerX = (chartArea.left + chartArea.right) / 2;\n    const centerY = (chartArea.top + chartArea.bottom) / 2;\n    const animateScale = reset && animationOpts.animateScale;\n    const innerRadius = animateScale ? 0 : this.innerRadius;\n    const outerRadius = animateScale ? 0 : this.outerRadius;\n    const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n    let startAngle = this._getRotation();\n    let i;\n\n    for (i = 0; i < start; ++i) {\n      startAngle += this._circumference(i, reset);\n    }\n\n    for (i = start; i < start + count; ++i) {\n      const circumference = this._circumference(i, reset);\n      const arc = arcs[i];\n      const properties = {\n        x: centerX + this.offsetX,\n        y: centerY + this.offsetY,\n        startAngle,\n        endAngle: startAngle + circumference,\n        circumference,\n        outerRadius,\n        innerRadius\n      };\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n      }\n      startAngle += circumference;\n\n      this.updateElement(arc, i, properties, mode);\n    }\n  }\n\n  calculateTotal() {\n    const meta = this._cachedMeta;\n    const metaData = meta.data;\n    let total = 0;\n    let i;\n\n    for (i = 0; i < metaData.length; i++) {\n      const value = meta._parsed[i];\n      if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n        total += Math.abs(value);\n      }\n    }\n\n    return total;\n  }\n\n  calculateCircumference(value) {\n    const total = this._cachedMeta.total;\n    if (total > 0 && !isNaN(value)) {\n      return TAU * (Math.abs(value) / total);\n    }\n    return 0;\n  }\n\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const chart = this.chart;\n    const labels = chart.data.labels || [];\n    const value = formatNumber(meta._parsed[index], chart.options.locale);\n\n    return {\n      label: labels[index] || '',\n      value,\n    };\n  }\n\n  getMaxBorderWidth(arcs) {\n    let max = 0;\n    const chart = this.chart;\n    let i, ilen, meta, controller, options;\n\n    if (!arcs) {\n      // Find the outmost visible dataset\n      for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n        if (chart.isDatasetVisible(i)) {\n          meta = chart.getDatasetMeta(i);\n          arcs = meta.data;\n          controller = meta.controller;\n          break;\n        }\n      }\n    }\n\n    if (!arcs) {\n      return 0;\n    }\n\n    for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n      options = controller.resolveDataElementOptions(i);\n      if (options.borderAlign !== 'inner') {\n        max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n      }\n    }\n    return max;\n  }\n\n  getMaxOffset(arcs) {\n    let max = 0;\n\n    for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n      const options = this.resolveDataElementOptions(i);\n      max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n    }\n    return max;\n  }\n\n  /**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n  _getRingWeightOffset(datasetIndex) {\n    let ringWeightOffset = 0;\n\n    for (let i = 0; i < datasetIndex; ++i) {\n      if (this.chart.isDatasetVisible(i)) {\n        ringWeightOffset += this._getRingWeight(i);\n      }\n    }\n\n    return ringWeightOffset;\n  }\n\n  /**\n\t * @private\n\t */\n  _getRingWeight(datasetIndex) {\n    return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n  }\n\n  /**\n\t * Returns the sum of all visible data set weights.\n\t * @private\n\t */\n  _getVisibleDatasetWeightTotal() {\n    return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n  }\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class LineController extends DatasetController {\n\n  static id = 'line';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    datasetElementType: 'line',\n    dataElementType: 'point',\n\n    showLine: true,\n    spanGaps: false,\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n    scales: {\n      _index_: {\n        type: 'category',\n      },\n      _value_: {\n        type: 'linear',\n      },\n    }\n  };\n\n  initialize() {\n    this.enableOptionSharing = true;\n    this.supportsDecimation = true;\n    super.initialize();\n  }\n\n  update(mode) {\n    const meta = this._cachedMeta;\n    const {dataset: line, data: points = [], _dataset} = meta;\n    // @ts-ignore\n    const animationsDisabled = this.chart._animationsDisabled;\n    let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n    this._drawStart = start;\n    this._drawCount = count;\n\n    if (_scaleRangesChanged(meta)) {\n      start = 0;\n      count = points.length;\n    }\n\n    // Update Line\n    line._chart = this.chart;\n    line._datasetIndex = this.index;\n    line._decimated = !!_dataset._decimated;\n    line.points = points;\n\n    const options = this.resolveDatasetElementOptions(mode);\n    if (!this.options.showLine) {\n      options.borderWidth = 0;\n    }\n    options.segment = this.options.segment;\n    this.updateElement(line, undefined, {\n      animated: !animationsDisabled,\n      options\n    }, mode);\n\n    // Update Points\n    this.updateElements(points, start, count, mode);\n  }\n\n  updateElements(points, start, count, mode) {\n    const reset = mode === 'reset';\n    const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n    const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const {spanGaps, segment} = this.options;\n    const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n    const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n    const end = start + count;\n    const pointsCount = points.length;\n    let prevParsed = start > 0 && this.getParsed(start - 1);\n\n    for (let i = 0; i < pointsCount; ++i) {\n      const point = points[i];\n      const properties = directUpdate ? point : {};\n\n      if (i < start || i >= end) {\n        properties.skip = true;\n        continue;\n      }\n\n      const parsed = this.getParsed(i);\n      const nullData = isNullOrUndef(parsed[vAxis]);\n      const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n      const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n      properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n      properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n      if (segment) {\n        properties.parsed = parsed;\n        properties.raw = _dataset.data[i];\n      }\n\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n      }\n\n      if (!directUpdate) {\n        this.updateElement(point, i, properties, mode);\n      }\n\n      prevParsed = parsed;\n    }\n  }\n\n  /**\n\t * @protected\n\t */\n  getMaxOverflow() {\n    const meta = this._cachedMeta;\n    const dataset = meta.dataset;\n    const border = dataset.options && dataset.options.borderWidth || 0;\n    const data = meta.data || [];\n    if (!data.length) {\n      return border;\n    }\n    const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n    const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n    return Math.max(border, firstPoint, lastPoint) / 2;\n  }\n\n  draw() {\n    const meta = this._cachedMeta;\n    meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n    super.draw();\n  }\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {toRadians, PI, formatNumber, _parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class PolarAreaController extends DatasetController {\n\n  static id = 'polarArea';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    dataElementType: 'arc',\n    animation: {\n      animateRotate: true,\n      animateScale: true\n    },\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n      },\n    },\n    indexAxis: 'r',\n    startAngle: 0,\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n    aspectRatio: 1,\n\n    plugins: {\n      legend: {\n        labels: {\n          generateLabels(chart) {\n            const data = chart.data;\n            if (data.labels.length && data.datasets.length) {\n              const {labels: {pointStyle, color}} = chart.legend.options;\n\n              return data.labels.map((label, i) => {\n                const meta = chart.getDatasetMeta(0);\n                const style = meta.controller.getStyle(i);\n\n                return {\n                  text: label,\n                  fillStyle: style.backgroundColor,\n                  strokeStyle: style.borderColor,\n                  fontColor: color,\n                  lineWidth: style.borderWidth,\n                  pointStyle: pointStyle,\n                  hidden: !chart.getDataVisibility(i),\n\n                  // Extra data used for toggling the correct item\n                  index: i\n                };\n              });\n            }\n            return [];\n          }\n        },\n\n        onClick(e, legendItem, legend) {\n          legend.chart.toggleDataVisibility(legendItem.index);\n          legend.chart.update();\n        }\n      }\n    },\n\n    scales: {\n      r: {\n        type: 'radialLinear',\n        angleLines: {\n          display: false\n        },\n        beginAtZero: true,\n        grid: {\n          circular: true\n        },\n        pointLabels: {\n          display: false\n        },\n        startAngle: 0\n      }\n    }\n  };\n\n  constructor(chart, datasetIndex) {\n    super(chart, datasetIndex);\n\n    this.innerRadius = undefined;\n    this.outerRadius = undefined;\n  }\n\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const chart = this.chart;\n    const labels = chart.data.labels || [];\n    const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n\n    return {\n      label: labels[index] || '',\n      value,\n    };\n  }\n\n  parseObjectData(meta, data, start, count) {\n    return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n  }\n\n  update(mode) {\n    const arcs = this._cachedMeta.data;\n\n    this._updateRadius();\n    this.updateElements(arcs, 0, arcs.length, mode);\n  }\n\n  /**\n   * @protected\n   */\n  getMinMax() {\n    const meta = this._cachedMeta;\n    const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n\n    meta.data.forEach((element, index) => {\n      const parsed = this.getParsed(index).r;\n\n      if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n        if (parsed < range.min) {\n          range.min = parsed;\n        }\n\n        if (parsed > range.max) {\n          range.max = parsed;\n        }\n      }\n    });\n\n    return range;\n  }\n\n  /**\n\t * @private\n\t */\n  _updateRadius() {\n    const chart = this.chart;\n    const chartArea = chart.chartArea;\n    const opts = chart.options;\n    const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n    const outerRadius = Math.max(minSize / 2, 0);\n    const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n    const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n\n    this.outerRadius = outerRadius - (radiusLength * this.index);\n    this.innerRadius = this.outerRadius - radiusLength;\n  }\n\n  updateElements(arcs, start, count, mode) {\n    const reset = mode === 'reset';\n    const chart = this.chart;\n    const opts = chart.options;\n    const animationOpts = opts.animation;\n    const scale = this._cachedMeta.rScale;\n    const centerX = scale.xCenter;\n    const centerY = scale.yCenter;\n    const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n    let angle = datasetStartAngle;\n    let i;\n\n    const defaultAngle = 360 / this.countVisibleElements();\n\n    for (i = 0; i < start; ++i) {\n      angle += this._computeAngle(i, mode, defaultAngle);\n    }\n    for (i = start; i < start + count; i++) {\n      const arc = arcs[i];\n      let startAngle = angle;\n      let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n      let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n      angle = endAngle;\n\n      if (reset) {\n        if (animationOpts.animateScale) {\n          outerRadius = 0;\n        }\n        if (animationOpts.animateRotate) {\n          startAngle = endAngle = datasetStartAngle;\n        }\n      }\n\n      const properties = {\n        x: centerX,\n        y: centerY,\n        innerRadius: 0,\n        outerRadius,\n        startAngle,\n        endAngle,\n        options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n      };\n\n      this.updateElement(arc, i, properties, mode);\n    }\n  }\n\n  countVisibleElements() {\n    const meta = this._cachedMeta;\n    let count = 0;\n\n    meta.data.forEach((element, index) => {\n      if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n        count++;\n      }\n    });\n\n    return count;\n  }\n\n  /**\n\t * @private\n\t */\n  _computeAngle(index, mode, defaultAngle) {\n    return this.chart.getDataVisibility(index)\n      ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n      : 0;\n  }\n}\n", "import DoughnutController from './controller.doughnut.js';\n\n// Pie charts are Doughnut chart with different defaults\nexport default class PieController extends DoughnutController {\n\n  static id = 'pie';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    // The percentage of the chart that we cut out of the middle.\n    cutout: 0,\n\n    // The rotation of the chart, where the first data arc begins.\n    rotation: 0,\n\n    // The total circumference of the chart.\n    circumference: 360,\n\n    // The outer radius of the chart\n    radius: '100%'\n  };\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {_parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class RadarController extends DatasetController {\n\n  static id = 'radar';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    datasetElementType: 'line',\n    dataElementType: 'point',\n    indexAxis: 'r',\n    showLine: true,\n    elements: {\n      line: {\n        fill: 'start'\n      }\n    },\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n    aspectRatio: 1,\n\n    scales: {\n      r: {\n        type: 'radialLinear',\n      }\n    }\n  };\n\n  /**\n\t * @protected\n\t */\n  getLabelAndValue(index) {\n    const vScale = this._cachedMeta.vScale;\n    const parsed = this.getParsed(index);\n\n    return {\n      label: vScale.getLabels()[index],\n      value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n    };\n  }\n\n  parseObjectData(meta, data, start, count) {\n    return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n  }\n\n  update(mode) {\n    const meta = this._cachedMeta;\n    const line = meta.dataset;\n    const points = meta.data || [];\n    const labels = meta.iScale.getLabels();\n\n    // Update Line\n    line.points = points;\n    // In resize mode only point locations change, so no need to set the points or options.\n    if (mode !== 'resize') {\n      const options = this.resolveDatasetElementOptions(mode);\n      if (!this.options.showLine) {\n        options.borderWidth = 0;\n      }\n\n      const properties = {\n        _loop: true,\n        _fullLoop: labels.length === points.length,\n        options\n      };\n\n      this.updateElement(line, undefined, properties, mode);\n    }\n\n    // Update Points\n    this.updateElements(points, 0, points.length, mode);\n  }\n\n  updateElements(points, start, count, mode) {\n    const scale = this._cachedMeta.rScale;\n    const reset = mode === 'reset';\n\n    for (let i = start; i < start + count; i++) {\n      const point = points[i];\n      const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n      const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n\n      const x = reset ? scale.xCenter : pointPosition.x;\n      const y = reset ? scale.yCenter : pointPosition.y;\n\n      const properties = {\n        x,\n        y,\n        angle: pointPosition.angle,\n        skip: isNaN(x) || isNaN(y),\n        options\n      };\n\n      this.updateElement(point, i, properties, mode);\n    }\n  }\n}\n", "import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class ScatterController extends DatasetController {\n\n  static id = 'scatter';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'point',\n    showLine: false,\n    fill: false\n  };\n\n  /**\n   * @type {any}\n   */\n  static overrides = {\n\n    interaction: {\n      mode: 'point'\n    },\n\n    scales: {\n      x: {\n        type: 'linear'\n      },\n      y: {\n        type: 'linear'\n      }\n    }\n  };\n\n  /**\n\t * @protected\n\t */\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const labels = this.chart.data.labels || [];\n    const {xScale, yScale} = meta;\n    const parsed = this.getParsed(index);\n    const x = xScale.getLabelForValue(parsed.x);\n    const y = yScale.getLabelForValue(parsed.y);\n\n    return {\n      label: labels[index] || '',\n      value: '(' + x + ', ' + y + ')'\n    };\n  }\n\n  update(mode) {\n    const meta = this._cachedMeta;\n    const {data: points = []} = meta;\n    // @ts-ignore\n    const animationsDisabled = this.chart._animationsDisabled;\n    let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n    this._drawStart = start;\n    this._drawCount = count;\n\n    if (_scaleRangesChanged(meta)) {\n      start = 0;\n      count = points.length;\n    }\n\n    if (this.options.showLine) {\n\n      // https://github.com/chartjs/Chart.js/issues/11333\n      if (!this.datasetElementType) {\n        this.addElements();\n      }\n      const {dataset: line, _dataset} = meta;\n\n      // Update Line\n      line._chart = this.chart;\n      line._datasetIndex = this.index;\n      line._decimated = !!_dataset._decimated;\n      line.points = points;\n\n      const options = this.resolveDatasetElementOptions(mode);\n      options.segment = this.options.segment;\n      this.updateElement(line, undefined, {\n        animated: !animationsDisabled,\n        options\n      }, mode);\n    } else if (this.datasetElementType) {\n      // https://github.com/chartjs/Chart.js/issues/11333\n      delete meta.dataset;\n      this.datasetElementType = false;\n    }\n\n    // Update Points\n    this.updateElements(points, start, count, mode);\n  }\n\n  addElements() {\n    const {showLine} = this.options;\n\n    if (!this.datasetElementType && showLine) {\n      this.datasetElementType = this.chart.registry.getElement('line');\n    }\n\n    super.addElements();\n  }\n\n  updateElements(points, start, count, mode) {\n    const reset = mode === 'reset';\n    const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n    const firstOpts = this.resolveDataElementOptions(start, mode);\n    const sharedOptions = this.getSharedOptions(firstOpts);\n    const includeOptions = this.includeOptions(mode, sharedOptions);\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const {spanGaps, segment} = this.options;\n    const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n    const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n    let prevParsed = start > 0 && this.getParsed(start - 1);\n\n    for (let i = start; i < start + count; ++i) {\n      const point = points[i];\n      const parsed = this.getParsed(i);\n      const properties = directUpdate ? point : {};\n      const nullData = isNullOrUndef(parsed[vAxis]);\n      const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n      const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n      properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n      properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n      if (segment) {\n        properties.parsed = parsed;\n        properties.raw = _dataset.data[i];\n      }\n\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n      }\n\n      if (!directUpdate) {\n        this.updateElement(point, i, properties, mode);\n      }\n\n      prevParsed = parsed;\n    }\n\n    this.updateSharedOptions(sharedOptions, mode, firstOpts);\n  }\n\n  /**\n\t * @protected\n\t */\n  getMaxOverflow() {\n    const meta = this._cachedMeta;\n    const data = meta.data || [];\n\n    if (!this.options.showLine) {\n      let max = 0;\n      for (let i = data.length - 1; i >= 0; --i) {\n        max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n      }\n      return max > 0 && max;\n    }\n\n    const dataset = meta.dataset;\n    const border = dataset.options && dataset.options.borderWidth || 0;\n\n    if (!data.length) {\n      return border;\n    }\n\n    const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n    const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n    return Math.max(border, firstPoint, lastPoint) / 2;\n  }\n}\n", "/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartOptions} from '../types/index.js';\n\nexport type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\n\nexport interface DateAdapter<T extends AnyObject = AnyObject> {\n  readonly options: T;\n  /**\n   * Will called with chart options after adapter creation.\n   */\n  init(this: DateAdapter<T>, chartOptions: ChartOptions): void;\n  /**\n   * Returns a map of time formats for the supported formatting units defined\n   * in Unit as well as 'datetime' representing a detailed date/time string.\n   */\n  formats(this: DateAdapter<T>): Record<TimeUnit | 'datetime', string>;\n  /**\n   * Parses the given `value` and return the associated timestamp.\n   * @param value - the value to parse (usually comes from the data)\n   * @param [format] - the expected data format\n   */\n  parse(this: DateAdapter<T>, value: unknown, format?: string): number | null;\n  /**\n   * Returns the formatted date in the specified `format` for a given `timestamp`.\n   * @param timestamp - the timestamp to format\n   * @param format - the date/time token\n   */\n  format(this: DateAdapter<T>, timestamp: number, format: string): string;\n  /**\n   * Adds the specified `amount` of `unit` to the given `timestamp`.\n   * @param timestamp - the input timestamp\n   * @param amount - the amount to add\n   * @param unit - the unit as string\n   */\n  add(this: DateAdapter<T>, timestamp: number, amount: number, unit: TimeUnit): number;\n  /**\n   * Returns the number of `unit` between the given timestamps.\n   * @param a - the input timestamp (reference)\n   * @param b - the timestamp to subtract\n   * @param unit - the unit as string\n   */\n  diff(this: DateAdapter<T>, a: number, b: number, unit: TimeUnit): number;\n  /**\n   * Returns start of `unit` for the given `timestamp`.\n   * @param timestamp - the input timestamp\n   * @param unit - the unit as string\n   * @param [weekday] - the ISO day of the week with 1 being Monday\n   * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n   */\n  startOf(this: DateAdapter<T>, timestamp: number, unit: TimeUnit | 'isoWeek', weekday?: number | boolean): number;\n  /**\n   * Returns end of `unit` for the given `timestamp`.\n   * @param timestamp - the input timestamp\n   * @param unit - the unit as string\n   */\n  endOf(this: DateAdapter<T>, timestamp: number, unit: TimeUnit): number;\n}\n\nfunction abstract<T = void>(): T {\n  throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase implements DateAdapter {\n\n  /**\n   * Override default date adapter methods.\n   * Accepts type parameter to define options type.\n   * @example\n   * Chart._adapters._date.override<{myAdapterOption: string}>({\n   *   init() {\n   *     console.log(this.options.myAdapterOption);\n   *   }\n   * })\n   */\n  static override<T extends AnyObject = AnyObject>(\n    members: Partial<Omit<DateAdapter<T>, 'options'>>\n  ) {\n    Object.assign(DateAdapterBase.prototype, members);\n  }\n\n  readonly options: AnyObject;\n\n  constructor(options?: AnyObject) {\n    this.options = options || {};\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  init() {}\n\n  formats(): Record<TimeUnit | 'datetime', string> {\n    return abstract();\n  }\n\n  parse(): number | null {\n    return abstract();\n  }\n\n  format(): string {\n    return abstract();\n  }\n\n  add(): number {\n    return abstract();\n  }\n\n  diff(): number {\n    return abstract();\n  }\n\n  startOf(): number {\n    return abstract();\n  }\n\n  endOf(): number {\n    return abstract();\n  }\n}\n\nexport default {\n  _date: DateAdapterBase as {\n    new (options?: AnyObject): DateAdapter;\n    override<T extends AnyObject = AnyObject>(\n      members: Partial<Omit<DateAdapter<T>, 'options'>>\n    ): void;\n  }\n};\n", "import {_lookupByKey, _rlookupByKey} from '../helpers/helpers.collection.js';\nimport {getRelativePosition} from '../helpers/helpers.dom.js';\nimport {_angleBetween, getAngleFromPoint} from '../helpers/helpers.math.js';\nimport {_isPointInArea, isNullOrUndef} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef {{axis?: string, intersect?: boolean, includeInvisible?: boolean}} InteractionOptions\n * @typedef {{datasetIndex: number, index: number, element: import('./core.element.js').default}} InteractionItem\n * @typedef { import('../types/index.js').Point } Point\n */\n\n/**\n * Helper function to do binary search when possible\n * @param {object} metaset - the dataset meta\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {number} value - the value to find\n * @param {boolean} [intersect] - should the element intersect\n * @returns {{lo:number, hi:number}} indices to search data array between\n */\nfunction binarySearch(metaset, axis, value, intersect) {\n  const {controller, data, _sorted} = metaset;\n  const iScale = controller._cachedMeta.iScale;\n  const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n\n  if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n    const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n    if (!intersect) {\n      const result = lookupMethod(data, axis, value);\n      if (spanGaps) {\n        const {vScale} = controller._cachedMeta;\n        const {_parsed} = metaset;\n\n        const distanceToDefinedLo = (_parsed\n          .slice(0, result.lo + 1)\n          .reverse()\n          .findIndex(\n            point => !isNullOrUndef(point[vScale.axis])));\n        result.lo -= Math.max(0, distanceToDefinedLo);\n\n        const distanceToDefinedHi = (_parsed\n          .slice(result.hi)\n          .findIndex(\n            point => !isNullOrUndef(point[vScale.axis])));\n        result.hi += Math.max(0, distanceToDefinedHi);\n      }\n      return result;\n    } else if (controller._sharedOptions) {\n      // _sharedOptions indicates that each element has equal options -> equal proportions\n      // So we can do a ranged binary search based on the range of first element and\n      // be confident to get the full range of indices that can intersect with the value.\n      const el = data[0];\n      const range = typeof el.getRange === 'function' && el.getRange(axis);\n      if (range) {\n        const start = lookupMethod(data, axis, value - range);\n        const end = lookupMethod(data, axis, value + range);\n        return {lo: start.lo, hi: end.hi};\n      }\n    }\n  }\n  // Default to all elements, when binary search can not be used.\n  return {lo: 0, hi: data.length - 1};\n}\n\n/**\n * Helper function to select candidate elements for interaction\n * @param {Chart} chart - the chart\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {function} handler - the callback to execute for each visible item\n * @param {boolean} [intersect] - consider intersecting items\n */\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n  const metasets = chart.getSortedVisibleDatasetMetas();\n  const value = position[axis];\n  for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n    const {index, data} = metasets[i];\n    const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n    for (let j = lo; j <= hi; ++j) {\n      const element = data[j];\n      if (!element.skip) {\n        handler(element, index, j);\n      }\n    }\n  }\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy|r\n */\nfunction getDistanceMetricForAxis(axis) {\n  const useX = axis.indexOf('x') !== -1;\n  const useY = axis.indexOf('y') !== -1;\n\n  return function(pt1, pt2) {\n    const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n    const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n    return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n  };\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {Chart} chart - the chart\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n  const items = [];\n\n  if (!includeInvisible && !chart.isPointInArea(position)) {\n    return items;\n  }\n\n  const evaluationFunc = function(element, datasetIndex, index) {\n    if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n      return;\n    }\n    if (element.inRange(position.x, position.y, useFinalPosition)) {\n      items.push({element, datasetIndex, index});\n    }\n  };\n\n  evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n  return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a radial chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n  let items = [];\n\n  function evaluationFunc(element, datasetIndex, index) {\n    const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n    const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n\n    if (_angleBetween(angle, startAngle, endAngle)) {\n      items.push({element, datasetIndex, index});\n    }\n  }\n\n  evaluateInteractionItems(chart, axis, position, evaluationFunc);\n  return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a cartesian chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n  let items = [];\n  const distanceMetric = getDistanceMetricForAxis(axis);\n  let minDistance = Number.POSITIVE_INFINITY;\n\n  function evaluationFunc(element, datasetIndex, index) {\n    const inRange = element.inRange(position.x, position.y, useFinalPosition);\n    if (intersect && !inRange) {\n      return;\n    }\n\n    const center = element.getCenterPoint(useFinalPosition);\n    const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n    if (!pointInArea && !inRange) {\n      return;\n    }\n\n    const distance = distanceMetric(position, center);\n    if (distance < minDistance) {\n      items = [{element, datasetIndex, index}];\n      minDistance = distance;\n    } else if (distance === minDistance) {\n      // Can have multiple items at the same distance in which case we sort by size\n      items.push({element, datasetIndex, index});\n    }\n  }\n\n  evaluateInteractionItems(chart, axis, position, evaluationFunc);\n  return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in the chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n  if (!includeInvisible && !chart.isPointInArea(position)) {\n    return [];\n  }\n\n  return axis === 'r' && !intersect\n    ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n    : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n\n/**\n * Helper function to get the items matching along the given X or Y axis\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis to match\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n  const items = [];\n  const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n  let intersectsItem = false;\n\n  evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n    if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n      items.push({element, datasetIndex, index});\n      intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n    }\n  });\n\n  // If we want to trigger on an intersect and we don't have any items\n  // that intersect the position, return nothing\n  if (intersect && !intersectsItem) {\n    return [];\n  }\n  return items;\n}\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nexport default {\n  // Part of the public API to facilitate developers creating their own modes\n  evaluateInteractionItems,\n\n  // Helper function for different modes\n  modes: {\n    /**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n    index(chart, e, options, useFinalPosition) {\n      const position = getRelativePosition(e, chart);\n      // Default axis for index mode is 'x' to match old behaviour\n      const axis = options.axis || 'x';\n      const includeInvisible = options.includeInvisible || false;\n      const items = options.intersect\n        ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n        : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n      const elements = [];\n\n      if (!items.length) {\n        return [];\n      }\n\n      chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n        const index = items[0].index;\n        const element = meta.data[index];\n\n        // don't count items that are skipped (null data)\n        if (element && !element.skip) {\n          elements.push({element, datasetIndex: meta.index, index});\n        }\n      });\n\n      return elements;\n    },\n\n    /**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n    dataset(chart, e, options, useFinalPosition) {\n      const position = getRelativePosition(e, chart);\n      const axis = options.axis || 'xy';\n      const includeInvisible = options.includeInvisible || false;\n      let items = options.intersect\n        ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n        getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n\n      if (items.length > 0) {\n        const datasetIndex = items[0].datasetIndex;\n        const data = chart.getDatasetMeta(datasetIndex).data;\n        items = [];\n        for (let i = 0; i < data.length; ++i) {\n          items.push({element: data[i], datasetIndex, index: i});\n        }\n      }\n\n      return items;\n    },\n\n    /**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n    point(chart, e, options, useFinalPosition) {\n      const position = getRelativePosition(e, chart);\n      const axis = options.axis || 'xy';\n      const includeInvisible = options.includeInvisible || false;\n      return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n    },\n\n    /**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n    nearest(chart, e, options, useFinalPosition) {\n      const position = getRelativePosition(e, chart);\n      const axis = options.axis || 'xy';\n      const includeInvisible = options.includeInvisible || false;\n      return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n    },\n\n    /**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n    x(chart, e, options, useFinalPosition) {\n      const position = getRelativePosition(e, chart);\n      return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n    },\n\n    /**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n    y(chart, e, options, useFinalPosition) {\n      const position = getRelativePosition(e, chart);\n      return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n    }\n  }\n};\n", "import {defined, each, isObject} from '../helpers/helpers.core.js';\nimport {toPadding} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n */\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n  return array.filter(v => v.pos === position);\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n  return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\n\nfunction sortByWeight(array, reverse) {\n  return array.sort((a, b) => {\n    const v0 = reverse ? b : a;\n    const v1 = reverse ? a : b;\n    return v0.weight === v1.weight ?\n      v0.index - v1.index :\n      v0.weight - v1.weight;\n  });\n}\n\nfunction wrapBoxes(boxes) {\n  const layoutBoxes = [];\n  let i, ilen, box, pos, stack, stackWeight;\n\n  for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n    box = boxes[i];\n    ({position: pos, options: {stack, stackWeight = 1}} = box);\n    layoutBoxes.push({\n      index: i,\n      box,\n      pos,\n      horizontal: box.isHorizontal(),\n      weight: box.weight,\n      stack: stack && (pos + stack),\n      stackWeight\n    });\n  }\n  return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n  const stacks = {};\n  for (const wrap of layouts) {\n    const {stack, pos, stackWeight} = wrap;\n    if (!stack || !STATIC_POSITIONS.includes(pos)) {\n      continue;\n    }\n    const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n    _stack.count++;\n    _stack.weight += stackWeight;\n  }\n  return stacks;\n}\n\n/**\n * store dimensions used instead of available chartArea in fitBoxes\n **/\nfunction setLayoutDims(layouts, params) {\n  const stacks = buildStacks(layouts);\n  const {vBoxMaxWidth, hBoxMaxHeight} = params;\n  let i, ilen, layout;\n  for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n    layout = layouts[i];\n    const {fullSize} = layout.box;\n    const stack = stacks[layout.stack];\n    const factor = stack && layout.stackWeight / stack.weight;\n    if (layout.horizontal) {\n      layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n      layout.height = hBoxMaxHeight;\n    } else {\n      layout.width = vBoxMaxWidth;\n      layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n    }\n  }\n  return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n  const layoutBoxes = wrapBoxes(boxes);\n  const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n  const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n  const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n  const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n  const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n  const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n  const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n\n  return {\n    fullSize,\n    leftAndTop: left.concat(top),\n    rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n    chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n    vertical: left.concat(right).concat(centerVertical),\n    horizontal: top.concat(bottom).concat(centerHorizontal)\n  };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n  return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n  maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n  maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n  maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n  maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n  const {pos, box} = layout;\n  const maxPadding = chartArea.maxPadding;\n\n  // dynamically placed boxes size is not considered\n  if (!isObject(pos)) {\n    if (layout.size) {\n      // this layout was already counted for, lets first reduce old size\n      chartArea[pos] -= layout.size;\n    }\n    const stack = stacks[layout.stack] || {size: 0, count: 1};\n    stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n    layout.size = stack.size / stack.count;\n    chartArea[pos] += layout.size;\n  }\n\n  if (box.getPadding) {\n    updateMaxPadding(maxPadding, box.getPadding());\n  }\n\n  const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n  const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n  const widthChanged = newWidth !== chartArea.w;\n  const heightChanged = newHeight !== chartArea.h;\n  chartArea.w = newWidth;\n  chartArea.h = newHeight;\n\n  // return booleans on the changes per direction\n  return layout.horizontal\n    ? {same: widthChanged, other: heightChanged}\n    : {same: heightChanged, other: widthChanged};\n}\n\nfunction handleMaxPadding(chartArea) {\n  const maxPadding = chartArea.maxPadding;\n\n  function updatePos(pos) {\n    const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n    chartArea[pos] += change;\n    return change;\n  }\n  chartArea.y += updatePos('top');\n  chartArea.x += updatePos('left');\n  updatePos('right');\n  updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n  const maxPadding = chartArea.maxPadding;\n\n  function marginForPositions(positions) {\n    const margin = {left: 0, top: 0, right: 0, bottom: 0};\n    positions.forEach((pos) => {\n      margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n    });\n    return margin;\n  }\n\n  return horizontal\n    ? marginForPositions(['left', 'right'])\n    : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n  const refitBoxes = [];\n  let i, ilen, layout, box, refit, changed;\n\n  for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n    layout = boxes[i];\n    box = layout.box;\n\n    box.update(\n      layout.width || chartArea.w,\n      layout.height || chartArea.h,\n      getMargins(layout.horizontal, chartArea)\n    );\n    const {same, other} = updateDims(chartArea, params, layout, stacks);\n\n    // Dimensions changed and there were non full width boxes before this\n    // -> we have to refit those\n    refit |= same && refitBoxes.length;\n\n    // Chart area changed in the opposite direction\n    changed = changed || other;\n\n    if (!box.fullSize) { // fullSize boxes don't need to be re-fitted in any case\n      refitBoxes.push(layout);\n    }\n  }\n\n  return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n  box.top = top;\n  box.left = left;\n  box.right = left + width;\n  box.bottom = top + height;\n  box.width = width;\n  box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n  const userPadding = params.padding;\n  let {x, y} = chartArea;\n\n  for (const layout of boxes) {\n    const box = layout.box;\n    const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n    const weight = (layout.stackWeight / stack.weight) || 1;\n    if (layout.horizontal) {\n      const width = chartArea.w * weight;\n      const height = stack.size || box.height;\n      if (defined(stack.start)) {\n        y = stack.start;\n      }\n      if (box.fullSize) {\n        setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n      } else {\n        setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n      }\n      stack.start = y;\n      stack.placed += width;\n      y = box.bottom;\n    } else {\n      const height = chartArea.h * weight;\n      const width = stack.size || box.width;\n      if (defined(stack.start)) {\n        x = stack.start;\n      }\n      if (box.fullSize) {\n        setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n      } else {\n        setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n      }\n      stack.start = x;\n      stack.placed += height;\n      x = box.right;\n    }\n  }\n\n  chartArea.x = x;\n  chartArea.y = y;\n}\n\n/**\n * @interface LayoutItem\n * @typedef {object} LayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullSize - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} draw - Draws the element\n * @prop {function} [getPadding] -  Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory.  It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nexport default {\n\n  /**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {LayoutItem} item - the item to add to be laid out\n\t */\n  addBox(chart, item) {\n    if (!chart.boxes) {\n      chart.boxes = [];\n    }\n\n    // initialize item with default values\n    item.fullSize = item.fullSize || false;\n    item.position = item.position || 'top';\n    item.weight = item.weight || 0;\n    // @ts-ignore\n    item._layers = item._layers || function() {\n      return [{\n        z: 0,\n        draw(chartArea) {\n          item.draw(chartArea);\n        }\n      }];\n    };\n\n    chart.boxes.push(item);\n  },\n\n  /**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {LayoutItem} layoutItem - the item to remove from the layout\n\t */\n  removeBox(chart, layoutItem) {\n    const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n    if (index !== -1) {\n      chart.boxes.splice(index, 1);\n    }\n  },\n\n  /**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {LayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n  configure(chart, item, options) {\n    item.fullSize = options.fullSize;\n    item.position = options.position;\n    item.weight = options.weight;\n  },\n\n  /**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n   * @param {number} minPadding - minimum padding required for each side of chart area\n\t */\n  update(chart, width, height, minPadding) {\n    if (!chart) {\n      return;\n    }\n\n    const padding = toPadding(chart.options.layout.padding);\n    const availableWidth = Math.max(width - padding.width, 0);\n    const availableHeight = Math.max(height - padding.height, 0);\n    const boxes = buildLayoutBoxes(chart.boxes);\n    const verticalBoxes = boxes.vertical;\n    const horizontalBoxes = boxes.horizontal;\n\n    // Before any changes are made, notify boxes that an update is about to being\n    // This is used to clear any cached data (e.g. scale limits)\n    each(chart.boxes, box => {\n      if (typeof box.beforeLayout === 'function') {\n        box.beforeLayout();\n      }\n    });\n\n    // Essentially we now have any number of boxes on each of the 4 sides.\n    // Our canvas looks like the following.\n    // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n    // B1 is the bottom axis\n    // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n    // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n    // an error will be thrown.\n    //\n    // |----------------------------------------------------|\n    // |                  T1 (Full Width)                   |\n    // |----------------------------------------------------|\n    // |    |    |                 T2                  |    |\n    // |    |----|-------------------------------------|----|\n    // |    |    | C1 |                           | C2 |    |\n    // |    |    |----|                           |----|    |\n    // |    |    |                                     |    |\n    // | L1 | L2 |           ChartArea (C0)            | R1 |\n    // |    |    |                                     |    |\n    // |    |    |----|                           |----|    |\n    // |    |    | C3 |                           | C4 |    |\n    // |    |----|-------------------------------------|----|\n    // |    |    |                 B1                  |    |\n    // |----------------------------------------------------|\n    // |                  B2 (Full Width)                   |\n    // |----------------------------------------------------|\n    //\n\n    const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n      wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n\n    const params = Object.freeze({\n      outerWidth: width,\n      outerHeight: height,\n      padding,\n      availableWidth,\n      availableHeight,\n      vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n      hBoxMaxHeight: availableHeight / 2\n    });\n    const maxPadding = Object.assign({}, padding);\n    updateMaxPadding(maxPadding, toPadding(minPadding));\n    const chartArea = Object.assign({\n      maxPadding,\n      w: availableWidth,\n      h: availableHeight,\n      x: padding.left,\n      y: padding.top\n    }, padding);\n\n    const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n    // First fit the fullSize boxes, to reduce probability of re-fitting.\n    fitBoxes(boxes.fullSize, chartArea, params, stacks);\n\n    // Then fit vertical boxes\n    fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n    // Then fit horizontal boxes\n    if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n      // if the area changed, re-fit vertical boxes\n      fitBoxes(verticalBoxes, chartArea, params, stacks);\n    }\n\n    handleMaxPadding(chartArea);\n\n    // Finally place the boxes to correct coordinates\n    placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n\n    // Move to opposite side of chart\n    chartArea.x += chartArea.w;\n    chartArea.y += chartArea.h;\n\n    placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n\n    chart.chartArea = {\n      left: chartArea.left,\n      top: chartArea.top,\n      right: chartArea.left + chartArea.w,\n      bottom: chartArea.top + chartArea.h,\n      height: chartArea.h,\n      width: chartArea.w,\n    };\n\n    // Finally update boxes in chartArea (radial scale for example)\n    each(boxes.chartArea, (layout) => {\n      const box = layout.box;\n      Object.assign(box, chart.chartArea);\n      box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n    });\n  }\n};\n", "\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\n/**\n * Abstract class that allows abstracting platform dependencies away from the chart.\n */\nexport default class BasePlatform {\n  /**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific)\n\t * @param {number} [aspectRatio] - The chart options\n\t */\n  acquireContext(canvas, aspectRatio) {} // eslint-disable-line no-unused-vars\n\n  /**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n  releaseContext(context) { // eslint-disable-line no-unused-vars\n    return false;\n  }\n\n  /**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link ChartEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link ChartEvent} interface) when an event of the specified type occurs.\n\t */\n  addEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n  /**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link ChartEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n  removeEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n  /**\n\t * @returns {number} the current devicePixelRatio of the device this platform is connected to.\n\t */\n  getDevicePixelRatio() {\n    return 1;\n  }\n\n  /**\n\t * Returns the maximum size in pixels of given canvas element.\n\t * @param {HTMLCanvasElement} element\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n  getMaximumSize(element, width, height, aspectRatio) {\n    width = Math.max(0, width || element.width);\n    height = height || element.height;\n    return {\n      width,\n      height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n    };\n  }\n\n  /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @returns {boolean} true if the canvas is attached to the platform, false if not.\n\t */\n  isAttached(canvas) { // eslint-disable-line no-unused-vars\n    return true;\n  }\n\n  /**\n   * Updates config with platform specific requirements\n   * @param {import('../core/core.config.js').default} config\n   */\n  updateConfig(config) { // eslint-disable-line no-unused-vars\n    // no-op\n  }\n}\n", "/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nimport BasePlatform from './platform.base.js';\n\n/**\n * Platform class for charts without access to the DOM or to many element properties\n * This platform is used by default for any chart passed an OffscreenCanvas.\n * @extends BasePlatform\n */\nexport default class BasicPlatform extends BasePlatform {\n  acquireContext(item) {\n    // To prevent canvas fingerprinting, some add-ons undefine the getContext\n    // method, for example: https://github.com/kkapsner/CanvasBlocker\n    // https://github.com/chartjs/Chart.js/issues/2807\n    return item && item.getContext && item.getContext('2d') || null;\n  }\n  updateConfig(config) {\n    config.options.animation = false;\n  }\n}\n", "/**\n * Chart.Platform implementation for targeting a web browser\n */\n\nimport BasePlatform from './platform.base.js';\nimport {_getParentNode, getRelativePosition, supportsEventListenerOptions, readUsedSize, getMaximumSize} from '../helpers/helpers.dom.js';\nimport {throttled} from '../helpers/helpers.extras.js';\nimport {isNullOrUndef} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nconst EXPANDO_KEY = '$chartjs';\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nconst EVENT_TYPES = {\n  touchstart: 'mousedown',\n  touchmove: 'mousemove',\n  touchend: 'mouseup',\n  pointerenter: 'mouseenter',\n  pointerdown: 'mousedown',\n  pointermove: 'mousemove',\n  pointerup: 'mouseup',\n  pointerleave: 'mouseout',\n  pointerout: 'mouseout'\n};\n\nconst isNullOrEmpty = value => value === null || value === '';\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n * @param {HTMLCanvasElement} canvas\n * @param {number} [aspectRatio]\n */\nfunction initCanvas(canvas, aspectRatio) {\n  const style = canvas.style;\n\n  // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n  // returns null or '' if no explicit value has been set to the canvas attribute.\n  const renderHeight = canvas.getAttribute('height');\n  const renderWidth = canvas.getAttribute('width');\n\n  // Chart.js modifies some canvas values that we want to restore on destroy\n  canvas[EXPANDO_KEY] = {\n    initial: {\n      height: renderHeight,\n      width: renderWidth,\n      style: {\n        display: style.display,\n        height: style.height,\n        width: style.width\n      }\n    }\n  };\n\n  // Force canvas to display as block to avoid extra space caused by inline\n  // elements, which would interfere with the responsive resize process.\n  // https://github.com/chartjs/Chart.js/issues/2538\n  style.display = style.display || 'block';\n  // Include possible borders in the size\n  style.boxSizing = style.boxSizing || 'border-box';\n\n  if (isNullOrEmpty(renderWidth)) {\n    const displayWidth = readUsedSize(canvas, 'width');\n    if (displayWidth !== undefined) {\n      canvas.width = displayWidth;\n    }\n  }\n\n  if (isNullOrEmpty(renderHeight)) {\n    if (canvas.style.height === '') {\n      // If no explicit render height and style height, let's apply the aspect ratio,\n      // which one can be specified by the user but also by charts as default option\n      // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n      canvas.height = canvas.width / (aspectRatio || 2);\n    } else {\n      const displayHeight = readUsedSize(canvas, 'height');\n      if (displayHeight !== undefined) {\n        canvas.height = displayHeight;\n      }\n    }\n  }\n\n  return canvas;\n}\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n  if (node) {\n    node.addEventListener(type, listener, eventListenerOptions);\n  }\n}\n\nfunction removeListener(chart, type, listener) {\n  if (chart && chart.canvas) {\n    chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n  }\n}\n\nfunction fromNativeEvent(event, chart) {\n  const type = EVENT_TYPES[event.type] || event.type;\n  const {x, y} = getRelativePosition(event, chart);\n  return {\n    type,\n    chart,\n    native: event,\n    x: x !== undefined ? x : null,\n    y: y !== undefined ? y : null,\n  };\n}\n\nfunction nodeListContains(nodeList, canvas) {\n  for (const node of nodeList) {\n    if (node === canvas || node.contains(canvas)) {\n      return true;\n    }\n  }\n}\n\nfunction createAttachObserver(chart, type, listener) {\n  const canvas = chart.canvas;\n  const observer = new MutationObserver(entries => {\n    let trigger = false;\n    for (const entry of entries) {\n      trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n      trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n    }\n    if (trigger) {\n      listener();\n    }\n  });\n  observer.observe(document, {childList: true, subtree: true});\n  return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n  const canvas = chart.canvas;\n  const observer = new MutationObserver(entries => {\n    let trigger = false;\n    for (const entry of entries) {\n      trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n      trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n    }\n    if (trigger) {\n      listener();\n    }\n  });\n  observer.observe(document, {childList: true, subtree: true});\n  return observer;\n}\n\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n  const dpr = window.devicePixelRatio;\n  if (dpr === oldDevicePixelRatio) {\n    return;\n  }\n  oldDevicePixelRatio = dpr;\n  drpListeningCharts.forEach((resize, chart) => {\n    if (chart.currentDevicePixelRatio !== dpr) {\n      resize();\n    }\n  });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n  if (!drpListeningCharts.size) {\n    window.addEventListener('resize', onWindowResize);\n  }\n  drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n  drpListeningCharts.delete(chart);\n  if (!drpListeningCharts.size) {\n    window.removeEventListener('resize', onWindowResize);\n  }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n  const canvas = chart.canvas;\n  const container = canvas && _getParentNode(canvas);\n  if (!container) {\n    return;\n  }\n  const resize = throttled((width, height) => {\n    const w = container.clientWidth;\n    listener(width, height);\n    if (w < container.clientWidth) {\n      // If the container size shrank during chart resize, let's assume\n      // scrollbar appeared. So we resize again with the scrollbar visible -\n      // effectively making chart smaller and the scrollbar hidden again.\n      // Because we are inside `throttled`, and currently `ticking`, scroll\n      // events are ignored during this whole 2 resize process.\n      // If we assumed wrong and something else happened, we are resizing\n      // twice in a frame (potential performance issue)\n      listener();\n    }\n  }, window);\n\n  // @ts-ignore until https://github.com/microsoft/TypeScript/issues/37861 implemented\n  const observer = new ResizeObserver(entries => {\n    const entry = entries[0];\n    const width = entry.contentRect.width;\n    const height = entry.contentRect.height;\n    // When its container's display is set to 'none' the callback will be called with a\n    // size of (0, 0), which will cause the chart to lose its original height, so skip\n    // resizing in such case.\n    if (width === 0 && height === 0) {\n      return;\n    }\n    resize(width, height);\n  });\n  observer.observe(container);\n  listenDevicePixelRatioChanges(chart, resize);\n\n  return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n  if (observer) {\n    observer.disconnect();\n  }\n  if (type === 'resize') {\n    unlistenDevicePixelRatioChanges(chart);\n  }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n  const canvas = chart.canvas;\n  const proxy = throttled((event) => {\n    // This case can occur if the chart is destroyed while waiting\n    // for the throttled function to occur. We prevent crashes by checking\n    // for a destroyed chart\n    if (chart.ctx !== null) {\n      listener(fromNativeEvent(event, chart));\n    }\n  }, chart);\n\n  addListener(canvas, type, proxy);\n\n  return proxy;\n}\n\n/**\n * Platform class for charts that can access the DOM and global window/document properties\n * @extends BasePlatform\n */\nexport default class DomPlatform extends BasePlatform {\n\n  /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [aspectRatio]\n\t * @return {CanvasRenderingContext2D|null}\n\t */\n  acquireContext(canvas, aspectRatio) {\n    // To prevent canvas fingerprinting, some add-ons undefine the getContext\n    // method, for example: https://github.com/kkapsner/CanvasBlocker\n    // https://github.com/chartjs/Chart.js/issues/2807\n    const context = canvas && canvas.getContext && canvas.getContext('2d');\n\n    // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the canvas is\n    // inside an iframe or when running in a protected environment. We could guess the\n    // types from their toString() value but let's keep things flexible and assume it's\n    // a sufficient condition if the canvas has a context2D which has canvas as `canvas`.\n    // https://github.com/chartjs/Chart.js/issues/3887\n    // https://github.com/chartjs/Chart.js/issues/4102\n    // https://github.com/chartjs/Chart.js/issues/4152\n    if (context && context.canvas === canvas) {\n      // Load platform resources on first chart creation, to make it possible to\n      // import the library before setting platform options.\n      initCanvas(canvas, aspectRatio);\n      return context;\n    }\n\n    return null;\n  }\n\n  /**\n\t * @param {CanvasRenderingContext2D} context\n\t */\n  releaseContext(context) {\n    const canvas = context.canvas;\n    if (!canvas[EXPANDO_KEY]) {\n      return false;\n    }\n\n    const initial = canvas[EXPANDO_KEY].initial;\n    ['height', 'width'].forEach((prop) => {\n      const value = initial[prop];\n      if (isNullOrUndef(value)) {\n        canvas.removeAttribute(prop);\n      } else {\n        canvas.setAttribute(prop, value);\n      }\n    });\n\n    const style = initial.style || {};\n    Object.keys(style).forEach((key) => {\n      canvas.style[key] = style[key];\n    });\n\n    // The canvas render size might have been changed (and thus the state stack discarded),\n    // we can't use save() and restore() to restore the initial state. So make sure that at\n    // least the canvas context is reset to the default state by setting the canvas width.\n    // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n    // eslint-disable-next-line no-self-assign\n    canvas.width = canvas.width;\n\n    delete canvas[EXPANDO_KEY];\n    return true;\n  }\n\n  /**\n\t *\n\t * @param {Chart} chart\n\t * @param {string} type\n\t * @param {function} listener\n\t */\n  addEventListener(chart, type, listener) {\n    // Can have only one listener per type, so make sure previous is removed\n    this.removeEventListener(chart, type);\n\n    const proxies = chart.$proxies || (chart.$proxies = {});\n    const handlers = {\n      attach: createAttachObserver,\n      detach: createDetachObserver,\n      resize: createResizeObserver\n    };\n    const handler = handlers[type] || createProxyAndListen;\n    proxies[type] = handler(chart, type, listener);\n  }\n\n\n  /**\n\t * @param {Chart} chart\n\t * @param {string} type\n\t */\n  removeEventListener(chart, type) {\n    const proxies = chart.$proxies || (chart.$proxies = {});\n    const proxy = proxies[type];\n\n    if (!proxy) {\n      return;\n    }\n\n    const handlers = {\n      attach: releaseObserver,\n      detach: releaseObserver,\n      resize: releaseObserver\n    };\n    const handler = handlers[type] || removeListener;\n    handler(chart, type, proxy);\n    proxies[type] = undefined;\n  }\n\n  getDevicePixelRatio() {\n    return window.devicePixelRatio;\n  }\n\n  /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n  getMaximumSize(canvas, width, height, aspectRatio) {\n    return getMaximumSize(canvas, width, height, aspectRatio);\n  }\n\n  /**\n\t * @param {HTMLCanvasElement} canvas\n\t */\n  isAttached(canvas) {\n    const container = canvas && _getParentNode(canvas);\n    return !!(container && container.isConnected);\n  }\n}\n", "import {_isDomSupported} from '../helpers/index.js';\nimport BasePlatform from './platform.base.js';\nimport BasicPlatform from './platform.basic.js';\nimport DomPlatform from './platform.dom.js';\n\nexport function _detectPlatform(canvas) {\n  if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n    return BasicPlatform;\n  }\n  return DomPlatform;\n}\n\nexport {BasePlatform, BasicPlatform, DomPlatform};\n", "import type {AnyObject} from '../types/basic.js';\nimport type {Point} from '../types/geometric.js';\nimport type {Animation} from '../types/animation.js';\nimport {isNumber} from '../helpers/helpers.math.js';\n\nexport default class Element<T = AnyObject, O = AnyObject> {\n\n  static defaults = {};\n  static defaultRoutes = undefined;\n\n  x: number;\n  y: number;\n  active = false;\n  options: O;\n  $animations: Record<keyof T, Animation>;\n\n  tooltipPosition(useFinalPosition: boolean): Point {\n    const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n    return {x, y} as Point;\n  }\n\n  hasValue() {\n    return isNumber(this.x) && isNumber(this.y);\n  }\n\n  /**\n   * Gets the current or final value of each prop. Can return extra properties (whole object).\n   * @param props - properties to get\n   * @param [final] - get the final value (animation target)\n   */\n  getProps<P extends (keyof T)[]>(props: P, final?: boolean): Pick<T, P[number]>;\n  getProps<P extends string>(props: P[], final?: boolean): Partial<Record<P, unknown>>;\n  getProps(props: string[], final?: boolean): Partial<Record<string, unknown>> {\n    const anims = this.$animations;\n    if (!final || !anims) {\n      // let's not create an object, if not needed\n      return this as Record<string, unknown>;\n    }\n    const ret: Record<string, unknown> = {};\n    props.forEach((prop) => {\n      ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop as string];\n    });\n    return ret;\n  }\n}\n", "import {isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\nimport {_factorize} from '../helpers/helpers.math.js';\n\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @param {import('./core.scale.js').default} scale\n * @param {Tick[]} ticks\n * @return {Tick[]}\n * @private\n */\nexport function autoSkip(scale, ticks) {\n  const tickOpts = scale.options.ticks;\n  const determinedMaxTicks = determineMaxTicks(scale);\n  const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n  const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n  const numMajorIndices = majorIndices.length;\n  const first = majorIndices[0];\n  const last = majorIndices[numMajorIndices - 1];\n  const newTicks = [];\n\n  // If there are too many major ticks to display them all\n  if (numMajorIndices > ticksLimit) {\n    skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n    return newTicks;\n  }\n\n  const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n  if (numMajorIndices > 0) {\n    let i, ilen;\n    const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n    skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n    for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n      skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n    }\n    skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n    return newTicks;\n  }\n  skip(ticks, newTicks, spacing);\n  return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n  const offset = scale.options.offset;\n  const tickLength = scale._tickSize();\n  const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n  const maxChart = scale._maxLength / tickLength;\n  return Math.floor(Math.min(maxScale, maxChart));\n}\n\n/**\n * @param {number[]} majorIndices\n * @param {Tick[]} ticks\n * @param {number} ticksLimit\n */\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n  const evenMajorSpacing = getEvenSpacing(majorIndices);\n  const spacing = ticks.length / ticksLimit;\n\n  // If the major ticks are evenly spaced apart, place the minor ticks\n  // so that they divide the major ticks into even chunks\n  if (!evenMajorSpacing) {\n    return Math.max(spacing, 1);\n  }\n\n  const factors = _factorize(evenMajorSpacing);\n  for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n    const factor = factors[i];\n    if (factor > spacing) {\n      return factor;\n    }\n  }\n  return Math.max(spacing, 1);\n}\n\n/**\n * @param {Tick[]} ticks\n */\nfunction getMajorIndices(ticks) {\n  const result = [];\n  let i, ilen;\n  for (i = 0, ilen = ticks.length; i < ilen; i++) {\n    if (ticks[i].major) {\n      result.push(i);\n    }\n  }\n  return result;\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number[]} majorIndices\n * @param {number} spacing\n */\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n  let count = 0;\n  let next = majorIndices[0];\n  let i;\n\n  spacing = Math.ceil(spacing);\n  for (i = 0; i < ticks.length; i++) {\n    if (i === next) {\n      newTicks.push(ticks[i]);\n      count++;\n      next = majorIndices[count * spacing];\n    }\n  }\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number} spacing\n * @param {number} [majorStart]\n * @param {number} [majorEnd]\n */\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n  const start = valueOrDefault(majorStart, 0);\n  const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n  let count = 0;\n  let length, i, next;\n\n  spacing = Math.ceil(spacing);\n  if (majorEnd) {\n    length = majorEnd - majorStart;\n    spacing = length / Math.floor(length / spacing);\n  }\n\n  next = start;\n\n  while (next < 0) {\n    count++;\n    next = Math.round(start + count * spacing);\n  }\n\n  for (i = Math.max(start, 0); i < end; i++) {\n    if (i === next) {\n      newTicks.push(ticks[i]);\n      count++;\n      next = Math.round(start + count * spacing);\n    }\n  }\n}\n\n\n/**\n * @param {number[]} arr\n */\nfunction getEvenSpacing(arr) {\n  const len = arr.length;\n  let i, diff;\n\n  if (len < 2) {\n    return false;\n  }\n\n  for (diff = arr[0], i = 1; i < len; ++i) {\n    if (arr[i] - arr[i - 1] !== diff) {\n      return false;\n    }\n  }\n  return diff;\n}\n", "import Element from './core.element.js';\nimport {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../helpers/helpers.canvas.js';\nimport {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toDegrees, toRadians, _int16Range, _limitValue, HALF_PI} from '../helpers/helpers.math.js';\nimport {_alignStartEnd, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {createContext, toFont, toPadding, _addGrace} from '../helpers/helpers.options.js';\nimport {autoSkip} from './core.scale.autoskip.js';\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit) => Math.min(maxTicksLimit || ticksLength, ticksLength);\n\n/**\n * @typedef { import('../types/index.js').Chart } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a new array containing numItems from arr\n * @param {any[]} arr\n * @param {number} numItems\n */\nfunction sample(arr, numItems) {\n  const result = [];\n  const increment = arr.length / numItems;\n  const len = arr.length;\n  let i = 0;\n\n  for (; i < len; i += increment) {\n    result.push(arr[Math.floor(i)]);\n  }\n  return result;\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @param {boolean} offsetGridLines\n */\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n  const length = scale.ticks.length;\n  const validIndex = Math.min(index, length - 1);\n  const start = scale._startPixel;\n  const end = scale._endPixel;\n  const epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n  let lineValue = scale.getPixelForTick(validIndex);\n  let offset;\n\n  if (offsetGridLines) {\n    if (length === 1) {\n      offset = Math.max(lineValue - start, end - lineValue);\n    } else if (index === 0) {\n      offset = (scale.getPixelForTick(1) - lineValue) / 2;\n    } else {\n      offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n    }\n    lineValue += validIndex < index ? offset : -offset;\n\n    // Return undefined if the pixel is out of the range\n    if (lineValue < start - epsilon || lineValue > end + epsilon) {\n      return;\n    }\n  }\n  return lineValue;\n}\n\n/**\n * @param {object} caches\n * @param {number} length\n */\nfunction garbageCollect(caches, length) {\n  each(caches, (cache) => {\n    const gc = cache.gc;\n    const gcLen = gc.length / 2;\n    let i;\n    if (gcLen > length) {\n      for (i = 0; i < gcLen; ++i) {\n        delete cache.data[gc[i]];\n      }\n      gc.splice(0, gcLen);\n    }\n  });\n}\n\n/**\n * @param {object} options\n */\nfunction getTickMarkLength(options) {\n  return options.drawTicks ? options.tickLength : 0;\n}\n\n/**\n * @param {object} options\n */\nfunction getTitleHeight(options, fallback) {\n  if (!options.display) {\n    return 0;\n  }\n\n  const font = toFont(options.font, fallback);\n  const padding = toPadding(options.padding);\n  const lines = isArray(options.text) ? options.text.length : 1;\n\n  return (lines * font.lineHeight) + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n  return createContext(parent, {\n    scale,\n    type: 'scale'\n  });\n}\n\nfunction createTickContext(parent, index, tick) {\n  return createContext(parent, {\n    tick,\n    index,\n    type: 'tick'\n  });\n}\n\nfunction titleAlign(align, position, reverse) {\n  /** @type {CanvasTextAlign} */\n  let ret = _toLeftRightCenter(align);\n  if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n    ret = reverseAlign(ret);\n  }\n  return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n  const {top, left, bottom, right, chart} = scale;\n  const {chartArea, scales} = chart;\n  let rotation = 0;\n  let maxWidth, titleX, titleY;\n  const height = bottom - top;\n  const width = right - left;\n\n  if (scale.isHorizontal()) {\n    titleX = _alignStartEnd(align, left, right);\n\n    if (isObject(position)) {\n      const positionAxisID = Object.keys(position)[0];\n      const value = position[positionAxisID];\n      titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n    } else if (position === 'center') {\n      titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n    } else {\n      titleY = offsetFromEdge(scale, position, offset);\n    }\n    maxWidth = right - left;\n  } else {\n    if (isObject(position)) {\n      const positionAxisID = Object.keys(position)[0];\n      const value = position[positionAxisID];\n      titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n    } else if (position === 'center') {\n      titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n    } else {\n      titleX = offsetFromEdge(scale, position, offset);\n    }\n    titleY = _alignStartEnd(align, bottom, top);\n    rotation = position === 'left' ? -HALF_PI : HALF_PI;\n  }\n  return {titleX, titleY, maxWidth, rotation};\n}\n\nexport default class Scale extends Element {\n\n  // eslint-disable-next-line max-statements\n  constructor(cfg) {\n    super();\n\n    /** @type {string} */\n    this.id = cfg.id;\n    /** @type {string} */\n    this.type = cfg.type;\n    /** @type {any} */\n    this.options = undefined;\n    /** @type {CanvasRenderingContext2D} */\n    this.ctx = cfg.ctx;\n    /** @type {Chart} */\n    this.chart = cfg.chart;\n\n    // implements box\n    /** @type {number} */\n    this.top = undefined;\n    /** @type {number} */\n    this.bottom = undefined;\n    /** @type {number} */\n    this.left = undefined;\n    /** @type {number} */\n    this.right = undefined;\n    /** @type {number} */\n    this.width = undefined;\n    /** @type {number} */\n    this.height = undefined;\n    this._margins = {\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    };\n    /** @type {number} */\n    this.maxWidth = undefined;\n    /** @type {number} */\n    this.maxHeight = undefined;\n    /** @type {number} */\n    this.paddingTop = undefined;\n    /** @type {number} */\n    this.paddingBottom = undefined;\n    /** @type {number} */\n    this.paddingLeft = undefined;\n    /** @type {number} */\n    this.paddingRight = undefined;\n\n    // scale-specific properties\n    /** @type {string=} */\n    this.axis = undefined;\n    /** @type {number=} */\n    this.labelRotation = undefined;\n    this.min = undefined;\n    this.max = undefined;\n    this._range = undefined;\n    /** @type {Tick[]} */\n    this.ticks = [];\n    /** @type {object[]|null} */\n    this._gridLineItems = null;\n    /** @type {object[]|null} */\n    this._labelItems = null;\n    /** @type {object|null} */\n    this._labelSizes = null;\n    this._length = 0;\n    this._maxLength = 0;\n    this._longestTextCache = {};\n    /** @type {number} */\n    this._startPixel = undefined;\n    /** @type {number} */\n    this._endPixel = undefined;\n    this._reversePixels = false;\n    this._userMax = undefined;\n    this._userMin = undefined;\n    this._suggestedMax = undefined;\n    this._suggestedMin = undefined;\n    this._ticksLength = 0;\n    this._borderValue = 0;\n    this._cache = {};\n    this._dataLimitsCached = false;\n    this.$context = undefined;\n  }\n\n  /**\n\t * @param {any} options\n\t * @since 3.0\n\t */\n  init(options) {\n    this.options = options.setContext(this.getContext());\n\n    this.axis = options.axis;\n\n    // parse min/max value, so we can properly determine min/max for other scales\n    this._userMin = this.parse(options.min);\n    this._userMax = this.parse(options.max);\n    this._suggestedMin = this.parse(options.suggestedMin);\n    this._suggestedMax = this.parse(options.suggestedMax);\n  }\n\n  /**\n\t * Parse a supported input value to internal representation.\n\t * @param {*} raw\n\t * @param {number} [index]\n\t * @since 3.0\n\t */\n  parse(raw, index) { // eslint-disable-line no-unused-vars\n    return raw;\n  }\n\n  /**\n\t * @return {{min: number, max: number, minDefined: boolean, maxDefined: boolean}}\n\t * @protected\n\t * @since 3.0\n\t */\n  getUserBounds() {\n    let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n    _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n    _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n    _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n    _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n    return {\n      min: finiteOrDefault(_userMin, _suggestedMin),\n      max: finiteOrDefault(_userMax, _suggestedMax),\n      minDefined: isFinite(_userMin),\n      maxDefined: isFinite(_userMax)\n    };\n  }\n\n  /**\n\t * @param {boolean} canStack\n\t * @return {{min: number, max: number}}\n\t * @protected\n\t * @since 3.0\n\t */\n  getMinMax(canStack) {\n    let {min, max, minDefined, maxDefined} = this.getUserBounds();\n    let range;\n\n    if (minDefined && maxDefined) {\n      return {min, max};\n    }\n\n    const metas = this.getMatchingVisibleMetas();\n    for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n      range = metas[i].controller.getMinMax(this, canStack);\n      if (!minDefined) {\n        min = Math.min(min, range.min);\n      }\n      if (!maxDefined) {\n        max = Math.max(max, range.max);\n      }\n    }\n\n    // Make sure min <= max when only min or max is defined by user and the data is outside that range\n    min = maxDefined && min > max ? max : min;\n    max = minDefined && min > max ? min : max;\n\n    return {\n      min: finiteOrDefault(min, finiteOrDefault(max, min)),\n      max: finiteOrDefault(max, finiteOrDefault(min, max))\n    };\n  }\n\n  /**\n\t * Get the padding needed for the scale\n\t * @return {{top: number, left: number, bottom: number, right: number}} the necessary padding\n\t * @private\n\t */\n  getPadding() {\n    return {\n      left: this.paddingLeft || 0,\n      top: this.paddingTop || 0,\n      right: this.paddingRight || 0,\n      bottom: this.paddingBottom || 0\n    };\n  }\n\n  /**\n\t * Returns the scale tick objects\n\t * @return {Tick[]}\n\t * @since 2.7\n\t */\n  getTicks() {\n    return this.ticks;\n  }\n\n  /**\n\t * @return {string[]}\n\t */\n  getLabels() {\n    const data = this.chart.data;\n    return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n  }\n\n  /**\n   * @return {import('../types.js').LabelItem[]}\n   */\n  getLabelItems(chartArea = this.chart.chartArea) {\n    const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n    return items;\n  }\n\n  // When a new layout is created, reset the data limits cache\n  beforeLayout() {\n    this._cache = {};\n    this._dataLimitsCached = false;\n  }\n\n  // These methods are ordered by lifecycle. Utilities then follow.\n  // Any function defined here is inherited by all scale types.\n  // Any function can be extended by the scale type\n\n  beforeUpdate() {\n    call(this.options.beforeUpdate, [this]);\n  }\n\n  /**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {{top: number, left: number, bottom: number, right: number}} margins - the space between the edge of the other scales and edge of the chart\n\t *   This space comes from two sources:\n\t *     - padding - space that's required to show the labels at the edges of the scale\n\t *     - thickness of scales or legends in another orientation\n\t */\n  update(maxWidth, maxHeight, margins) {\n    const {beginAtZero, grace, ticks: tickOpts} = this.options;\n    const sampleSize = tickOpts.sampleSize;\n\n    // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n    this.beforeUpdate();\n\n    // Absorb the master measurements\n    this.maxWidth = maxWidth;\n    this.maxHeight = maxHeight;\n    this._margins = margins = Object.assign({\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    }, margins);\n\n    this.ticks = null;\n    this._labelSizes = null;\n    this._gridLineItems = null;\n    this._labelItems = null;\n\n    // Dimensions\n    this.beforeSetDimensions();\n    this.setDimensions();\n    this.afterSetDimensions();\n\n    this._maxLength = this.isHorizontal()\n      ? this.width + margins.left + margins.right\n      : this.height + margins.top + margins.bottom;\n\n    // Data min/max\n    if (!this._dataLimitsCached) {\n      this.beforeDataLimits();\n      this.determineDataLimits();\n      this.afterDataLimits();\n      this._range = _addGrace(this, grace, beginAtZero);\n      this._dataLimitsCached = true;\n    }\n\n    this.beforeBuildTicks();\n\n    this.ticks = this.buildTicks() || [];\n\n    // Allow modification of ticks in callback.\n    this.afterBuildTicks();\n\n    // Compute tick rotation and fit using a sampled subset of labels\n    // We generally don't need to compute the size of every single label for determining scale size\n    const samplingEnabled = sampleSize < this.ticks.length;\n    this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n    // configure is called twice, once here, once from core.controller.updateLayout.\n    // Here we haven't been positioned yet, but dimensions are correct.\n    // Variables set in configure are needed for calculateLabelRotation, and\n    // it's ok that coordinates are not correct there, only dimensions matter.\n    this.configure();\n\n    // Tick Rotation\n    this.beforeCalculateLabelRotation();\n    this.calculateLabelRotation(); // Preconditions: number of ticks and sizes of largest labels must be calculated beforehand\n    this.afterCalculateLabelRotation();\n\n    // Auto-skip\n    if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n      this.ticks = autoSkip(this, this.ticks);\n      this._labelSizes = null;\n      this.afterAutoSkip();\n    }\n\n    if (samplingEnabled) {\n      // Generate labels using all non-skipped ticks\n      this._convertTicksToLabels(this.ticks);\n    }\n\n    this.beforeFit();\n    this.fit(); // Preconditions: label rotation and label sizes must be calculated beforehand\n    this.afterFit();\n\n    // IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n    this.afterUpdate();\n  }\n\n  /**\n\t * @protected\n\t */\n  configure() {\n    let reversePixels = this.options.reverse;\n    let startPixel, endPixel;\n\n    if (this.isHorizontal()) {\n      startPixel = this.left;\n      endPixel = this.right;\n    } else {\n      startPixel = this.top;\n      endPixel = this.bottom;\n      // by default vertical scales are from bottom to top, so pixels are reversed\n      reversePixels = !reversePixels;\n    }\n    this._startPixel = startPixel;\n    this._endPixel = endPixel;\n    this._reversePixels = reversePixels;\n    this._length = endPixel - startPixel;\n    this._alignToPixels = this.options.alignToPixels;\n  }\n\n  afterUpdate() {\n    call(this.options.afterUpdate, [this]);\n  }\n\n  //\n\n  beforeSetDimensions() {\n    call(this.options.beforeSetDimensions, [this]);\n  }\n  setDimensions() {\n    // Set the unconstrained dimension before label rotation\n    if (this.isHorizontal()) {\n      // Reset position before calculating rotation\n      this.width = this.maxWidth;\n      this.left = 0;\n      this.right = this.width;\n    } else {\n      this.height = this.maxHeight;\n\n      // Reset position before calculating rotation\n      this.top = 0;\n      this.bottom = this.height;\n    }\n\n    // Reset padding\n    this.paddingLeft = 0;\n    this.paddingTop = 0;\n    this.paddingRight = 0;\n    this.paddingBottom = 0;\n  }\n  afterSetDimensions() {\n    call(this.options.afterSetDimensions, [this]);\n  }\n\n  _callHooks(name) {\n    this.chart.notifyPlugins(name, this.getContext());\n    call(this.options[name], [this]);\n  }\n\n  // Data limits\n  beforeDataLimits() {\n    this._callHooks('beforeDataLimits');\n  }\n  determineDataLimits() {}\n  afterDataLimits() {\n    this._callHooks('afterDataLimits');\n  }\n\n  //\n  beforeBuildTicks() {\n    this._callHooks('beforeBuildTicks');\n  }\n  /**\n\t * @return {object[]} the ticks\n\t */\n  buildTicks() {\n    return [];\n  }\n  afterBuildTicks() {\n    this._callHooks('afterBuildTicks');\n  }\n\n  beforeTickToLabelConversion() {\n    call(this.options.beforeTickToLabelConversion, [this]);\n  }\n  /**\n\t * Convert ticks to label strings\n\t * @param {Tick[]} ticks\n\t */\n  generateTickLabels(ticks) {\n    const tickOpts = this.options.ticks;\n    let i, ilen, tick;\n    for (i = 0, ilen = ticks.length; i < ilen; i++) {\n      tick = ticks[i];\n      tick.label = call(tickOpts.callback, [tick.value, i, ticks], this);\n    }\n  }\n  afterTickToLabelConversion() {\n    call(this.options.afterTickToLabelConversion, [this]);\n  }\n\n  //\n\n  beforeCalculateLabelRotation() {\n    call(this.options.beforeCalculateLabelRotation, [this]);\n  }\n  calculateLabelRotation() {\n    const options = this.options;\n    const tickOpts = options.ticks;\n    const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n    const minRotation = tickOpts.minRotation || 0;\n    const maxRotation = tickOpts.maxRotation;\n    let labelRotation = minRotation;\n    let tickWidth, maxHeight, maxLabelDiagonal;\n\n    if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n      this.labelRotation = minRotation;\n      return;\n    }\n\n    const labelSizes = this._getLabelSizes();\n    const maxLabelWidth = labelSizes.widest.width;\n    const maxLabelHeight = labelSizes.highest.height;\n\n    // Estimate the width of each grid based on the canvas width, the maximum\n    // label width and the number of tick intervals\n    const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n    tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n    // Allow 3 pixels x2 padding either side for label readability\n    if (maxLabelWidth + 6 > tickWidth) {\n      tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n      maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n      maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n      labelRotation = toDegrees(Math.min(\n        Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n        Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n      ));\n      labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n    }\n\n    this.labelRotation = labelRotation;\n  }\n  afterCalculateLabelRotation() {\n    call(this.options.afterCalculateLabelRotation, [this]);\n  }\n  afterAutoSkip() {}\n\n  //\n\n  beforeFit() {\n    call(this.options.beforeFit, [this]);\n  }\n  fit() {\n    // Reset\n    const minSize = {\n      width: 0,\n      height: 0\n    };\n\n    const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n    const display = this._isVisible();\n    const isHorizontal = this.isHorizontal();\n\n    if (display) {\n      const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n      if (isHorizontal) {\n        minSize.width = this.maxWidth;\n        minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n      } else {\n        minSize.height = this.maxHeight; // fill all the height\n        minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n      }\n\n      // Don't bother fitting the ticks if we are not showing the labels\n      if (tickOpts.display && this.ticks.length) {\n        const {first, last, widest, highest} = this._getLabelSizes();\n        const tickPadding = tickOpts.padding * 2;\n        const angleRadians = toRadians(this.labelRotation);\n        const cos = Math.cos(angleRadians);\n        const sin = Math.sin(angleRadians);\n\n        if (isHorizontal) {\n        // A horizontal axis is more constrained by the height.\n          const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n          minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n        } else {\n        // A vertical axis is more constrained by the width. Labels are the\n        // dominant factor here, so get that length first and account for padding\n          const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n\n          minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n        }\n        this._calculatePadding(first, last, sin, cos);\n      }\n    }\n\n    this._handleMargins();\n\n    if (isHorizontal) {\n      this.width = this._length = chart.width - this._margins.left - this._margins.right;\n      this.height = minSize.height;\n    } else {\n      this.width = minSize.width;\n      this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n    }\n  }\n\n  _calculatePadding(first, last, sin, cos) {\n    const {ticks: {align, padding}, position} = this.options;\n    const isRotated = this.labelRotation !== 0;\n    const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n    if (this.isHorizontal()) {\n      const offsetLeft = this.getPixelForTick(0) - this.left;\n      const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n      let paddingLeft = 0;\n      let paddingRight = 0;\n\n      // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n      // which means that the right padding is dominated by the font height\n      if (isRotated) {\n        if (labelsBelowTicks) {\n          paddingLeft = cos * first.width;\n          paddingRight = sin * last.height;\n        } else {\n          paddingLeft = sin * first.height;\n          paddingRight = cos * last.width;\n        }\n      } else if (align === 'start') {\n        paddingRight = last.width;\n      } else if (align === 'end') {\n        paddingLeft = first.width;\n      } else if (align !== 'inner') {\n        paddingLeft = first.width / 2;\n        paddingRight = last.width / 2;\n      }\n\n      // Adjust padding taking into account changes in offsets\n      this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n      this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n    } else {\n      let paddingTop = last.height / 2;\n      let paddingBottom = first.height / 2;\n\n      if (align === 'start') {\n        paddingTop = 0;\n        paddingBottom = first.height;\n      } else if (align === 'end') {\n        paddingTop = last.height;\n        paddingBottom = 0;\n      }\n\n      this.paddingTop = paddingTop + padding;\n      this.paddingBottom = paddingBottom + padding;\n    }\n  }\n\n  /**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n  _handleMargins() {\n    if (this._margins) {\n      this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n      this._margins.top = Math.max(this.paddingTop, this._margins.top);\n      this._margins.right = Math.max(this.paddingRight, this._margins.right);\n      this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n    }\n  }\n\n  afterFit() {\n    call(this.options.afterFit, [this]);\n  }\n\n  // Shared Methods\n  /**\n\t * @return {boolean}\n\t */\n  isHorizontal() {\n    const {axis, position} = this.options;\n    return position === 'top' || position === 'bottom' || axis === 'x';\n  }\n  /**\n\t * @return {boolean}\n\t */\n  isFullSize() {\n    return this.options.fullSize;\n  }\n\n  /**\n\t * @param {Tick[]} ticks\n\t * @private\n\t */\n  _convertTicksToLabels(ticks) {\n    this.beforeTickToLabelConversion();\n\n    this.generateTickLabels(ticks);\n\n    // Ticks should be skipped when callback returns null or undef, so lets remove those.\n    let i, ilen;\n    for (i = 0, ilen = ticks.length; i < ilen; i++) {\n      if (isNullOrUndef(ticks[i].label)) {\n        ticks.splice(i, 1);\n        ilen--;\n        i--;\n      }\n    }\n\n    this.afterTickToLabelConversion();\n  }\n\n  /**\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n  _getLabelSizes() {\n    let labelSizes = this._labelSizes;\n\n    if (!labelSizes) {\n      const sampleSize = this.options.ticks.sampleSize;\n      let ticks = this.ticks;\n      if (sampleSize < ticks.length) {\n        ticks = sample(ticks, sampleSize);\n      }\n\n      this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n    }\n\n    return labelSizes;\n  }\n\n  /**\n\t * Returns {width, height, offset} objects for the first, last, widest, highest tick\n\t * labels where offset indicates the anchor point offset from the top in pixels.\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n  _computeLabelSizes(ticks, length, maxTicksLimit) {\n    const {ctx, _longestTextCache: caches} = this;\n    const widths = [];\n    const heights = [];\n    const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n    let widestLabelSize = 0;\n    let highestLabelSize = 0;\n    let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n    for (i = 0; i < length; i += increment) {\n      label = ticks[i].label;\n      tickFont = this._resolveTickFontOptions(i);\n      ctx.font = fontString = tickFont.string;\n      cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n      lineHeight = tickFont.lineHeight;\n      width = height = 0;\n      // Undefined labels and arrays should not be measured\n      if (!isNullOrUndef(label) && !isArray(label)) {\n        width = _measureText(ctx, cache.data, cache.gc, width, label);\n        height = lineHeight;\n      } else if (isArray(label)) {\n        // if it is an array let's measure each element\n        for (j = 0, jlen = label.length; j < jlen; ++j) {\n          nestedLabel = /** @type {string} */ (label[j]);\n          // Undefined labels and arrays should not be measured\n          if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n            width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n            height += lineHeight;\n          }\n        }\n      }\n      widths.push(width);\n      heights.push(height);\n      widestLabelSize = Math.max(width, widestLabelSize);\n      highestLabelSize = Math.max(height, highestLabelSize);\n    }\n    garbageCollect(caches, length);\n\n    const widest = widths.indexOf(widestLabelSize);\n    const highest = heights.indexOf(highestLabelSize);\n\n    const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n\n    return {\n      first: valueAt(0),\n      last: valueAt(length - 1),\n      widest: valueAt(widest),\n      highest: valueAt(highest),\n      widths,\n      heights,\n    };\n  }\n\n  /**\n\t * Used to get the label to display in the tooltip for the given value\n\t * @param {*} value\n\t * @return {string}\n\t */\n  getLabelForValue(value) {\n    return value;\n  }\n\n  /**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {*} value\n\t * @param {number} [index]\n\t * @return {number}\n\t */\n  getPixelForValue(value, index) { // eslint-disable-line no-unused-vars\n    return NaN;\n  }\n\n  /**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} pixel\n\t * @return {*}\n\t */\n  getValueForPixel(pixel) {} // eslint-disable-line no-unused-vars\n\n  /**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} index\n\t * @return {number}\n\t */\n  getPixelForTick(index) {\n    const ticks = this.ticks;\n    if (index < 0 || index > ticks.length - 1) {\n      return null;\n    }\n    return this.getPixelForValue(ticks[index].value);\n  }\n\n  /**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} decimal\n\t * @return {number}\n\t */\n  getPixelForDecimal(decimal) {\n    if (this._reversePixels) {\n      decimal = 1 - decimal;\n    }\n\n    const pixel = this._startPixel + decimal * this._length;\n    return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n  }\n\n  /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n  getDecimalForPixel(pixel) {\n    const decimal = (pixel - this._startPixel) / this._length;\n    return this._reversePixels ? 1 - decimal : decimal;\n  }\n\n  /**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @return {number}\n\t */\n  getBasePixel() {\n    return this.getPixelForValue(this.getBaseValue());\n  }\n\n  /**\n\t * @return {number}\n\t */\n  getBaseValue() {\n    const {min, max} = this;\n\n    return min < 0 && max < 0 ? max :\n      min > 0 && max > 0 ? min :\n      0;\n  }\n\n  /**\n\t * @protected\n\t */\n  getContext(index) {\n    const ticks = this.ticks || [];\n\n    if (index >= 0 && index < ticks.length) {\n      const tick = ticks[index];\n      return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n    }\n    return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n  }\n\n  /**\n\t * @return {number}\n\t * @private\n\t */\n  _tickSize() {\n    const optionTicks = this.options.ticks;\n\n    // Calculate space needed by label in axis direction.\n    const rot = toRadians(this.labelRotation);\n    const cos = Math.abs(Math.cos(rot));\n    const sin = Math.abs(Math.sin(rot));\n\n    const labelSizes = this._getLabelSizes();\n    const padding = optionTicks.autoSkipPadding || 0;\n    const w = labelSizes ? labelSizes.widest.width + padding : 0;\n    const h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n    // Calculate space needed for 1 tick in axis direction.\n    return this.isHorizontal()\n      ? h * cos > w * sin ? w / cos : h / sin\n      : h * sin < w * cos ? h / cos : w / sin;\n  }\n\n  /**\n\t * @return {boolean}\n\t * @private\n\t */\n  _isVisible() {\n    const display = this.options.display;\n\n    if (display !== 'auto') {\n      return !!display;\n    }\n\n    return this.getMatchingVisibleMetas().length > 0;\n  }\n\n  /**\n\t * @private\n\t */\n  _computeGridLineItems(chartArea) {\n    const axis = this.axis;\n    const chart = this.chart;\n    const options = this.options;\n    const {grid, position, border} = options;\n    const offset = grid.offset;\n    const isHorizontal = this.isHorizontal();\n    const ticks = this.ticks;\n    const ticksLength = ticks.length + (offset ? 1 : 0);\n    const tl = getTickMarkLength(grid);\n    const items = [];\n\n    const borderOpts = border.setContext(this.getContext());\n    const axisWidth = borderOpts.display ? borderOpts.width : 0;\n    const axisHalfWidth = axisWidth / 2;\n    const alignBorderValue = function(pixel) {\n      return _alignPixel(chart, pixel, axisWidth);\n    };\n    let borderValue, i, lineValue, alignedLineValue;\n    let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n    if (position === 'top') {\n      borderValue = alignBorderValue(this.bottom);\n      ty1 = this.bottom - tl;\n      ty2 = borderValue - axisHalfWidth;\n      y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n      y2 = chartArea.bottom;\n    } else if (position === 'bottom') {\n      borderValue = alignBorderValue(this.top);\n      y1 = chartArea.top;\n      y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n      ty1 = borderValue + axisHalfWidth;\n      ty2 = this.top + tl;\n    } else if (position === 'left') {\n      borderValue = alignBorderValue(this.right);\n      tx1 = this.right - tl;\n      tx2 = borderValue - axisHalfWidth;\n      x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n      x2 = chartArea.right;\n    } else if (position === 'right') {\n      borderValue = alignBorderValue(this.left);\n      x1 = chartArea.left;\n      x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n      tx1 = borderValue + axisHalfWidth;\n      tx2 = this.left + tl;\n    } else if (axis === 'x') {\n      if (position === 'center') {\n        borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n      } else if (isObject(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n      }\n\n      y1 = chartArea.top;\n      y2 = chartArea.bottom;\n      ty1 = borderValue + axisHalfWidth;\n      ty2 = ty1 + tl;\n    } else if (axis === 'y') {\n      if (position === 'center') {\n        borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n      } else if (isObject(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n      }\n\n      tx1 = borderValue - axisHalfWidth;\n      tx2 = tx1 - tl;\n      x1 = chartArea.left;\n      x2 = chartArea.right;\n    }\n\n    const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n    const step = Math.max(1, Math.ceil(ticksLength / limit));\n    for (i = 0; i < ticksLength; i += step) {\n      const context = this.getContext(i);\n      const optsAtIndex = grid.setContext(context);\n      const optsAtIndexBorder = border.setContext(context);\n\n      const lineWidth = optsAtIndex.lineWidth;\n      const lineColor = optsAtIndex.color;\n      const borderDash = optsAtIndexBorder.dash || [];\n      const borderDashOffset = optsAtIndexBorder.dashOffset;\n\n      const tickWidth = optsAtIndex.tickWidth;\n      const tickColor = optsAtIndex.tickColor;\n      const tickBorderDash = optsAtIndex.tickBorderDash || [];\n      const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n\n      lineValue = getPixelForGridLine(this, i, offset);\n\n      // Skip if the pixel is out of the range\n      if (lineValue === undefined) {\n        continue;\n      }\n\n      alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n      if (isHorizontal) {\n        tx1 = tx2 = x1 = x2 = alignedLineValue;\n      } else {\n        ty1 = ty2 = y1 = y2 = alignedLineValue;\n      }\n\n      items.push({\n        tx1,\n        ty1,\n        tx2,\n        ty2,\n        x1,\n        y1,\n        x2,\n        y2,\n        width: lineWidth,\n        color: lineColor,\n        borderDash,\n        borderDashOffset,\n        tickWidth,\n        tickColor,\n        tickBorderDash,\n        tickBorderDashOffset,\n      });\n    }\n\n    this._ticksLength = ticksLength;\n    this._borderValue = borderValue;\n\n    return items;\n  }\n\n  /**\n\t * @private\n\t */\n  _computeLabelItems(chartArea) {\n    const axis = this.axis;\n    const options = this.options;\n    const {position, ticks: optionTicks} = options;\n    const isHorizontal = this.isHorizontal();\n    const ticks = this.ticks;\n    const {align, crossAlign, padding, mirror} = optionTicks;\n    const tl = getTickMarkLength(options.grid);\n    const tickAndPadding = tl + padding;\n    const hTickAndPadding = mirror ? -padding : tickAndPadding;\n    const rotation = -toRadians(this.labelRotation);\n    const items = [];\n    let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n    let textBaseline = 'middle';\n\n    if (position === 'top') {\n      y = this.bottom - hTickAndPadding;\n      textAlign = this._getXAxisLabelAlignment();\n    } else if (position === 'bottom') {\n      y = this.top + hTickAndPadding;\n      textAlign = this._getXAxisLabelAlignment();\n    } else if (position === 'left') {\n      const ret = this._getYAxisLabelAlignment(tl);\n      textAlign = ret.textAlign;\n      x = ret.x;\n    } else if (position === 'right') {\n      const ret = this._getYAxisLabelAlignment(tl);\n      textAlign = ret.textAlign;\n      x = ret.x;\n    } else if (axis === 'x') {\n      if (position === 'center') {\n        y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n      } else if (isObject(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n      }\n      textAlign = this._getXAxisLabelAlignment();\n    } else if (axis === 'y') {\n      if (position === 'center') {\n        x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n      } else if (isObject(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        x = this.chart.scales[positionAxisID].getPixelForValue(value);\n      }\n      textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n    }\n\n    if (axis === 'y') {\n      if (align === 'start') {\n        textBaseline = 'top';\n      } else if (align === 'end') {\n        textBaseline = 'bottom';\n      }\n    }\n\n    const labelSizes = this._getLabelSizes();\n    for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n      tick = ticks[i];\n      label = tick.label;\n\n      const optsAtIndex = optionTicks.setContext(this.getContext(i));\n      pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n      font = this._resolveTickFontOptions(i);\n      lineHeight = font.lineHeight;\n      lineCount = isArray(label) ? label.length : 1;\n      const halfCount = lineCount / 2;\n      const color = optsAtIndex.color;\n      const strokeColor = optsAtIndex.textStrokeColor;\n      const strokeWidth = optsAtIndex.textStrokeWidth;\n      let tickTextAlign = textAlign;\n\n      if (isHorizontal) {\n        x = pixel;\n\n        if (textAlign === 'inner') {\n          if (i === ilen - 1) {\n            tickTextAlign = !this.options.reverse ? 'right' : 'left';\n          } else if (i === 0) {\n            tickTextAlign = !this.options.reverse ? 'left' : 'right';\n          } else {\n            tickTextAlign = 'center';\n          }\n        }\n\n        if (position === 'top') {\n          if (crossAlign === 'near' || rotation !== 0) {\n            textOffset = -lineCount * lineHeight + lineHeight / 2;\n          } else if (crossAlign === 'center') {\n            textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n          } else {\n            textOffset = -labelSizes.highest.height + lineHeight / 2;\n          }\n        } else {\n          // eslint-disable-next-line no-lonely-if\n          if (crossAlign === 'near' || rotation !== 0) {\n            textOffset = lineHeight / 2;\n          } else if (crossAlign === 'center') {\n            textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n          } else {\n            textOffset = labelSizes.highest.height - lineCount * lineHeight;\n          }\n        }\n        if (mirror) {\n          textOffset *= -1;\n        }\n        if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n          x += (lineHeight / 2) * Math.sin(rotation);\n        }\n      } else {\n        y = pixel;\n        textOffset = (1 - lineCount) * lineHeight / 2;\n      }\n\n      let backdrop;\n\n      if (optsAtIndex.showLabelBackdrop) {\n        const labelPadding = toPadding(optsAtIndex.backdropPadding);\n        const height = labelSizes.heights[i];\n        const width = labelSizes.widths[i];\n\n        let top = textOffset - labelPadding.top;\n        let left = 0 - labelPadding.left;\n\n        switch (textBaseline) {\n        case 'middle':\n          top -= height / 2;\n          break;\n        case 'bottom':\n          top -= height;\n          break;\n        default:\n          break;\n        }\n\n        switch (textAlign) {\n        case 'center':\n          left -= width / 2;\n          break;\n        case 'right':\n          left -= width;\n          break;\n        case 'inner':\n          if (i === ilen - 1) {\n            left -= width;\n          } else if (i > 0) {\n            left -= width / 2;\n          }\n          break;\n        default:\n          break;\n        }\n\n        backdrop = {\n          left,\n          top,\n          width: width + labelPadding.width,\n          height: height + labelPadding.height,\n\n          color: optsAtIndex.backdropColor,\n        };\n      }\n\n      items.push({\n        label,\n        font,\n        textOffset,\n        options: {\n          rotation,\n          color,\n          strokeColor,\n          strokeWidth,\n          textAlign: tickTextAlign,\n          textBaseline,\n          translation: [x, y],\n          backdrop,\n        }\n      });\n    }\n\n    return items;\n  }\n\n  _getXAxisLabelAlignment() {\n    const {position, ticks} = this.options;\n    const rotation = -toRadians(this.labelRotation);\n\n    if (rotation) {\n      return position === 'top' ? 'left' : 'right';\n    }\n\n    let align = 'center';\n\n    if (ticks.align === 'start') {\n      align = 'left';\n    } else if (ticks.align === 'end') {\n      align = 'right';\n    } else if (ticks.align === 'inner') {\n      align = 'inner';\n    }\n\n    return align;\n  }\n\n  _getYAxisLabelAlignment(tl) {\n    const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n    const labelSizes = this._getLabelSizes();\n    const tickAndPadding = tl + padding;\n    const widest = labelSizes.widest.width;\n\n    let textAlign;\n    let x;\n\n    if (position === 'left') {\n      if (mirror) {\n        x = this.right + padding;\n\n        if (crossAlign === 'near') {\n          textAlign = 'left';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x += (widest / 2);\n        } else {\n          textAlign = 'right';\n          x += widest;\n        }\n      } else {\n        x = this.right - tickAndPadding;\n\n        if (crossAlign === 'near') {\n          textAlign = 'right';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x -= (widest / 2);\n        } else {\n          textAlign = 'left';\n          x = this.left;\n        }\n      }\n    } else if (position === 'right') {\n      if (mirror) {\n        x = this.left + padding;\n\n        if (crossAlign === 'near') {\n          textAlign = 'right';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x -= (widest / 2);\n        } else {\n          textAlign = 'left';\n          x -= widest;\n        }\n      } else {\n        x = this.left + tickAndPadding;\n\n        if (crossAlign === 'near') {\n          textAlign = 'left';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x += widest / 2;\n        } else {\n          textAlign = 'right';\n          x = this.right;\n        }\n      }\n    } else {\n      textAlign = 'right';\n    }\n\n    return {textAlign, x};\n  }\n\n  /**\n\t * @private\n\t */\n  _computeLabelArea() {\n    if (this.options.ticks.mirror) {\n      return;\n    }\n\n    const chart = this.chart;\n    const position = this.options.position;\n\n    if (position === 'left' || position === 'right') {\n      return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n    } if (position === 'top' || position === 'bottom') {\n      return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n    }\n  }\n\n  /**\n   * @protected\n   */\n  drawBackground() {\n    const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n    if (backgroundColor) {\n      ctx.save();\n      ctx.fillStyle = backgroundColor;\n      ctx.fillRect(left, top, width, height);\n      ctx.restore();\n    }\n  }\n\n  getLineWidthForValue(value) {\n    const grid = this.options.grid;\n    if (!this._isVisible() || !grid.display) {\n      return 0;\n    }\n    const ticks = this.ticks;\n    const index = ticks.findIndex(t => t.value === value);\n    if (index >= 0) {\n      const opts = grid.setContext(this.getContext(index));\n      return opts.lineWidth;\n    }\n    return 0;\n  }\n\n  /**\n\t * @protected\n\t */\n  drawGrid(chartArea) {\n    const grid = this.options.grid;\n    const ctx = this.ctx;\n    const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n    let i, ilen;\n\n    const drawLine = (p1, p2, style) => {\n      if (!style.width || !style.color) {\n        return;\n      }\n      ctx.save();\n      ctx.lineWidth = style.width;\n      ctx.strokeStyle = style.color;\n      ctx.setLineDash(style.borderDash || []);\n      ctx.lineDashOffset = style.borderDashOffset;\n\n      ctx.beginPath();\n      ctx.moveTo(p1.x, p1.y);\n      ctx.lineTo(p2.x, p2.y);\n      ctx.stroke();\n      ctx.restore();\n    };\n\n    if (grid.display) {\n      for (i = 0, ilen = items.length; i < ilen; ++i) {\n        const item = items[i];\n\n        if (grid.drawOnChartArea) {\n          drawLine(\n            {x: item.x1, y: item.y1},\n            {x: item.x2, y: item.y2},\n            item\n          );\n        }\n\n        if (grid.drawTicks) {\n          drawLine(\n            {x: item.tx1, y: item.ty1},\n            {x: item.tx2, y: item.ty2},\n            {\n              color: item.tickColor,\n              width: item.tickWidth,\n              borderDash: item.tickBorderDash,\n              borderDashOffset: item.tickBorderDashOffset\n            }\n          );\n        }\n      }\n    }\n  }\n\n  /**\n\t * @protected\n\t */\n  drawBorder() {\n    const {chart, ctx, options: {border, grid}} = this;\n    const borderOpts = border.setContext(this.getContext());\n    const axisWidth = border.display ? borderOpts.width : 0;\n    if (!axisWidth) {\n      return;\n    }\n    const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n    const borderValue = this._borderValue;\n    let x1, x2, y1, y2;\n\n    if (this.isHorizontal()) {\n      x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n      x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n      y1 = y2 = borderValue;\n    } else {\n      y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n      y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n      x1 = x2 = borderValue;\n    }\n    ctx.save();\n    ctx.lineWidth = borderOpts.width;\n    ctx.strokeStyle = borderOpts.color;\n\n    ctx.beginPath();\n    ctx.moveTo(x1, y1);\n    ctx.lineTo(x2, y2);\n    ctx.stroke();\n\n    ctx.restore();\n  }\n\n  /**\n\t * @protected\n\t */\n  drawLabels(chartArea) {\n    const optionTicks = this.options.ticks;\n\n    if (!optionTicks.display) {\n      return;\n    }\n\n    const ctx = this.ctx;\n\n    const area = this._computeLabelArea();\n    if (area) {\n      clipArea(ctx, area);\n    }\n\n    const items = this.getLabelItems(chartArea);\n    for (const item of items) {\n      const renderTextOptions = item.options;\n      const tickFont = item.font;\n      const label = item.label;\n      const y = item.textOffset;\n      renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n    }\n\n    if (area) {\n      unclipArea(ctx);\n    }\n  }\n\n  /**\n\t * @protected\n\t */\n  drawTitle() {\n    const {ctx, options: {position, title, reverse}} = this;\n\n    if (!title.display) {\n      return;\n    }\n\n    const font = toFont(title.font);\n    const padding = toPadding(title.padding);\n    const align = title.align;\n    let offset = font.lineHeight / 2;\n\n    if (position === 'bottom' || position === 'center' || isObject(position)) {\n      offset += padding.bottom;\n      if (isArray(title.text)) {\n        offset += font.lineHeight * (title.text.length - 1);\n      }\n    } else {\n      offset += padding.top;\n    }\n\n    const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n\n    renderText(ctx, title.text, 0, 0, font, {\n      color: title.color,\n      maxWidth,\n      rotation,\n      textAlign: titleAlign(align, position, reverse),\n      textBaseline: 'middle',\n      translation: [titleX, titleY],\n    });\n  }\n\n  draw(chartArea) {\n    if (!this._isVisible()) {\n      return;\n    }\n\n    this.drawBackground();\n    this.drawGrid(chartArea);\n    this.drawBorder();\n    this.drawTitle();\n    this.drawLabels(chartArea);\n  }\n\n  /**\n\t * @return {object[]}\n\t * @private\n\t */\n  _layers() {\n    const opts = this.options;\n    const tz = opts.ticks && opts.ticks.z || 0;\n    const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n    const bz = valueOrDefault(opts.border && opts.border.z, 0);\n\n    if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n      // backward compatibility: draw has been overridden by custom scale\n      return [{\n        z: tz,\n        draw: (chartArea) => {\n          this.draw(chartArea);\n        }\n      }];\n    }\n\n    return [{\n      z: gz,\n      draw: (chartArea) => {\n        this.drawBackground();\n        this.drawGrid(chartArea);\n        this.drawTitle();\n      }\n    }, {\n      z: bz,\n      draw: () => {\n        this.drawBorder();\n      }\n    }, {\n      z: tz,\n      draw: (chartArea) => {\n        this.drawLabels(chartArea);\n      }\n    }];\n  }\n\n  /**\n\t * Returns visible dataset metas that are attached to this scale\n\t * @param {string} [type] - if specified, also filter by dataset type\n\t * @return {object[]}\n\t */\n  getMatchingVisibleMetas(type) {\n    const metas = this.chart.getSortedVisibleDatasetMetas();\n    const axisID = this.axis + 'AxisID';\n    const result = [];\n    let i, ilen;\n\n    for (i = 0, ilen = metas.length; i < ilen; ++i) {\n      const meta = metas[i];\n      if (meta[axisID] === this.id && (!type || meta.type === type)) {\n        result.push(meta);\n      }\n    }\n    return result;\n  }\n\n  /**\n\t * @param {number} index\n\t * @return {object}\n\t * @protected\n \t */\n  _resolveTickFontOptions(index) {\n    const opts = this.options.ticks.setContext(this.getContext(index));\n    return toFont(opts.font);\n  }\n\n  /**\n   * @protected\n   */\n  _maxDigits() {\n    const fontSize = this._resolveTickFontOptions(0).lineHeight;\n    return (this.isHorizontal() ? this.width : this.height) / fontSize;\n  }\n}\n", "import {merge} from '../helpers/index.js';\nimport defaults, {overrides} from './core.defaults.js';\n\n/**\n * @typedef {{id: string, defaults: any, overrides?: any, defaultRoutes: any}} IChartComponent\n */\n\nexport default class TypedRegistry {\n  constructor(type, scope, override) {\n    this.type = type;\n    this.scope = scope;\n    this.override = override;\n    this.items = Object.create(null);\n  }\n\n  isForType(type) {\n    return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n  }\n\n  /**\n\t * @param {IChartComponent} item\n\t * @returns {string} The scope where items defaults were registered to.\n\t */\n  register(item) {\n    const proto = Object.getPrototypeOf(item);\n    let parentScope;\n\n    if (isIChartComponent(proto)) {\n      // Make sure the parent is registered and note the scope where its defaults are.\n      parentScope = this.register(proto);\n    }\n\n    const items = this.items;\n    const id = item.id;\n    const scope = this.scope + '.' + id;\n\n    if (!id) {\n      throw new Error('class does not have id: ' + item);\n    }\n\n    if (id in items) {\n      // already registered\n      return scope;\n    }\n\n    items[id] = item;\n    registerDefaults(item, scope, parentScope);\n    if (this.override) {\n      defaults.override(item.id, item.overrides);\n    }\n\n    return scope;\n  }\n\n  /**\n\t * @param {string} id\n\t * @returns {object?}\n\t */\n  get(id) {\n    return this.items[id];\n  }\n\n  /**\n\t * @param {IChartComponent} item\n\t */\n  unregister(item) {\n    const items = this.items;\n    const id = item.id;\n    const scope = this.scope;\n\n    if (id in items) {\n      delete items[id];\n    }\n\n    if (scope && id in defaults[scope]) {\n      delete defaults[scope][id];\n      if (this.override) {\n        delete overrides[id];\n      }\n    }\n  }\n}\n\nfunction registerDefaults(item, scope, parentScope) {\n  // Inherit the parent's defaults and keep existing defaults\n  const itemDefaults = merge(Object.create(null), [\n    parentScope ? defaults.get(parentScope) : {},\n    defaults.get(scope),\n    item.defaults\n  ]);\n\n  defaults.set(scope, itemDefaults);\n\n  if (item.defaultRoutes) {\n    routeDefaults(scope, item.defaultRoutes);\n  }\n\n  if (item.descriptors) {\n    defaults.describe(scope, item.descriptors);\n  }\n}\n\nfunction routeDefaults(scope, routes) {\n  Object.keys(routes).forEach(property => {\n    const propertyParts = property.split('.');\n    const sourceName = propertyParts.pop();\n    const sourceScope = [scope].concat(propertyParts).join('.');\n    const parts = routes[property].split('.');\n    const targetName = parts.pop();\n    const targetScope = parts.join('.');\n    defaults.route(sourceScope, sourceName, targetScope, targetName);\n  });\n}\n\nfunction isIChartComponent(proto) {\n  return 'id' in proto && 'defaults' in proto;\n}\n", "import DatasetController from './core.datasetController.js';\nimport Element from './core.element.js';\nimport Scale from './core.scale.js';\nimport TypedRegistry from './core.typedRegistry.js';\nimport {each, callback as call, _capitalize} from '../helpers/helpers.core.js';\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Registry {\n  constructor() {\n    this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n    this.elements = new TypedRegistry(Element, 'elements');\n    this.plugins = new TypedRegistry(Object, 'plugins');\n    this.scales = new TypedRegistry(Scale, 'scales');\n    // Order is important, Scale has Element in prototype chain,\n    // so Scales must be before Elements. Plugins are a fallback, so not listed here.\n    this._typedRegistries = [this.controllers, this.scales, this.elements];\n  }\n\n  /**\n\t * @param  {...any} args\n\t */\n  add(...args) {\n    this._each('register', args);\n  }\n\n  remove(...args) {\n    this._each('unregister', args);\n  }\n\n  /**\n\t * @param  {...typeof DatasetController} args\n\t */\n  addControllers(...args) {\n    this._each('register', args, this.controllers);\n  }\n\n  /**\n\t * @param  {...typeof Element} args\n\t */\n  addElements(...args) {\n    this._each('register', args, this.elements);\n  }\n\n  /**\n\t * @param  {...any} args\n\t */\n  addPlugins(...args) {\n    this._each('register', args, this.plugins);\n  }\n\n  /**\n\t * @param  {...typeof Scale} args\n\t */\n  addScales(...args) {\n    this._each('register', args, this.scales);\n  }\n\n  /**\n\t * @param {string} id\n\t * @returns {typeof DatasetController}\n\t */\n  getController(id) {\n    return this._get(id, this.controllers, 'controller');\n  }\n\n  /**\n\t * @param {string} id\n\t * @returns {typeof Element}\n\t */\n  getElement(id) {\n    return this._get(id, this.elements, 'element');\n  }\n\n  /**\n\t * @param {string} id\n\t * @returns {object}\n\t */\n  getPlugin(id) {\n    return this._get(id, this.plugins, 'plugin');\n  }\n\n  /**\n\t * @param {string} id\n\t * @returns {typeof Scale}\n\t */\n  getScale(id) {\n    return this._get(id, this.scales, 'scale');\n  }\n\n  /**\n\t * @param  {...typeof DatasetController} args\n\t */\n  removeControllers(...args) {\n    this._each('unregister', args, this.controllers);\n  }\n\n  /**\n\t * @param  {...typeof Element} args\n\t */\n  removeElements(...args) {\n    this._each('unregister', args, this.elements);\n  }\n\n  /**\n\t * @param  {...any} args\n\t */\n  removePlugins(...args) {\n    this._each('unregister', args, this.plugins);\n  }\n\n  /**\n\t * @param  {...typeof Scale} args\n\t */\n  removeScales(...args) {\n    this._each('unregister', args, this.scales);\n  }\n\n  /**\n\t * @private\n\t */\n  _each(method, args, typedRegistry) {\n    [...args].forEach(arg => {\n      const reg = typedRegistry || this._getRegistryForType(arg);\n      if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n        this._exec(method, reg, arg);\n      } else {\n        // Handle loopable args\n        // Use case:\n        //  import * as plugins from './plugins.js';\n        //  Chart.register(plugins);\n        each(arg, item => {\n          // If there are mixed types in the loopable, make sure those are\n          // registered in correct registry\n          // Use case: (treemap exporting controller, elements etc)\n          //  import * as treemap from 'chartjs-chart-treemap.js';\n          //  Chart.register(treemap);\n\n          const itemReg = typedRegistry || this._getRegistryForType(item);\n          this._exec(method, itemReg, item);\n        });\n      }\n    });\n  }\n\n  /**\n\t * @private\n\t */\n  _exec(method, registry, component) {\n    const camelMethod = _capitalize(method);\n    call(component['before' + camelMethod], [], component); // beforeRegister / beforeUnregister\n    registry[method](component);\n    call(component['after' + camelMethod], [], component); // afterRegister / afterUnregister\n  }\n\n  /**\n\t * @private\n\t */\n  _getRegistryForType(type) {\n    for (let i = 0; i < this._typedRegistries.length; i++) {\n      const reg = this._typedRegistries[i];\n      if (reg.isForType(type)) {\n        return reg;\n      }\n    }\n    // plugins is the fallback registry\n    return this.plugins;\n  }\n\n  /**\n\t * @private\n\t */\n  _get(id, typedRegistry, type) {\n    const item = typedRegistry.get(id);\n    if (item === undefined) {\n      throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n    }\n    return item;\n  }\n\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Registry();\n", "import registry from './core.registry.js';\nimport {callback as callCallback, isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../plugins/plugin.tooltip.js').default } Tooltip\n */\n\n/**\n * @callback filterCallback\n * @param {{plugin: object, options: object}} value\n * @param {number} [index]\n * @param {array} [array]\n * @param {object} [thisArg]\n * @return {boolean}\n */\n\n\nexport default class PluginService {\n  constructor() {\n    this._init = undefined;\n  }\n\n  /**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {object} [args] - Extra arguments to apply to the hook call.\n   * @param {filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n  notify(chart, hook, args, filter) {\n    if (hook === 'beforeInit') {\n      this._init = this._createDescriptors(chart, true);\n      this._notify(this._init, chart, 'install');\n    }\n\n    if (this._init === undefined) { // Do not trigger events before install\n      return;\n    }\n\n    const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n    const result = this._notify(descriptors, chart, hook, args);\n\n    if (hook === 'afterDestroy') {\n      this._notify(descriptors, chart, 'stop');\n      this._notify(this._init, chart, 'uninstall');\n      this._init = undefined; // Do not trigger events after uninstall\n    }\n    return result;\n  }\n\n  /**\n\t * @private\n\t */\n  _notify(descriptors, chart, hook, args) {\n    args = args || {};\n    for (const descriptor of descriptors) {\n      const plugin = descriptor.plugin;\n      const method = plugin[hook];\n      const params = [chart, args, descriptor.options];\n      if (callCallback(method, params, plugin) === false && args.cancelable) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  invalidate() {\n    // When plugins are registered, there is the possibility of a double\n    // invalidate situation. In this case, we only want to invalidate once.\n    // If we invalidate multiple times, the `_oldCache` is lost and all of the\n    // plugins are restarted without being correctly stopped.\n    // See https://github.com/chartjs/Chart.js/issues/8147\n    if (!isNullOrUndef(this._cache)) {\n      this._oldCache = this._cache;\n      this._cache = undefined;\n    }\n  }\n\n  /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n  _descriptors(chart) {\n    if (this._cache) {\n      return this._cache;\n    }\n\n    const descriptors = this._cache = this._createDescriptors(chart);\n\n    this._notifyStateChanges(chart);\n\n    return descriptors;\n  }\n\n  _createDescriptors(chart, all) {\n    const config = chart && chart.config;\n    const options = valueOrDefault(config.options && config.options.plugins, {});\n    const plugins = allPlugins(config);\n    // options === false => all plugins are disabled\n    return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n  }\n\n  /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n  _notifyStateChanges(chart) {\n    const previousDescriptors = this._oldCache || [];\n    const descriptors = this._cache;\n    const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n    this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n    this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n  }\n}\n\n/**\n * @param {import('./core.config.js').default} config\n */\nfunction allPlugins(config) {\n  const localIds = {};\n  const plugins = [];\n  const keys = Object.keys(registry.plugins.items);\n  for (let i = 0; i < keys.length; i++) {\n    plugins.push(registry.getPlugin(keys[i]));\n  }\n\n  const local = config.plugins || [];\n  for (let i = 0; i < local.length; i++) {\n    const plugin = local[i];\n\n    if (plugins.indexOf(plugin) === -1) {\n      plugins.push(plugin);\n      localIds[plugin.id] = true;\n    }\n  }\n\n  return {plugins, localIds};\n}\n\nfunction getOpts(options, all) {\n  if (!all && options === false) {\n    return null;\n  }\n  if (options === true) {\n    return {};\n  }\n  return options;\n}\n\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n  const result = [];\n  const context = chart.getContext();\n\n  for (const plugin of plugins) {\n    const id = plugin.id;\n    const opts = getOpts(options[id], all);\n    if (opts === null) {\n      continue;\n    }\n    result.push({\n      plugin,\n      options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n    });\n  }\n\n  return result;\n}\n\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n  const keys = config.pluginScopeKeys(plugin);\n  const scopes = config.getOptionScopes(opts, keys);\n  if (local && plugin.defaults) {\n    // make sure plugin defaults are in scopes for local (not registered) plugins\n    scopes.push(plugin.defaults);\n  }\n  return config.createResolver(scopes, context, [''], {\n    // These are just defaults that plugins can override\n    scriptable: false,\n    indexable: false,\n    allKeys: true\n  });\n}\n", "import defaults, {overrides, descriptors} from './core.defaults.js';\nimport {mergeIf, resolveObjectKey, isArray, isFunction, valueOrDefault, isObject} from '../helpers/helpers.core.js';\nimport {_attachContext, _createResolver, _descriptors} from '../helpers/helpers.config.js';\n\nexport function getIndexAxis(type, options) {\n  const datasetDefaults = defaults.datasets[type] || {};\n  const datasetOptions = (options.datasets || {})[type] || {};\n  return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n  let axis = id;\n  if (id === '_index_') {\n    axis = indexAxis;\n  } else if (id === '_value_') {\n    axis = indexAxis === 'x' ? 'y' : 'x';\n  }\n  return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n  return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction idMatchesAxis(id) {\n  if (id === 'x' || id === 'y' || id === 'r') {\n    return id;\n  }\n}\n\nfunction axisFromPosition(position) {\n  if (position === 'top' || position === 'bottom') {\n    return 'x';\n  }\n  if (position === 'left' || position === 'right') {\n    return 'y';\n  }\n}\n\nexport function determineAxis(id, ...scaleOptions) {\n  if (idMatchesAxis(id)) {\n    return id;\n  }\n  for (const opts of scaleOptions) {\n    const axis = opts.axis\n      || axisFromPosition(opts.position)\n      || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n    if (axis) {\n      return axis;\n    }\n  }\n  throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\n\nfunction getAxisFromDataset(id, axis, dataset) {\n  if (dataset[axis + 'AxisID'] === id) {\n    return {axis};\n  }\n}\n\nfunction retrieveAxisFromDatasets(id, config) {\n  if (config.data && config.data.datasets) {\n    const boundDs = config.data.datasets.filter((d) => d.xAxisID === id || d.yAxisID === id);\n    if (boundDs.length) {\n      return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n    }\n  }\n  return {};\n}\n\nfunction mergeScaleConfig(config, options) {\n  const chartDefaults = overrides[config.type] || {scales: {}};\n  const configScales = options.scales || {};\n  const chartIndexAxis = getIndexAxis(config.type, options);\n  const scales = Object.create(null);\n\n  // First figure out first scale id's per axis.\n  Object.keys(configScales).forEach(id => {\n    const scaleConf = configScales[id];\n    if (!isObject(scaleConf)) {\n      return console.error(`Invalid scale configuration for scale: ${id}`);\n    }\n    if (scaleConf._proxy) {\n      return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n    }\n    const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n    const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n    const defaultScaleOptions = chartDefaults.scales || {};\n    scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n  });\n\n  // Then merge dataset defaults to scale configs\n  config.data.datasets.forEach(dataset => {\n    const type = dataset.type || config.type;\n    const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n    const datasetDefaults = overrides[type] || {};\n    const defaultScaleOptions = datasetDefaults.scales || {};\n    Object.keys(defaultScaleOptions).forEach(defaultID => {\n      const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n      const id = dataset[axis + 'AxisID'] || axis;\n      scales[id] = scales[id] || Object.create(null);\n      mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n    });\n  });\n\n  // apply scale defaults, if not overridden by dataset defaults\n  Object.keys(scales).forEach(key => {\n    const scale = scales[key];\n    mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n  });\n\n  return scales;\n}\n\nfunction initOptions(config) {\n  const options = config.options || (config.options = {});\n\n  options.plugins = valueOrDefault(options.plugins, {});\n  options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n  data = data || {};\n  data.datasets = data.datasets || [];\n  data.labels = data.labels || [];\n  return data;\n}\n\nfunction initConfig(config) {\n  config = config || {};\n  config.data = initData(config.data);\n\n  initOptions(config);\n\n  return config;\n}\n\nconst keyCache = new Map();\nconst keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n  let keys = keyCache.get(cacheKey);\n  if (!keys) {\n    keys = generate();\n    keyCache.set(cacheKey, keys);\n    keysCached.add(keys);\n  }\n  return keys;\n}\n\nconst addIfFound = (set, obj, key) => {\n  const opts = resolveObjectKey(obj, key);\n  if (opts !== undefined) {\n    set.add(opts);\n  }\n};\n\nexport default class Config {\n  constructor(config) {\n    this._config = initConfig(config);\n    this._scopeCache = new Map();\n    this._resolverCache = new Map();\n  }\n\n  get platform() {\n    return this._config.platform;\n  }\n\n  get type() {\n    return this._config.type;\n  }\n\n  set type(type) {\n    this._config.type = type;\n  }\n\n  get data() {\n    return this._config.data;\n  }\n\n  set data(data) {\n    this._config.data = initData(data);\n  }\n\n  get options() {\n    return this._config.options;\n  }\n\n  set options(options) {\n    this._config.options = options;\n  }\n\n  get plugins() {\n    return this._config.plugins;\n  }\n\n  update() {\n    const config = this._config;\n    this.clearCache();\n    initOptions(config);\n  }\n\n  clearCache() {\n    this._scopeCache.clear();\n    this._resolverCache.clear();\n  }\n\n  /**\n   * Returns the option scope keys for resolving dataset options.\n   * These keys do not include the dataset itself, because it is not under options.\n   * @param {string} datasetType\n   * @return {string[][]}\n   */\n  datasetScopeKeys(datasetType) {\n    return cachedKeys(datasetType,\n      () => [[\n        `datasets.${datasetType}`,\n        ''\n      ]]);\n  }\n\n  /**\n   * Returns the option scope keys for resolving dataset animation options.\n   * These keys do not include the dataset itself, because it is not under options.\n   * @param {string} datasetType\n   * @param {string} transition\n   * @return {string[][]}\n   */\n  datasetAnimationScopeKeys(datasetType, transition) {\n    return cachedKeys(`${datasetType}.transition.${transition}`,\n      () => [\n        [\n          `datasets.${datasetType}.transitions.${transition}`,\n          `transitions.${transition}`,\n        ],\n        // The following are used for looking up the `animations` and `animation` keys\n        [\n          `datasets.${datasetType}`,\n          ''\n        ]\n      ]);\n  }\n\n  /**\n   * Returns the options scope keys for resolving element options that belong\n   * to an dataset. These keys do not include the dataset itself, because it\n   * is not under options.\n   * @param {string} datasetType\n   * @param {string} elementType\n   * @return {string[][]}\n   */\n  datasetElementScopeKeys(datasetType, elementType) {\n    return cachedKeys(`${datasetType}-${elementType}`,\n      () => [[\n        `datasets.${datasetType}.elements.${elementType}`,\n        `datasets.${datasetType}`,\n        `elements.${elementType}`,\n        ''\n      ]]);\n  }\n\n  /**\n   * Returns the options scope keys for resolving plugin options.\n   * @param {{id: string, additionalOptionScopes?: string[]}} plugin\n   * @return {string[][]}\n   */\n  pluginScopeKeys(plugin) {\n    const id = plugin.id;\n    const type = this.type;\n    return cachedKeys(`${type}-plugin-${id}`,\n      () => [[\n        `plugins.${id}`,\n        ...plugin.additionalOptionScopes || [],\n      ]]);\n  }\n\n  /**\n   * @private\n   */\n  _cachedScopes(mainScope, resetCache) {\n    const _scopeCache = this._scopeCache;\n    let cache = _scopeCache.get(mainScope);\n    if (!cache || resetCache) {\n      cache = new Map();\n      _scopeCache.set(mainScope, cache);\n    }\n    return cache;\n  }\n\n  /**\n   * Resolves the objects from options and defaults for option value resolution.\n   * @param {object} mainScope - The main scope object for options\n   * @param {string[][]} keyLists - The arrays of keys in resolution order\n   * @param {boolean} [resetCache] - reset the cache for this mainScope\n   */\n  getOptionScopes(mainScope, keyLists, resetCache) {\n    const {options, type} = this;\n    const cache = this._cachedScopes(mainScope, resetCache);\n    const cached = cache.get(keyLists);\n    if (cached) {\n      return cached;\n    }\n\n    const scopes = new Set();\n\n    keyLists.forEach(keys => {\n      if (mainScope) {\n        scopes.add(mainScope);\n        keys.forEach(key => addIfFound(scopes, mainScope, key));\n      }\n      keys.forEach(key => addIfFound(scopes, options, key));\n      keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n      keys.forEach(key => addIfFound(scopes, defaults, key));\n      keys.forEach(key => addIfFound(scopes, descriptors, key));\n    });\n\n    const array = Array.from(scopes);\n    if (array.length === 0) {\n      array.push(Object.create(null));\n    }\n    if (keysCached.has(keyLists)) {\n      cache.set(keyLists, array);\n    }\n    return array;\n  }\n\n  /**\n   * Returns the option scopes for resolving chart options\n   * @return {object[]}\n   */\n  chartOptionScopes() {\n    const {options, type} = this;\n\n    return [\n      options,\n      overrides[type] || {},\n      defaults.datasets[type] || {}, // https://github.com/chartjs/Chart.js/issues/8531\n      {type},\n      defaults,\n      descriptors\n    ];\n  }\n\n  /**\n   * @param {object[]} scopes\n   * @param {string[]} names\n   * @param {function|object} context\n   * @param {string[]} [prefixes]\n   * @return {object}\n   */\n  resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n    const result = {$shared: true};\n    const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n    let options = resolver;\n    if (needContext(resolver, names)) {\n      result.$shared = false;\n      context = isFunction(context) ? context() : context;\n      // subResolver is passed to scriptable options. It should not resolve to hover options.\n      const subResolver = this.createResolver(scopes, context, subPrefixes);\n      options = _attachContext(resolver, context, subResolver);\n    }\n\n    for (const prop of names) {\n      result[prop] = options[prop];\n    }\n    return result;\n  }\n\n  /**\n   * @param {object[]} scopes\n   * @param {object} [context]\n   * @param {string[]} [prefixes]\n   * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults]\n   */\n  createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n    const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n    return isObject(context)\n      ? _attachContext(resolver, context, undefined, descriptorDefaults)\n      : resolver;\n  }\n}\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n  let cache = resolverCache.get(scopes);\n  if (!cache) {\n    cache = new Map();\n    resolverCache.set(scopes, cache);\n  }\n  const cacheKey = prefixes.join();\n  let cached = cache.get(cacheKey);\n  if (!cached) {\n    const resolver = _createResolver(scopes, prefixes);\n    cached = {\n      resolver,\n      subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n    };\n    cache.set(cacheKey, cached);\n  }\n  return cached;\n}\n\nconst hasFunction = value => isObject(value)\n  && Object.getOwnPropertyNames(value).some((key) => isFunction(value[key]));\n\nfunction needContext(proxy, names) {\n  const {isScriptable, isIndexable} = _descriptors(proxy);\n\n  for (const prop of names) {\n    const scriptable = isScriptable(prop);\n    const indexable = isIndexable(prop);\n    const value = (indexable || scriptable) && proxy[prop];\n    if ((scriptable && (isFunction(value) || hasFunction(value)))\n      || (indexable && isArray(value))) {\n      return true;\n    }\n  }\n  return false;\n}\n", "import animator from './core.animator.js';\nimport defaults, {overrides} from './core.defaults.js';\nimport Interaction from './core.interaction.js';\nimport layouts from './core.layouts.js';\nimport {_detectPlatform} from '../platform/index.js';\nimport PluginService from './core.plugins.js';\nimport registry from './core.registry.js';\nimport Config, {determineAxis, getIndexAxis} from './core.config.js';\nimport {each, callback as callCallback, uid, valueOrDefault, _elementsEqual, isNullOrUndef, setsEqual, defined, isFunction, _isClickEvent} from '../helpers/helpers.core.js';\nimport {clearCanvas, clipArea, createContext, unclipArea, _isPointInArea, _isDomSupported, retinaScale, getDatasetClipArea} from '../helpers/index.js';\n// @ts-ignore\nimport {version} from '../../package.json';\nimport {debounce} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').Point } Point\n */\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n  return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\n\nfunction compare2Level(l1, l2) {\n  return function(a, b) {\n    return a[l1] === b[l1]\n      ? a[l2] - b[l2]\n      : a[l1] - b[l1];\n  };\n}\n\nfunction onAnimationsComplete(context) {\n  const chart = context.chart;\n  const animationOptions = chart.options.animation;\n\n  chart.notifyPlugins('afterRender');\n  callCallback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n  const chart = context.chart;\n  const animationOptions = chart.options.animation;\n  callCallback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\n/**\n * Chart.js can take a string id of a canvas element, a 2d context, or a canvas element itself.\n * Attempt to unwrap the item passed into the chart constructor so that it is a canvas element (if possible).\n */\nfunction getCanvas(item) {\n  if (_isDomSupported() && typeof item === 'string') {\n    item = document.getElementById(item);\n  } else if (item && item.length) {\n    // Support for array based queries (such as jQuery)\n    item = item[0];\n  }\n\n  if (item && item.canvas) {\n    // Support for any object associated to a canvas (including a context2d)\n    item = item.canvas;\n  }\n  return item;\n}\n\nconst instances = {};\nconst getChart = (key) => {\n  const canvas = getCanvas(key);\n  return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\n\nfunction moveNumericKeys(obj, start, move) {\n  const keys = Object.keys(obj);\n  for (const key of keys) {\n    const intKey = +key;\n    if (intKey >= start) {\n      const value = obj[key];\n      delete obj[key];\n      if (move > 0 || intKey > start) {\n        obj[intKey + move] = value;\n      }\n    }\n  }\n}\n\n/**\n * @param {ChartEvent} e\n * @param {ChartEvent|null} lastEvent\n * @param {boolean} inChartArea\n * @param {boolean} isClick\n * @returns {ChartEvent|null}\n */\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n  if (!inChartArea || e.type === 'mouseout') {\n    return null;\n  }\n  if (isClick) {\n    return lastEvent;\n  }\n  return e;\n}\n\nclass Chart {\n\n  static defaults = defaults;\n  static instances = instances;\n  static overrides = overrides;\n  static registry = registry;\n  static version = version;\n  static getChart = getChart;\n\n  static register(...items) {\n    registry.add(...items);\n    invalidatePlugins();\n  }\n\n  static unregister(...items) {\n    registry.remove(...items);\n    invalidatePlugins();\n  }\n\n  // eslint-disable-next-line max-statements\n  constructor(item, userConfig) {\n    const config = this.config = new Config(userConfig);\n    const initialCanvas = getCanvas(item);\n    const existingChart = getChart(initialCanvas);\n    if (existingChart) {\n      throw new Error(\n        'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n      );\n    }\n\n    const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n\n    this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n    this.platform.updateConfig(config);\n\n    const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n    const canvas = context && context.canvas;\n    const height = canvas && canvas.height;\n    const width = canvas && canvas.width;\n\n    this.id = uid();\n    this.ctx = context;\n    this.canvas = canvas;\n    this.width = width;\n    this.height = height;\n    this._options = options;\n    // Store the previously used aspect ratio to determine if a resize\n    // is needed during updates. Do this after _options is set since\n    // aspectRatio uses a getter\n    this._aspectRatio = this.aspectRatio;\n    this._layers = [];\n    this._metasets = [];\n    this._stacks = undefined;\n    this.boxes = [];\n    this.currentDevicePixelRatio = undefined;\n    this.chartArea = undefined;\n    this._active = [];\n    this._lastEvent = undefined;\n    this._listeners = {};\n    /** @type {?{attach?: function, detach?: function, resize?: function}} */\n    this._responsiveListeners = undefined;\n    this._sortedMetasets = [];\n    this.scales = {};\n    this._plugins = new PluginService();\n    this.$proxies = {};\n    this._hiddenIndices = {};\n    this.attached = false;\n    this._animationsDisabled = undefined;\n    this.$context = undefined;\n    this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n    this._dataChanges = [];\n\n    // Add the chart instance to the global namespace\n    instances[this.id] = this;\n\n    if (!context || !canvas) {\n      // The given item is not a compatible context2d element, let's return before finalizing\n      // the chart initialization but after setting basic chart / controller properties that\n      // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n      // https://github.com/chartjs/Chart.js/issues/2807\n      console.error(\"Failed to create chart: can't acquire context from the given item\");\n      return;\n    }\n\n    animator.listen(this, 'complete', onAnimationsComplete);\n    animator.listen(this, 'progress', onAnimationProgress);\n\n    this._initialize();\n    if (this.attached) {\n      this.update();\n    }\n  }\n\n  get aspectRatio() {\n    const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n    if (!isNullOrUndef(aspectRatio)) {\n      // If aspectRatio is defined in options, use that.\n      return aspectRatio;\n    }\n\n    if (maintainAspectRatio && _aspectRatio) {\n      // If maintainAspectRatio is truthly and we had previously determined _aspectRatio, use that\n      return _aspectRatio;\n    }\n\n    // Calculate\n    return height ? width / height : null;\n  }\n\n  get data() {\n    return this.config.data;\n  }\n\n  set data(data) {\n    this.config.data = data;\n  }\n\n  get options() {\n    return this._options;\n  }\n\n  set options(options) {\n    this.config.options = options;\n  }\n\n  get registry() {\n    return registry;\n  }\n\n  /**\n\t * @private\n\t */\n  _initialize() {\n    // Before init plugin notification\n    this.notifyPlugins('beforeInit');\n\n    if (this.options.responsive) {\n      this.resize();\n    } else {\n      retinaScale(this, this.options.devicePixelRatio);\n    }\n\n    this.bindEvents();\n\n    // After init plugin notification\n    this.notifyPlugins('afterInit');\n\n    return this;\n  }\n\n  clear() {\n    clearCanvas(this.canvas, this.ctx);\n    return this;\n  }\n\n  stop() {\n    animator.stop(this);\n    return this;\n  }\n\n  /**\n\t * Resize the chart to its container or to explicit dimensions.\n\t * @param {number} [width]\n\t * @param {number} [height]\n\t */\n  resize(width, height) {\n    if (!animator.running(this)) {\n      this._resize(width, height);\n    } else {\n      this._resizeBeforeDraw = {width, height};\n    }\n  }\n\n  _resize(width, height) {\n    const options = this.options;\n    const canvas = this.canvas;\n    const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n    const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n    const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n    const mode = this.width ? 'resize' : 'attach';\n\n    this.width = newSize.width;\n    this.height = newSize.height;\n    this._aspectRatio = this.aspectRatio;\n    if (!retinaScale(this, newRatio, true)) {\n      return;\n    }\n\n    this.notifyPlugins('resize', {size: newSize});\n\n    callCallback(options.onResize, [this, newSize], this);\n\n    if (this.attached) {\n      if (this._doResize(mode)) {\n        // The resize update is delayed, only draw without updating.\n        this.render();\n      }\n    }\n  }\n\n  ensureScalesHaveIDs() {\n    const options = this.options;\n    const scalesOptions = options.scales || {};\n\n    each(scalesOptions, (axisOptions, axisID) => {\n      axisOptions.id = axisID;\n    });\n  }\n\n  /**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n  buildOrUpdateScales() {\n    const options = this.options;\n    const scaleOpts = options.scales;\n    const scales = this.scales;\n    const updated = Object.keys(scales).reduce((obj, id) => {\n      obj[id] = false;\n      return obj;\n    }, {});\n    let items = [];\n\n    if (scaleOpts) {\n      items = items.concat(\n        Object.keys(scaleOpts).map((id) => {\n          const scaleOptions = scaleOpts[id];\n          const axis = determineAxis(id, scaleOptions);\n          const isRadial = axis === 'r';\n          const isHorizontal = axis === 'x';\n          return {\n            options: scaleOptions,\n            dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n            dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n          };\n        })\n      );\n    }\n\n    each(items, (item) => {\n      const scaleOptions = item.options;\n      const id = scaleOptions.id;\n      const axis = determineAxis(id, scaleOptions);\n      const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n      if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n        scaleOptions.position = item.dposition;\n      }\n\n      updated[id] = true;\n      let scale = null;\n      if (id in scales && scales[id].type === scaleType) {\n        scale = scales[id];\n      } else {\n        const scaleClass = registry.getScale(scaleType);\n        scale = new scaleClass({\n          id,\n          type: scaleType,\n          ctx: this.ctx,\n          chart: this\n        });\n        scales[scale.id] = scale;\n      }\n\n      scale.init(scaleOptions, options);\n    });\n    // clear up discarded scales\n    each(updated, (hasUpdated, id) => {\n      if (!hasUpdated) {\n        delete scales[id];\n      }\n    });\n\n    each(scales, (scale) => {\n      layouts.configure(this, scale, scale.options);\n      layouts.addBox(this, scale);\n    });\n  }\n\n  /**\n\t * @private\n\t */\n  _updateMetasets() {\n    const metasets = this._metasets;\n    const numData = this.data.datasets.length;\n    const numMeta = metasets.length;\n\n    metasets.sort((a, b) => a.index - b.index);\n    if (numMeta > numData) {\n      for (let i = numData; i < numMeta; ++i) {\n        this._destroyDatasetMeta(i);\n      }\n      metasets.splice(numData, numMeta - numData);\n    }\n    this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n  }\n\n  /**\n\t * @private\n\t */\n  _removeUnreferencedMetasets() {\n    const {_metasets: metasets, data: {datasets}} = this;\n    if (metasets.length > datasets.length) {\n      delete this._stacks;\n    }\n    metasets.forEach((meta, index) => {\n      if (datasets.filter(x => x === meta._dataset).length === 0) {\n        this._destroyDatasetMeta(index);\n      }\n    });\n  }\n\n  buildOrUpdateControllers() {\n    const newControllers = [];\n    const datasets = this.data.datasets;\n    let i, ilen;\n\n    this._removeUnreferencedMetasets();\n\n    for (i = 0, ilen = datasets.length; i < ilen; i++) {\n      const dataset = datasets[i];\n      let meta = this.getDatasetMeta(i);\n      const type = dataset.type || this.config.type;\n\n      if (meta.type && meta.type !== type) {\n        this._destroyDatasetMeta(i);\n        meta = this.getDatasetMeta(i);\n      }\n      meta.type = type;\n      meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n      meta.order = dataset.order || 0;\n      meta.index = i;\n      meta.label = '' + dataset.label;\n      meta.visible = this.isDatasetVisible(i);\n\n      if (meta.controller) {\n        meta.controller.updateIndex(i);\n        meta.controller.linkScales();\n      } else {\n        const ControllerClass = registry.getController(type);\n        const {datasetElementType, dataElementType} = defaults.datasets[type];\n        Object.assign(ControllerClass, {\n          dataElementType: registry.getElement(dataElementType),\n          datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n        });\n        meta.controller = new ControllerClass(this, i);\n        newControllers.push(meta.controller);\n      }\n    }\n\n    this._updateMetasets();\n    return newControllers;\n  }\n\n  /**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n  _resetElements() {\n    each(this.data.datasets, (dataset, datasetIndex) => {\n      this.getDatasetMeta(datasetIndex).controller.reset();\n    }, this);\n  }\n\n  /**\n\t* Resets the chart back to its state before the initial animation\n\t*/\n  reset() {\n    this._resetElements();\n    this.notifyPlugins('reset');\n  }\n\n  update(mode) {\n    const config = this.config;\n\n    config.update();\n    const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n    const animsDisabled = this._animationsDisabled = !options.animation;\n\n    this._updateScales();\n    this._checkEventBindings();\n    this._updateHiddenIndices();\n\n    // plugins options references might have change, let's invalidate the cache\n    // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n    this._plugins.invalidate();\n\n    if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n      return;\n    }\n\n    // Make sure dataset controllers are updated and new controllers are reset\n    const newControllers = this.buildOrUpdateControllers();\n\n    this.notifyPlugins('beforeElementsUpdate');\n\n    // Make sure all dataset controllers have correct meta data counts\n    let minPadding = 0;\n    for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n      const {controller} = this.getDatasetMeta(i);\n      const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n      // New controllers will be reset after the layout pass, so we only want to modify\n      // elements added to new datasets\n      controller.buildOrUpdateElements(reset);\n      minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n    }\n    minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n    this._updateLayout(minPadding);\n\n    // Only reset the controllers if we have animations\n    if (!animsDisabled) {\n      // Can only reset the new controllers after the scales have been updated\n      // Reset is done to get the starting point for the initial animation\n      each(newControllers, (controller) => {\n        controller.reset();\n      });\n    }\n\n    this._updateDatasets(mode);\n\n    // Do this before render so that any plugins that need final scale updates can use it\n    this.notifyPlugins('afterUpdate', {mode});\n\n    this._layers.sort(compare2Level('z', '_idx'));\n\n    // Replay last event from before update, or set hover styles on active elements\n    const {_active, _lastEvent} = this;\n    if (_lastEvent) {\n      this._eventHandler(_lastEvent, true);\n    } else if (_active.length) {\n      this._updateHoverStyles(_active, _active, true);\n    }\n\n    this.render();\n  }\n\n  /**\n   * @private\n   */\n  _updateScales() {\n    each(this.scales, (scale) => {\n      layouts.removeBox(this, scale);\n    });\n\n    this.ensureScalesHaveIDs();\n    this.buildOrUpdateScales();\n  }\n\n  /**\n   * @private\n   */\n  _checkEventBindings() {\n    const options = this.options;\n    const existingEvents = new Set(Object.keys(this._listeners));\n    const newEvents = new Set(options.events);\n\n    if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n      // The configured events have changed. Rebind.\n      this.unbindEvents();\n      this.bindEvents();\n    }\n  }\n\n  /**\n   * @private\n   */\n  _updateHiddenIndices() {\n    const {_hiddenIndices} = this;\n    const changes = this._getUniformDataChanges() || [];\n    for (const {method, start, count} of changes) {\n      const move = method === '_removeElements' ? -count : count;\n      moveNumericKeys(_hiddenIndices, start, move);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _getUniformDataChanges() {\n    const _dataChanges = this._dataChanges;\n    if (!_dataChanges || !_dataChanges.length) {\n      return;\n    }\n\n    this._dataChanges = [];\n    const datasetCount = this.data.datasets.length;\n    const makeSet = (idx) => new Set(\n      _dataChanges\n        .filter(c => c[0] === idx)\n        .map((c, i) => i + ',' + c.splice(1).join(','))\n    );\n\n    const changeSet = makeSet(0);\n    for (let i = 1; i < datasetCount; i++) {\n      if (!setsEqual(changeSet, makeSet(i))) {\n        return;\n      }\n    }\n    return Array.from(changeSet)\n      .map(c => c.split(','))\n      .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n  }\n\n  /**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n  _updateLayout(minPadding) {\n    if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n      return;\n    }\n\n    layouts.update(this, this.width, this.height, minPadding);\n\n    const area = this.chartArea;\n    const noArea = area.width <= 0 || area.height <= 0;\n\n    this._layers = [];\n    each(this.boxes, (box) => {\n      if (noArea && box.position === 'chartArea') {\n        // Skip drawing and configuring chartArea boxes when chartArea is zero or negative\n        return;\n      }\n\n      // configure is called twice, once in core.scale.update and once here.\n      // Here the boxes are fully updated and at their final positions.\n      if (box.configure) {\n        box.configure();\n      }\n      this._layers.push(...box._layers());\n    }, this);\n\n    this._layers.forEach((item, index) => {\n      item._idx = index;\n    });\n\n    this.notifyPlugins('afterLayout');\n  }\n\n  /**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n  _updateDatasets(mode) {\n    if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n      return;\n    }\n\n    for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n      this.getDatasetMeta(i).controller.configure();\n    }\n\n    for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n      this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n    }\n\n    this.notifyPlugins('afterDatasetsUpdate', {mode});\n  }\n\n  /**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n  _updateDataset(index, mode) {\n    const meta = this.getDatasetMeta(index);\n    const args = {meta, index, mode, cancelable: true};\n\n    if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n      return;\n    }\n\n    meta.controller._update(mode);\n\n    args.cancelable = false;\n    this.notifyPlugins('afterDatasetUpdate', args);\n  }\n\n  render() {\n    if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n      return;\n    }\n\n    if (animator.has(this)) {\n      if (this.attached && !animator.running(this)) {\n        animator.start(this);\n      }\n    } else {\n      this.draw();\n      onAnimationsComplete({chart: this});\n    }\n  }\n\n  draw() {\n    let i;\n    if (this._resizeBeforeDraw) {\n      const {width, height} = this._resizeBeforeDraw;\n      // Unset pending resize request now to avoid possible recursion within _resize\n      this._resizeBeforeDraw = null;\n      this._resize(width, height);\n    }\n    this.clear();\n\n    if (this.width <= 0 || this.height <= 0) {\n      return;\n    }\n\n    if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n      return;\n    }\n\n    // Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n    // currently be part of layers. Instead, we draw\n    // layers <= 0 before(default, backward compat), and the rest after\n    const layers = this._layers;\n    for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n      layers[i].draw(this.chartArea);\n    }\n\n    this._drawDatasets();\n\n    // Rest of layers\n    for (; i < layers.length; ++i) {\n      layers[i].draw(this.chartArea);\n    }\n\n    this.notifyPlugins('afterDraw');\n  }\n\n  /**\n\t * @private\n\t */\n  _getSortedDatasetMetas(filterVisible) {\n    const metasets = this._sortedMetasets;\n    const result = [];\n    let i, ilen;\n\n    for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n      const meta = metasets[i];\n      if (!filterVisible || meta.visible) {\n        result.push(meta);\n      }\n    }\n\n    return result;\n  }\n\n  /**\n\t * Gets the visible dataset metas in drawing order\n\t * @return {object[]}\n\t */\n  getSortedVisibleDatasetMetas() {\n    return this._getSortedDatasetMetas(true);\n  }\n\n  /**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n  _drawDatasets() {\n    if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n      return;\n    }\n\n    const metasets = this.getSortedVisibleDatasetMetas();\n    for (let i = metasets.length - 1; i >= 0; --i) {\n      this._drawDataset(metasets[i]);\n    }\n\n    this.notifyPlugins('afterDatasetsDraw');\n  }\n\n  /**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n  _drawDataset(meta) {\n    const ctx = this.ctx;\n    const args = {\n      meta,\n      index: meta.index,\n      cancelable: true\n    };\n    // @ts-expect-error\n    const clip = getDatasetClipArea(this, meta);\n\n    if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n      return;\n    }\n\n    if (clip) {\n      clipArea(ctx, clip);\n    }\n\n    meta.controller.draw();\n\n    if (clip) {\n      unclipArea(ctx);\n    }\n\n    args.cancelable = false;\n    this.notifyPlugins('afterDatasetDraw', args);\n  }\n\n  /**\n   * Checks whether the given point is in the chart area.\n   * @param {Point} point - in relative coordinates (see, e.g., getRelativePosition)\n   * @returns {boolean}\n   */\n  isPointInArea(point) {\n    return _isPointInArea(point, this.chartArea, this._minPadding);\n  }\n\n  getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n    const method = Interaction.modes[mode];\n    if (typeof method === 'function') {\n      return method(this, e, options, useFinalPosition);\n    }\n\n    return [];\n  }\n\n  getDatasetMeta(datasetIndex) {\n    const dataset = this.data.datasets[datasetIndex];\n    const metasets = this._metasets;\n    let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n\n    if (!meta) {\n      meta = {\n        type: null,\n        data: [],\n        dataset: null,\n        controller: null,\n        hidden: null,\t\t\t// See isDatasetVisible() comment\n        xAxisID: null,\n        yAxisID: null,\n        order: dataset && dataset.order || 0,\n        index: datasetIndex,\n        _dataset: dataset,\n        _parsed: [],\n        _sorted: false\n      };\n      metasets.push(meta);\n    }\n\n    return meta;\n  }\n\n  getContext() {\n    return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n  }\n\n  getVisibleDatasetCount() {\n    return this.getSortedVisibleDatasetMetas().length;\n  }\n\n  isDatasetVisible(datasetIndex) {\n    const dataset = this.data.datasets[datasetIndex];\n    if (!dataset) {\n      return false;\n    }\n\n    const meta = this.getDatasetMeta(datasetIndex);\n\n    // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n    // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n    return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n  }\n\n  setDatasetVisibility(datasetIndex, visible) {\n    const meta = this.getDatasetMeta(datasetIndex);\n    meta.hidden = !visible;\n  }\n\n  toggleDataVisibility(index) {\n    this._hiddenIndices[index] = !this._hiddenIndices[index];\n  }\n\n  getDataVisibility(index) {\n    return !this._hiddenIndices[index];\n  }\n\n  /**\n\t * @private\n\t */\n  _updateVisibility(datasetIndex, dataIndex, visible) {\n    const mode = visible ? 'show' : 'hide';\n    const meta = this.getDatasetMeta(datasetIndex);\n    const anims = meta.controller._resolveAnimations(undefined, mode);\n\n    if (defined(dataIndex)) {\n      meta.data[dataIndex].hidden = !visible;\n      this.update();\n    } else {\n      this.setDatasetVisibility(datasetIndex, visible);\n      // Animate visible state, so hide animation can be seen. This could be handled better if update / updateDataset returned a Promise.\n      anims.update(meta, {visible});\n      this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n    }\n  }\n\n  hide(datasetIndex, dataIndex) {\n    this._updateVisibility(datasetIndex, dataIndex, false);\n  }\n\n  show(datasetIndex, dataIndex) {\n    this._updateVisibility(datasetIndex, dataIndex, true);\n  }\n\n  /**\n\t * @private\n\t */\n  _destroyDatasetMeta(datasetIndex) {\n    const meta = this._metasets[datasetIndex];\n    if (meta && meta.controller) {\n      meta.controller._destroy();\n    }\n    delete this._metasets[datasetIndex];\n  }\n\n  _stop() {\n    let i, ilen;\n    this.stop();\n    animator.remove(this);\n\n    for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n      this._destroyDatasetMeta(i);\n    }\n  }\n\n  destroy() {\n    this.notifyPlugins('beforeDestroy');\n    const {canvas, ctx} = this;\n\n    this._stop();\n    this.config.clearCache();\n\n    if (canvas) {\n      this.unbindEvents();\n      clearCanvas(canvas, ctx);\n      this.platform.releaseContext(ctx);\n      this.canvas = null;\n      this.ctx = null;\n    }\n\n    delete instances[this.id];\n\n    this.notifyPlugins('afterDestroy');\n  }\n\n  toBase64Image(...args) {\n    return this.canvas.toDataURL(...args);\n  }\n\n  /**\n\t * @private\n\t */\n  bindEvents() {\n    this.bindUserEvents();\n    if (this.options.responsive) {\n      this.bindResponsiveEvents();\n    } else {\n      this.attached = true;\n    }\n  }\n\n  /**\n   * @private\n   */\n  bindUserEvents() {\n    const listeners = this._listeners;\n    const platform = this.platform;\n\n    const _add = (type, listener) => {\n      platform.addEventListener(this, type, listener);\n      listeners[type] = listener;\n    };\n\n    const listener = (e, x, y) => {\n      e.offsetX = x;\n      e.offsetY = y;\n      this._eventHandler(e);\n    };\n\n    each(this.options.events, (type) => _add(type, listener));\n  }\n\n  /**\n   * @private\n   */\n  bindResponsiveEvents() {\n    if (!this._responsiveListeners) {\n      this._responsiveListeners = {};\n    }\n    const listeners = this._responsiveListeners;\n    const platform = this.platform;\n\n    const _add = (type, listener) => {\n      platform.addEventListener(this, type, listener);\n      listeners[type] = listener;\n    };\n    const _remove = (type, listener) => {\n      if (listeners[type]) {\n        platform.removeEventListener(this, type, listener);\n        delete listeners[type];\n      }\n    };\n\n    const listener = (width, height) => {\n      if (this.canvas) {\n        this.resize(width, height);\n      }\n    };\n\n    let detached; // eslint-disable-line prefer-const\n    const attached = () => {\n      _remove('attach', attached);\n\n      this.attached = true;\n      this.resize();\n\n      _add('resize', listener);\n      _add('detach', detached);\n    };\n\n    detached = () => {\n      this.attached = false;\n\n      _remove('resize', listener);\n\n      // Stop animating and remove metasets, so when re-attached, the animations start from beginning.\n      this._stop();\n      this._resize(0, 0);\n\n      _add('attach', attached);\n    };\n\n    if (platform.isAttached(this.canvas)) {\n      attached();\n    } else {\n      detached();\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  unbindEvents() {\n    each(this._listeners, (listener, type) => {\n      this.platform.removeEventListener(this, type, listener);\n    });\n    this._listeners = {};\n\n    each(this._responsiveListeners, (listener, type) => {\n      this.platform.removeEventListener(this, type, listener);\n    });\n    this._responsiveListeners = undefined;\n  }\n\n  updateHoverStyle(items, mode, enabled) {\n    const prefix = enabled ? 'set' : 'remove';\n    let meta, item, i, ilen;\n\n    if (mode === 'dataset') {\n      meta = this.getDatasetMeta(items[0].datasetIndex);\n      meta.controller['_' + prefix + 'DatasetHoverStyle']();\n    }\n\n    for (i = 0, ilen = items.length; i < ilen; ++i) {\n      item = items[i];\n      const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n      if (controller) {\n        controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n      }\n    }\n  }\n\n  /**\n\t * Get active (hovered) elements\n\t * @returns array\n\t */\n  getActiveElements() {\n    return this._active || [];\n  }\n\n  /**\n\t * Set active (hovered) elements\n\t * @param {array} activeElements New active data points\n\t */\n  setActiveElements(activeElements) {\n    const lastActive = this._active || [];\n    const active = activeElements.map(({datasetIndex, index}) => {\n      const meta = this.getDatasetMeta(datasetIndex);\n      if (!meta) {\n        throw new Error('No dataset found at index ' + datasetIndex);\n      }\n\n      return {\n        datasetIndex,\n        element: meta.data[index],\n        index,\n      };\n    });\n    const changed = !_elementsEqual(active, lastActive);\n\n    if (changed) {\n      this._active = active;\n      // Make sure we don't use the previous mouse event to override the active elements in update.\n      this._lastEvent = null;\n      this._updateHoverStyles(active, lastActive);\n    }\n  }\n\n  /**\n\t * Calls enabled plugins on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Object} [args] - Extra arguments to apply to the hook call.\n   * @param {import('./core.plugins.js').filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n  notifyPlugins(hook, args, filter) {\n    return this._plugins.notify(this, hook, args, filter);\n  }\n\n  /**\n   * Check if a plugin with the specific ID is registered and enabled\n   * @param {string} pluginId - The ID of the plugin of which to check if it is enabled\n   * @returns {boolean}\n   */\n  isPluginEnabled(pluginId) {\n    return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n  }\n\n  /**\n\t * @private\n\t */\n  _updateHoverStyles(active, lastActive, replay) {\n    const hoverOptions = this.options.hover;\n    const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n    const deactivated = diff(lastActive, active);\n    const activated = replay ? active : diff(active, lastActive);\n\n    if (deactivated.length) {\n      this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n    }\n\n    if (activated.length && hoverOptions.mode) {\n      this.updateHoverStyle(activated, hoverOptions.mode, true);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _eventHandler(e, replay) {\n    const args = {\n      event: e,\n      replay,\n      cancelable: true,\n      inChartArea: this.isPointInArea(e)\n    };\n    const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n\n    if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n      return;\n    }\n\n    const changed = this._handleEvent(e, replay, args.inChartArea);\n\n    args.cancelable = false;\n    this.notifyPlugins('afterEvent', args, eventFilter);\n\n    if (changed || args.changed) {\n      this.render();\n    }\n\n    return this;\n  }\n\n  /**\n\t * Handle an event\n\t * @param {ChartEvent} e the event to handle\n\t * @param {boolean} [replay] - true if the event was replayed by `update`\n   * @param {boolean} [inChartArea] - true if the event is inside chartArea\n\t * @return {boolean} true if the chart needs to re-render\n\t * @private\n\t */\n  _handleEvent(e, replay, inChartArea) {\n    const {_active: lastActive = [], options} = this;\n\n    // If the event is replayed from `update`, we should evaluate with the final positions.\n    //\n    // The `replay`:\n    // It's the last event (excluding click) that has occurred before `update`.\n    // So mouse has not moved. It's also over the chart, because there is a `replay`.\n    //\n    // The why:\n    // If animations are active, the elements haven't moved yet compared to state before update.\n    // But if they will, we are activating the elements that would be active, if this check\n    // was done after the animations have completed. => \"final positions\".\n    // If there is no animations, the \"final\" and \"current\" positions are equal.\n    // This is done so we do not have to evaluate the active elements each animation frame\n    // - it would be expensive.\n    const useFinalPosition = replay;\n    const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n    const isClick = _isClickEvent(e);\n    const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n\n    if (inChartArea) {\n      // Set _lastEvent to null while we are processing the event handlers.\n      // This prevents recursion if the handler calls chart.update()\n      this._lastEvent = null;\n\n      // Invoke onHover hook\n      callCallback(options.onHover, [e, active, this], this);\n\n      if (isClick) {\n        callCallback(options.onClick, [e, active, this], this);\n      }\n    }\n\n    const changed = !_elementsEqual(active, lastActive);\n    if (changed || replay) {\n      this._active = active;\n      this._updateHoverStyles(active, lastActive, replay);\n    }\n\n    this._lastEvent = lastEvent;\n\n    return changed;\n  }\n\n  /**\n   * @param {ChartEvent} e - The event\n   * @param {import('../types/index.js').ActiveElement[]} lastActive - Previously active elements\n   * @param {boolean} inChartArea - Is the event inside chartArea\n   * @param {boolean} useFinalPosition - Should the evaluation be done with current or final (after animation) element positions\n   * @returns {import('../types/index.js').ActiveElement[]} - The active elements\n   * @pravate\n   */\n  _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n    if (e.type === 'mouseout') {\n      return [];\n    }\n\n    if (!inChartArea) {\n      // Let user control the active elements outside chartArea. Eg. using Legend.\n      return lastActive;\n    }\n\n    const hoverOptions = this.options.hover;\n    return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n  }\n}\n\n// @ts-ignore\nfunction invalidatePlugins() {\n  return each(Chart.instances, (chart) => chart._plugins.invalidate());\n}\n\nexport default Chart;\n", "import Element from '../core/core.element.js';\nimport {_angleBetween, getAngleFromPoint, TAU, HALF_PI, valueOrDefault} from '../helpers/index.js';\nimport {PI, _angleDiff, _normalizeAngle, _isBetween, _limitValue} from '../helpers/helpers.math.js';\nimport {_readValueToProps} from '../helpers/helpers.options.js';\nimport type {ArcOptions, Point} from '../types/index.js';\n\nfunction clipSelf(ctx: CanvasRenderingContext2D, element: ArcElement, endAngle: number) {\n  const {startAngle, x, y, outerRadius, innerRadius, options} = element;\n  const {borderWidth, borderJoinStyle} = options;\n  const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n  ctx.beginPath();\n  ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n\n  if (innerRadius > 0) {\n    const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n    ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n  } else {\n    const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n\n    if (borderJoinStyle === 'round') {\n      ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n    } else if (borderJoinStyle === 'bevel') {\n      const r = 2 * clipWidth * clipWidth;\n      const endX = -r * Math.cos(endAngle + PI / 2) + x;\n      const endY = -r * Math.sin(endAngle + PI / 2) + y;\n      const startX = r * Math.cos(startAngle + PI / 2) + x;\n      const startY = r * Math.sin(startAngle + PI / 2) + y;\n      ctx.lineTo(endX, endY);\n      ctx.lineTo(startX, startY);\n    }\n  }\n  ctx.closePath();\n\n  ctx.moveTo(0, 0);\n  ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n\n  ctx.clip('evenodd');\n}\n\n\nfunction clipArc(ctx: CanvasRenderingContext2D, element: ArcElement, endAngle: number) {\n  const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n  let angleMargin = pixelMargin / outerRadius;\n\n  // Draw an inner border by clipping the arc and drawing a double-width border\n  // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n  ctx.beginPath();\n  ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n  if (innerRadius > pixelMargin) {\n    angleMargin = pixelMargin / innerRadius;\n    ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n  } else {\n    ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n  }\n  ctx.closePath();\n  ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n  return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\n/**\n * Parse border radius from the provided options\n */\nfunction parseBorderRadius(arc: ArcElement, innerRadius: number, outerRadius: number, angleDelta: number) {\n  const o = toRadiusCorners(arc.options.borderRadius);\n  const halfThickness = (outerRadius - innerRadius) / 2;\n  const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n  // Outer limits are complicated. We want to compute the available angular distance at\n  // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n  // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n  //\n  // If the borderRadius is large, that value can become negative.\n  // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n  // we know that the thickness term will dominate and compute the limits at that point\n  const computeOuterLimit = (val) => {\n    const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n    return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n  };\n\n  return {\n    outerStart: computeOuterLimit(o.outerStart),\n    outerEnd: computeOuterLimit(o.outerEnd),\n    innerStart: _limitValue(o.innerStart, 0, innerLimit),\n    innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n  };\n}\n\n/**\n * Convert (r, 𝜃) to (x, y)\n */\nfunction rThetaToXY(r: number, theta: number, x: number, y: number) {\n  return {\n    x: x + r * Math.cos(theta),\n    y: y + r * Math.sin(theta),\n  };\n}\n\n\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n *   Start      End\n *\n *    1--->a--->2    Outer\n *   /           \\\n *   8           3\n *   |           |\n *   |           |\n *   7           4\n *   \\           /\n *    6<---b<---5    Inner\n */\nfunction pathArc(\n  ctx: CanvasRenderingContext2D,\n  element: ArcElement,\n  offset: number,\n  spacing: number,\n  end: number,\n  circular: boolean,\n) {\n  const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n\n  const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n  const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n\n  let spacingOffset = 0;\n  const alpha = end - start;\n\n  if (spacing) {\n    // When spacing is present, it is the same for all items\n    // So we adjust the start and end angle of the arc such that\n    // the distance is the same as it would be without the spacing\n    const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n    const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n    const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n    const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n    spacingOffset = (alpha - adjustedAngle) / 2;\n  }\n\n  const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n  const angleOffset = (alpha - beta) / 2;\n  const startAngle = start + angleOffset + spacingOffset;\n  const endAngle = end - angleOffset - spacingOffset;\n  const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius(element, innerRadius, outerRadius, endAngle - startAngle);\n\n  const outerStartAdjustedRadius = outerRadius - outerStart;\n  const outerEndAdjustedRadius = outerRadius - outerEnd;\n  const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n  const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n\n  const innerStartAdjustedRadius = innerRadius + innerStart;\n  const innerEndAdjustedRadius = innerRadius + innerEnd;\n  const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n  const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n\n  ctx.beginPath();\n\n  if (circular) {\n    // The first arc segments from point 1 to point a to point 2\n    const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n    ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n    ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n\n    // The corner segment from point 2 to point 3\n    if (outerEnd > 0) {\n      const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n    }\n\n    // The line from point 3 to point 4\n    const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n    ctx.lineTo(p4.x, p4.y);\n\n    // The corner segment from point 4 to point 5\n    if (innerEnd > 0) {\n      const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n    }\n\n    // The inner arc from point 5 to point b to point 6\n    const innerMidAdjustedAngle = ((endAngle - (innerEnd / innerRadius)) + (startAngle + (innerStart / innerRadius))) / 2;\n    ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), innerMidAdjustedAngle, true);\n    ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + (innerStart / innerRadius), true);\n\n    // The corner segment from point 6 to point 7\n    if (innerStart > 0) {\n      const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n    }\n\n    // The line from point 7 to point 8\n    const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n    ctx.lineTo(p8.x, p8.y);\n\n    // The corner segment from point 8 to point 1\n    if (outerStart > 0) {\n      const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n    }\n  } else {\n    ctx.moveTo(x, y);\n\n    const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n    const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n    ctx.lineTo(outerStartX, outerStartY);\n\n    const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n    const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n    ctx.lineTo(outerEndX, outerEndY);\n  }\n\n  ctx.closePath();\n}\n\nfunction drawArc(\n  ctx: CanvasRenderingContext2D,\n  element: ArcElement,\n  offset: number,\n  spacing: number,\n  circular: boolean,\n) {\n  const {fullCircles, startAngle, circumference} = element;\n  let endAngle = element.endAngle;\n  if (fullCircles) {\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    for (let i = 0; i < fullCircles; ++i) {\n      ctx.fill();\n    }\n    if (!isNaN(circumference)) {\n      endAngle = startAngle + (circumference % TAU || TAU);\n    }\n  }\n  pathArc(ctx, element, offset, spacing, endAngle, circular);\n  ctx.fill();\n  return endAngle;\n}\n\nfunction drawBorder(\n  ctx: CanvasRenderingContext2D,\n  element: ArcElement,\n  offset: number,\n  spacing: number,\n  circular: boolean,\n) {\n  const {fullCircles, startAngle, circumference, options} = element;\n  const {borderWidth, borderJoinStyle, borderDash, borderDashOffset, borderRadius} = options;\n  const inner = options.borderAlign === 'inner';\n\n  if (!borderWidth) {\n    return;\n  }\n\n  ctx.setLineDash(borderDash || []);\n  ctx.lineDashOffset = borderDashOffset;\n\n  if (inner) {\n    ctx.lineWidth = borderWidth * 2;\n    ctx.lineJoin = borderJoinStyle || 'round';\n  } else {\n    ctx.lineWidth = borderWidth;\n    ctx.lineJoin = borderJoinStyle || 'bevel';\n  }\n\n  let endAngle = element.endAngle;\n  if (fullCircles) {\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    for (let i = 0; i < fullCircles; ++i) {\n      ctx.stroke();\n    }\n    if (!isNaN(circumference)) {\n      endAngle = startAngle + (circumference % TAU || TAU);\n    }\n  }\n\n  if (inner) {\n    clipArc(ctx, element, endAngle);\n  }\n\n  if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n    clipSelf(ctx, element, endAngle);\n  }\n\n  if (!fullCircles) {\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    ctx.stroke();\n  }\n}\n\nexport interface ArcProps extends Point {\n  startAngle: number;\n  endAngle: number;\n  innerRadius: number;\n  outerRadius: number;\n  circumference: number;\n}\n\nexport default class ArcElement extends Element<ArcProps, ArcOptions> {\n\n  static id = 'arc';\n\n  static defaults = {\n    borderAlign: 'center',\n    borderColor: '#fff',\n    borderDash: [],\n    borderDashOffset: 0,\n    borderJoinStyle: undefined,\n    borderRadius: 0,\n    borderWidth: 2,\n    offset: 0,\n    spacing: 0,\n    angle: undefined,\n    circular: true,\n    selfJoin: false,\n  };\n\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor'\n  };\n\n  static descriptors = {\n    _scriptable: true,\n    _indexable: (name) => name !== 'borderDash'\n  };\n\n  circumference: number;\n  endAngle: number;\n  fullCircles: number;\n  innerRadius: number;\n  outerRadius: number;\n  pixelMargin: number;\n  startAngle: number;\n\n  constructor(cfg) {\n    super();\n\n    this.options = undefined;\n    this.circumference = undefined;\n    this.startAngle = undefined;\n    this.endAngle = undefined;\n    this.innerRadius = undefined;\n    this.outerRadius = undefined;\n    this.pixelMargin = 0;\n    this.fullCircles = 0;\n\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n\n  inRange(chartX: number, chartY: number, useFinalPosition: boolean) {\n    const point = this.getProps(['x', 'y'], useFinalPosition);\n    const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n    const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n      'startAngle',\n      'endAngle',\n      'innerRadius',\n      'outerRadius',\n      'circumference'\n    ], useFinalPosition);\n    const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n    const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n    const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n    const betweenAngles = _circumference >= TAU || nonZeroBetween;\n    const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n\n    return (betweenAngles && withinRadius);\n  }\n\n  getCenterPoint(useFinalPosition: boolean) {\n    const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n      'x',\n      'y',\n      'startAngle',\n      'endAngle',\n      'innerRadius',\n      'outerRadius'\n    ], useFinalPosition);\n    const {offset, spacing} = this.options;\n    const halfAngle = (startAngle + endAngle) / 2;\n    const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n    return {\n      x: x + Math.cos(halfAngle) * halfRadius,\n      y: y + Math.sin(halfAngle) * halfRadius\n    };\n  }\n\n  tooltipPosition(useFinalPosition: boolean) {\n    return this.getCenterPoint(useFinalPosition);\n  }\n\n  draw(ctx: CanvasRenderingContext2D) {\n    const {options, circumference} = this;\n    const offset = (options.offset || 0) / 4;\n    const spacing = (options.spacing || 0) / 2;\n    const circular = options.circular;\n    this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n    this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n    if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n      return;\n    }\n\n    ctx.save();\n\n    const halfAngle = (this.startAngle + this.endAngle) / 2;\n    ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n    const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n    const radiusOffset = offset * fix;\n\n    ctx.fillStyle = options.backgroundColor;\n    ctx.strokeStyle = options.borderColor;\n\n    drawArc(ctx, this, radiusOffset, spacing, circular);\n    drawBorder(ctx, this, radiusOffset, spacing, circular);\n\n    ctx.restore();\n  }\n}\n", "import Element from '../core/core.element.js';\nimport {_bezierInterpolation, _pointInLine, _steppedInterpolation} from '../helpers/helpers.interpolation.js';\nimport {_computeSegments, _boundSegments} from '../helpers/helpers.segment.js';\nimport {_steppedLineTo, _bezierCurveTo} from '../helpers/helpers.canvas.js';\nimport {_updateBezierControlPoints} from '../helpers/helpers.curve.js';\nimport {valueOrDefault} from '../helpers/index.js';\n\n/**\n * @typedef { import('./element.point.js').default } PointElement\n */\n\nfunction setStyle(ctx, options, style = options) {\n  ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n  ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n  ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n  ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n  ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n  ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n  ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @returns {any}\n */\nfunction getLineMethod(options) {\n  if (options.stepped) {\n    return _steppedLineTo;\n  }\n\n  if (options.tension || options.cubicInterpolationMode === 'monotone') {\n    return _bezierCurveTo;\n  }\n\n  return lineTo;\n}\n\nfunction pathVars(points, segment, params = {}) {\n  const count = points.length;\n  const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n  const {start: segmentStart, end: segmentEnd} = segment;\n  const start = Math.max(paramsStart, segmentStart);\n  const end = Math.min(paramsEnd, segmentEnd);\n  const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n\n  return {\n    count,\n    start,\n    loop: segment.loop,\n    ilen: end < start && !outside ? count + end - start : end - start\n  };\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction pathSegment(ctx, line, segment, params) {\n  const {points, options} = line;\n  const {count, start, loop, ilen} = pathVars(points, segment, params);\n  const lineMethod = getLineMethod(options);\n  // eslint-disable-next-line prefer-const\n  let {move = true, reverse} = params || {};\n  let i, point, prev;\n\n  for (i = 0; i <= ilen; ++i) {\n    point = points[(start + (reverse ? ilen - i : i)) % count];\n\n    if (point.skip) {\n      // If there is a skipped point inside a segment, spanGaps must be true\n      continue;\n    } else if (move) {\n      ctx.moveTo(point.x, point.y);\n      move = false;\n    } else {\n      lineMethod(ctx, prev, point, reverse, options.stepped);\n    }\n\n    prev = point;\n  }\n\n  if (loop) {\n    point = points[(start + (reverse ? ilen : 0)) % count];\n    lineMethod(ctx, prev, point, reverse, options.stepped);\n  }\n\n  return !!loop;\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction fastPathSegment(ctx, line, segment, params) {\n  const points = line.points;\n  const {count, start, ilen} = pathVars(points, segment, params);\n  const {move = true, reverse} = params || {};\n  let avgX = 0;\n  let countX = 0;\n  let i, point, prevX, minY, maxY, lastY;\n\n  const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n  const drawX = () => {\n    if (minY !== maxY) {\n      // Draw line to maxY and minY, using the average x-coordinate\n      ctx.lineTo(avgX, maxY);\n      ctx.lineTo(avgX, minY);\n      // Line to y-value of last point in group. So the line continues\n      // from correct position. Not using move, to have solid path.\n      ctx.lineTo(avgX, lastY);\n    }\n  };\n\n  if (move) {\n    point = points[pointIndex(0)];\n    ctx.moveTo(point.x, point.y);\n  }\n\n  for (i = 0; i <= ilen; ++i) {\n    point = points[pointIndex(i)];\n\n    if (point.skip) {\n      // If there is a skipped point inside a segment, spanGaps must be true\n      continue;\n    }\n\n    const x = point.x;\n    const y = point.y;\n    const truncX = x | 0; // truncated x-coordinate\n\n    if (truncX === prevX) {\n      // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n      if (y < minY) {\n        minY = y;\n      } else if (y > maxY) {\n        maxY = y;\n      }\n      // For first point in group, countX is `0`, so average will be `x` / 1.\n      avgX = (countX * avgX + x) / ++countX;\n    } else {\n      drawX();\n      // Draw line to next x-position, using the first (or only)\n      // y-value in that group\n      ctx.lineTo(x, y);\n\n      prevX = truncX;\n      countX = 0;\n      minY = maxY = y;\n    }\n    // Keep track of the last y-value in group\n    lastY = y;\n  }\n  drawX();\n}\n\n/**\n * @param {LineElement} line - the line\n * @returns {function}\n * @private\n */\nfunction _getSegmentMethod(line) {\n  const opts = line.options;\n  const borderDash = opts.borderDash && opts.borderDash.length;\n  const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n  return useFastPath ? fastPathSegment : pathSegment;\n}\n\n/**\n * @private\n */\nfunction _getInterpolationMethod(options) {\n  if (options.stepped) {\n    return _steppedInterpolation;\n  }\n\n  if (options.tension || options.cubicInterpolationMode === 'monotone') {\n    return _bezierInterpolation;\n  }\n\n  return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n  let path = line._path;\n  if (!path) {\n    path = line._path = new Path2D();\n    if (line.path(path, start, count)) {\n      path.closePath();\n    }\n  }\n  setStyle(ctx, line.options);\n  ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n  const {segments, options} = line;\n  const segmentMethod = _getSegmentMethod(line);\n\n  for (const segment of segments) {\n    setStyle(ctx, options, segment.style);\n    ctx.beginPath();\n    if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n      ctx.closePath();\n    }\n    ctx.stroke();\n  }\n}\n\nconst usePath2D = typeof Path2D === 'function';\n\nfunction draw(ctx, line, start, count) {\n  if (usePath2D && !line.options.segment) {\n    strokePathWithCache(ctx, line, start, count);\n  } else {\n    strokePathDirect(ctx, line, start, count);\n  }\n}\n\nexport default class LineElement extends Element {\n\n  static id = 'line';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    borderCapStyle: 'butt',\n    borderDash: [],\n    borderDashOffset: 0,\n    borderJoinStyle: 'miter',\n    borderWidth: 3,\n    capBezierPoints: true,\n    cubicInterpolationMode: 'default',\n    fill: false,\n    spanGaps: false,\n    stepped: false,\n    tension: 0,\n  };\n\n  /**\n   * @type {any}\n   */\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor',\n    borderColor: 'borderColor'\n  };\n\n\n  static descriptors = {\n    _scriptable: true,\n    _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n  };\n\n\n  constructor(cfg) {\n    super();\n\n    this.animated = true;\n    this.options = undefined;\n    this._chart = undefined;\n    this._loop = undefined;\n    this._fullLoop = undefined;\n    this._path = undefined;\n    this._points = undefined;\n    this._segments = undefined;\n    this._decimated = false;\n    this._pointsUpdated = false;\n    this._datasetIndex = undefined;\n\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n\n  updateControlPoints(chartArea, indexAxis) {\n    const options = this.options;\n    if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n      const loop = options.spanGaps ? this._loop : this._fullLoop;\n      _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n      this._pointsUpdated = true;\n    }\n  }\n\n  set points(points) {\n    this._points = points;\n    delete this._segments;\n    delete this._path;\n    this._pointsUpdated = false;\n  }\n\n  get points() {\n    return this._points;\n  }\n\n  get segments() {\n    return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n  }\n\n  /**\n\t * First non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n  first() {\n    const segments = this.segments;\n    const points = this.points;\n    return segments.length && points[segments[0].start];\n  }\n\n  /**\n\t * Last non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n  last() {\n    const segments = this.segments;\n    const points = this.points;\n    const count = segments.length;\n    return count && points[segments[count - 1].end];\n  }\n\n  /**\n\t * Interpolate a point in this line at the same value on `property` as\n\t * the reference `point` provided\n\t * @param {PointElement} point - the reference point\n\t * @param {string} property - the property to match on\n\t * @returns {PointElement|undefined}\n\t */\n  interpolate(point, property) {\n    const options = this.options;\n    const value = point[property];\n    const points = this.points;\n    const segments = _boundSegments(this, {property, start: value, end: value});\n\n    if (!segments.length) {\n      return;\n    }\n\n    const result = [];\n    const _interpolate = _getInterpolationMethod(options);\n    let i, ilen;\n    for (i = 0, ilen = segments.length; i < ilen; ++i) {\n      const {start, end} = segments[i];\n      const p1 = points[start];\n      const p2 = points[end];\n      if (p1 === p2) {\n        result.push(p1);\n        continue;\n      }\n      const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n      const interpolated = _interpolate(p1, p2, t, options.stepped);\n      interpolated[property] = point[property];\n      result.push(interpolated);\n    }\n    return result.length === 1 ? result[0] : result;\n  }\n\n  /**\n\t * Append a segment of this line to current path.\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} segment\n\t * @param {number} segment.start - start index of the segment, referring the points array\n \t * @param {number} segment.end - end index of the segment, referring the points array\n \t * @param {boolean} segment.loop - indicates that the segment is a loop\n\t * @param {object} params\n\t * @param {boolean} params.move - move to starting point (vs line to it)\n\t * @param {boolean} params.reverse - path the segment from end to start\n\t * @param {number} params.start - limit segment to points starting from `start` index\n\t * @param {number} params.end - limit segment to points ending at `start` + `count` index\n\t * @returns {undefined|boolean} - true if the segment is a full loop (path should be closed)\n\t */\n  pathSegment(ctx, segment, params) {\n    const segmentMethod = _getSegmentMethod(this);\n    return segmentMethod(ctx, this, segment, params);\n  }\n\n  /**\n\t * Append all segments of this line to current path.\n\t * @param {CanvasRenderingContext2D|Path2D} ctx\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t * @returns {undefined|boolean} - true if line is a full loop (path should be closed)\n\t */\n  path(ctx, start, count) {\n    const segments = this.segments;\n    const segmentMethod = _getSegmentMethod(this);\n    let loop = this._loop;\n\n    start = start || 0;\n    count = count || (this.points.length - start);\n\n    for (const segment of segments) {\n      loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n    }\n    return !!loop;\n  }\n\n  /**\n\t * Draw\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} chartArea\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t */\n  draw(ctx, chartArea, start, count) {\n    const options = this.options || {};\n    const points = this.points || [];\n\n    if (points.length && options.borderWidth) {\n      ctx.save();\n\n      draw(ctx, this, start, count);\n\n      ctx.restore();\n    }\n\n    if (this.animated) {\n      // When line is animated, the control points and path are not cached.\n      this._pointsUpdated = false;\n      this._path = undefined;\n    }\n  }\n}\n", "import Element from '../core/core.element.js';\nimport {drawPoint, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport type {\n  CartesianParsedData,\n  ChartArea,\n  Point,\n  PointHoverOptions,\n  PointOptions,\n} from '../types/index.js';\n\nfunction inRange(el: PointElement, pos: number, axis: 'x' | 'y', useFinalPosition?: boolean) {\n  const options = el.options;\n  const {[axis]: value} = el.getProps([axis], useFinalPosition);\n\n  return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\n\nexport type PointProps = Point\n\nexport default class PointElement extends Element<PointProps, PointOptions & PointHoverOptions> {\n\n  static id = 'point';\n\n  parsed: CartesianParsedData;\n  skip?: boolean;\n  stop?: boolean;\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    borderWidth: 1,\n    hitRadius: 1,\n    hoverBorderWidth: 1,\n    hoverRadius: 4,\n    pointStyle: 'circle',\n    radius: 3,\n    rotation: 0\n  };\n\n  /**\n   * @type {any}\n   */\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor',\n    borderColor: 'borderColor'\n  };\n\n  constructor(cfg) {\n    super();\n\n    this.options = undefined;\n    this.parsed = undefined;\n    this.skip = undefined;\n    this.stop = undefined;\n\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n\n  inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n    const options = this.options;\n    const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n    return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n  }\n\n  inXRange(mouseX: number, useFinalPosition?: boolean) {\n    return inRange(this, mouseX, 'x', useFinalPosition);\n  }\n\n  inYRange(mouseY: number, useFinalPosition?: boolean) {\n    return inRange(this, mouseY, 'y', useFinalPosition);\n  }\n\n  getCenterPoint(useFinalPosition?: boolean) {\n    const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n    return {x, y};\n  }\n\n  size(options?: Partial<PointOptions & PointHoverOptions>) {\n    options = options || this.options || {};\n    let radius = options.radius || 0;\n    radius = Math.max(radius, radius && options.hoverRadius || 0);\n    const borderWidth = radius && options.borderWidth || 0;\n    return (radius + borderWidth) * 2;\n  }\n\n  draw(ctx: CanvasRenderingContext2D, area: ChartArea) {\n    const options = this.options;\n\n    if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n      return;\n    }\n\n    ctx.strokeStyle = options.borderColor;\n    ctx.lineWidth = options.borderWidth;\n    ctx.fillStyle = options.backgroundColor;\n    drawPoint(ctx, options, this.x, this.y);\n  }\n\n  getRange() {\n    const options = this.options || {};\n    // @ts-expect-error Fallbacks should never be hit in practice\n    return options.radius + options.hitRadius;\n  }\n}\n", "import Element from '../core/core.element.js';\nimport {isObject, _isBetween, _limitValue} from '../helpers/index.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {toTRBL, toTRBLCorners} from '../helpers/helpers.options.js';\n\n/** @typedef {{ x: number, y: number, base: number, horizontal: boolean, width: number, height: number }} BarProps */\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param {BarElement} bar the bar\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the bar\n * @private\n */\nfunction getBarBounds(bar, useFinalPosition) {\n  const {x, y, base, width, height} = /** @type {BarProps} */ (bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition));\n\n  let left, right, top, bottom, half;\n\n  if (bar.horizontal) {\n    half = height / 2;\n    left = Math.min(x, base);\n    right = Math.max(x, base);\n    top = y - half;\n    bottom = y + half;\n  } else {\n    half = width / 2;\n    left = x - half;\n    right = x + half;\n    top = Math.min(y, base);\n    bottom = Math.max(y, base);\n  }\n\n  return {left, top, right, bottom};\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n  return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n  const value = bar.options.borderWidth;\n  const skip = bar.borderSkipped;\n  const o = toTRBL(value);\n\n  return {\n    t: skipOrLimit(skip.top, o.top, 0, maxH),\n    r: skipOrLimit(skip.right, o.right, 0, maxW),\n    b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n    l: skipOrLimit(skip.left, o.left, 0, maxW)\n  };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n  const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n  const value = bar.options.borderRadius;\n  const o = toTRBLCorners(value);\n  const maxR = Math.min(maxW, maxH);\n  const skip = bar.borderSkipped;\n\n  // If the value is an object, assume the user knows what they are doing\n  // and apply as directed.\n  const enableBorder = enableBorderRadius || isObject(value);\n\n  return {\n    topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n    topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n    bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n    bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n  };\n}\n\nfunction boundingRects(bar) {\n  const bounds = getBarBounds(bar);\n  const width = bounds.right - bounds.left;\n  const height = bounds.bottom - bounds.top;\n  const border = parseBorderWidth(bar, width / 2, height / 2);\n  const radius = parseBorderRadius(bar, width / 2, height / 2);\n\n  return {\n    outer: {\n      x: bounds.left,\n      y: bounds.top,\n      w: width,\n      h: height,\n      radius\n    },\n    inner: {\n      x: bounds.left + border.l,\n      y: bounds.top + border.t,\n      w: width - border.l - border.r,\n      h: height - border.t - border.b,\n      radius: {\n        topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n        topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n        bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n        bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n      }\n    }\n  };\n}\n\nfunction inRange(bar, x, y, useFinalPosition) {\n  const skipX = x === null;\n  const skipY = y === null;\n  const skipBoth = skipX && skipY;\n  const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n\n  return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\n\nfunction hasRadius(radius) {\n  return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\n/**\n * Add a path of a rectangle to the current sub-path\n * @param {CanvasRenderingContext2D} ctx Context\n * @param {*} rect Bounding rect\n */\nfunction addNormalRectPath(ctx, rect) {\n  ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount, refRect = {}) {\n  const x = rect.x !== refRect.x ? -amount : 0;\n  const y = rect.y !== refRect.y ? -amount : 0;\n  const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n  const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n  return {\n    x: rect.x + x,\n    y: rect.y + y,\n    w: rect.w + w,\n    h: rect.h + h,\n    radius: rect.radius\n  };\n}\n\nexport default class BarElement extends Element {\n\n  static id = 'bar';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    borderSkipped: 'start',\n    borderWidth: 0,\n    borderRadius: 0,\n    inflateAmount: 'auto',\n    pointStyle: undefined\n  };\n\n  /**\n   * @type {any}\n   */\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor',\n    borderColor: 'borderColor'\n  };\n\n  constructor(cfg) {\n    super();\n\n    this.options = undefined;\n    this.horizontal = undefined;\n    this.base = undefined;\n    this.width = undefined;\n    this.height = undefined;\n    this.inflateAmount = undefined;\n\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n\n  draw(ctx) {\n    const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n    const {inner, outer} = boundingRects(this);\n    const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n\n    ctx.save();\n\n    if (outer.w !== inner.w || outer.h !== inner.h) {\n      ctx.beginPath();\n      addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n      ctx.clip();\n      addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n      ctx.fillStyle = borderColor;\n      ctx.fill('evenodd');\n    }\n\n    ctx.beginPath();\n    addRectPath(ctx, inflateRect(inner, inflateAmount));\n    ctx.fillStyle = backgroundColor;\n    ctx.fill();\n\n    ctx.restore();\n  }\n\n  inRange(mouseX, mouseY, useFinalPosition) {\n    return inRange(this, mouseX, mouseY, useFinalPosition);\n  }\n\n  inXRange(mouseX, useFinalPosition) {\n    return inRange(this, mouseX, null, useFinalPosition);\n  }\n\n  inYRange(mouseY, useFinalPosition) {\n    return inRange(this, null, mouseY, useFinalPosition);\n  }\n\n  getCenterPoint(useFinalPosition) {\n    const {x, y, base, horizontal} = /** @type {BarProps} */ (this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition));\n    return {\n      x: horizontal ? (x + base) / 2 : x,\n      y: horizontal ? y : (y + base) / 2\n    };\n  }\n\n  getRange(axis) {\n    return axis === 'x' ? this.width / 2 : this.height / 2;\n  }\n}\n", "import {DoughnutController, PolarAreaController, defaults} from '../index.js';\nimport type {Chart, ChartDataset} from '../types.js';\n\nexport interface ColorsPluginOptions {\n  enabled?: boolean;\n  forceOverride?: boolean;\n}\n\ninterface ColorsDescriptor {\n  backgroundColor?: unknown;\n  borderColor?: unknown;\n}\n\nconst BORDER_COLORS = [\n  'rgb(54, 162, 235)', // blue\n  'rgb(255, 99, 132)', // red\n  'rgb(255, 159, 64)', // orange\n  'rgb(255, 205, 86)', // yellow\n  'rgb(75, 192, 192)', // green\n  'rgb(153, 102, 255)', // purple\n  'rgb(201, 203, 207)' // grey\n];\n\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map(color => color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\n\nfunction getBorderColor(i: number) {\n  return BORDER_COLORS[i % BORDER_COLORS.length];\n}\n\nfunction getBackgroundColor(i: number) {\n  return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\n\nfunction colorizeDefaultDataset(dataset: ChartDataset, i: number) {\n  dataset.borderColor = getBorderColor(i);\n  dataset.backgroundColor = getBackgroundColor(i);\n\n  return ++i;\n}\n\nfunction colorizeDoughnutDataset(dataset: ChartDataset, i: number) {\n  dataset.backgroundColor = dataset.data.map(() => getBorderColor(i++));\n\n  return i;\n}\n\nfunction colorizePolarAreaDataset(dataset: ChartDataset, i: number) {\n  dataset.backgroundColor = dataset.data.map(() => getBackgroundColor(i++));\n\n  return i;\n}\n\nfunction getColorizer(chart: Chart) {\n  let i = 0;\n\n  return (dataset: ChartDataset, datasetIndex: number) => {\n    const controller = chart.getDatasetMeta(datasetIndex).controller;\n\n    if (controller instanceof DoughnutController) {\n      i = colorizeDoughnutDataset(dataset, i);\n    } else if (controller instanceof PolarAreaController) {\n      i = colorizePolarAreaDataset(dataset, i);\n    } else if (controller) {\n      i = colorizeDefaultDataset(dataset, i);\n    }\n  };\n}\n\nfunction containsColorsDefinitions(\n  descriptors: ColorsDescriptor[] | Record<string, ColorsDescriptor>\n) {\n  let k: number | string;\n\n  for (k in descriptors) {\n    if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction containsColorsDefinition(\n  descriptor: ColorsDescriptor\n) {\n  return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\n\nfunction containsDefaultColorsDefenitions() {\n  return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\n\nexport default {\n  id: 'colors',\n\n  defaults: {\n    enabled: true,\n    forceOverride: false\n  } as ColorsPluginOptions,\n\n  beforeLayout(chart: Chart, _args, options: ColorsPluginOptions) {\n    if (!options.enabled) {\n      return;\n    }\n\n    const {\n      data: {datasets},\n      options: chartOptions\n    } = chart.config;\n    const {elements} = chartOptions;\n\n    const containsColorDefenition = (\n      containsColorsDefinitions(datasets) ||\n      containsColorsDefinition(chartOptions) ||\n      (elements && containsColorsDefinitions(elements)) ||\n      containsDefaultColorsDefenitions());\n\n    if (!options.forceOverride && containsColorDefenition) {\n      return;\n    }\n\n    const colorizer = getColorizer(chart);\n\n    datasets.forEach(colorizer);\n  }\n};\n", "import {_limitValue, _lookupByKey, isNullOrUndef, resolve} from '../helpers/index.js';\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n  /**\n   * Implementation of the Largest Triangle Three Buckets algorithm.\n   *\n   * This implementation is based on the original implementation by Sveinn Steinarsson\n   * in https://github.com/sveinn-steinarsson/flot-downsample/blob/master/jquery.flot.downsample.js\n   *\n   * The original implementation is MIT licensed.\n   */\n  const samples = options.samples || availableWidth;\n  // There are less points than the threshold, returning the whole array\n  if (samples >= count) {\n    return data.slice(start, start + count);\n  }\n\n  const decimated = [];\n\n  const bucketWidth = (count - 2) / (samples - 2);\n  let sampledIndex = 0;\n  const endIndex = start + count - 1;\n  // Starting from offset\n  let a = start;\n  let i, maxAreaPoint, maxArea, area, nextA;\n\n  decimated[sampledIndex++] = data[a];\n\n  for (i = 0; i < samples - 2; i++) {\n    let avgX = 0;\n    let avgY = 0;\n    let j;\n\n    // Adding offset\n    const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n    const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n    const avgRangeLength = avgRangeEnd - avgRangeStart;\n\n    for (j = avgRangeStart; j < avgRangeEnd; j++) {\n      avgX += data[j].x;\n      avgY += data[j].y;\n    }\n\n    avgX /= avgRangeLength;\n    avgY /= avgRangeLength;\n\n    // Adding offset\n    const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n    const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n    const {x: pointAx, y: pointAy} = data[a];\n\n    // Note that this is changed from the original algorithm which initializes these\n    // values to 1. The reason for this change is that if the area is small, nextA\n    // would never be set and thus a crash would occur in the next loop as `a` would become\n    // `undefined`. Since the area is always positive, but could be 0 in the case of a flat trace,\n    // initializing with a negative number is the correct solution.\n    maxArea = area = -1;\n\n    for (j = rangeOffs; j < rangeTo; j++) {\n      area = 0.5 * Math.abs(\n        (pointAx - avgX) * (data[j].y - pointAy) -\n        (pointAx - data[j].x) * (avgY - pointAy)\n      );\n\n      if (area > maxArea) {\n        maxArea = area;\n        maxAreaPoint = data[j];\n        nextA = j;\n      }\n    }\n\n    decimated[sampledIndex++] = maxAreaPoint;\n    a = nextA;\n  }\n\n  // Include the last point\n  decimated[sampledIndex++] = data[endIndex];\n\n  return decimated;\n}\n\nfunction minMaxDecimation(data, start, count, availableWidth) {\n  let avgX = 0;\n  let countX = 0;\n  let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n  const decimated = [];\n  const endIndex = start + count - 1;\n\n  const xMin = data[start].x;\n  const xMax = data[endIndex].x;\n  const dx = xMax - xMin;\n\n  for (i = start; i < start + count; ++i) {\n    point = data[i];\n    x = (point.x - xMin) / dx * availableWidth;\n    y = point.y;\n    const truncX = x | 0;\n\n    if (truncX === prevX) {\n      // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n      if (y < minY) {\n        minY = y;\n        minIndex = i;\n      } else if (y > maxY) {\n        maxY = y;\n        maxIndex = i;\n      }\n      // For first point in group, countX is `0`, so average will be `x` / 1.\n      // Use point.x here because we're computing the average data `x` value\n      avgX = (countX * avgX + point.x) / ++countX;\n    } else {\n      // Push up to 4 points, 3 for the last interval and the first point for this interval\n      const lastIndex = i - 1;\n\n      if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n        // The interval is defined by 4 points: start, min, max, end.\n        // The starting point is already considered at this point, so we need to determine which\n        // of the other points to add. We need to sort these points to ensure the decimated data\n        // is still sorted and then ensure there are no duplicates.\n        const intermediateIndex1 = Math.min(minIndex, maxIndex);\n        const intermediateIndex2 = Math.max(minIndex, maxIndex);\n\n        if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n          decimated.push({\n            ...data[intermediateIndex1],\n            x: avgX,\n          });\n        }\n        if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n          decimated.push({\n            ...data[intermediateIndex2],\n            x: avgX\n          });\n        }\n      }\n\n      // lastIndex === startIndex will occur when a range has only 1 point which could\n      // happen with very uneven data\n      if (i > 0 && lastIndex !== startIndex) {\n        // Last point in the previous interval\n        decimated.push(data[lastIndex]);\n      }\n\n      // Start of the new interval\n      decimated.push(point);\n      prevX = truncX;\n      countX = 0;\n      minY = maxY = y;\n      minIndex = maxIndex = startIndex = i;\n    }\n  }\n\n  return decimated;\n}\n\nfunction cleanDecimatedDataset(dataset) {\n  if (dataset._decimated) {\n    const data = dataset._data;\n    delete dataset._decimated;\n    delete dataset._data;\n    Object.defineProperty(dataset, 'data', {\n      configurable: true,\n      enumerable: true,\n      writable: true,\n      value: data,\n    });\n  }\n}\n\nfunction cleanDecimatedData(chart) {\n  chart.data.datasets.forEach((dataset) => {\n    cleanDecimatedDataset(dataset);\n  });\n}\n\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n  const pointCount = points.length;\n\n  let start = 0;\n  let count;\n\n  const {iScale} = meta;\n  const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n  if (minDefined) {\n    start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n  }\n  if (maxDefined) {\n    count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n  } else {\n    count = pointCount - start;\n  }\n\n  return {start, count};\n}\n\nexport default {\n  id: 'decimation',\n\n  defaults: {\n    algorithm: 'min-max',\n    enabled: false,\n  },\n\n  beforeElementsUpdate: (chart, args, options) => {\n    if (!options.enabled) {\n      // The decimation plugin may have been previously enabled. Need to remove old `dataset._data` handlers\n      cleanDecimatedData(chart);\n      return;\n    }\n\n    // Assume the entire chart is available to show a few more points than needed\n    const availableWidth = chart.width;\n\n    chart.data.datasets.forEach((dataset, datasetIndex) => {\n      const {_data, indexAxis} = dataset;\n      const meta = chart.getDatasetMeta(datasetIndex);\n      const data = _data || dataset.data;\n\n      if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n        // Decimation is only supported for lines that have an X indexAxis\n        return;\n      }\n\n      if (!meta.controller.supportsDecimation) {\n        // Only line datasets are supported\n        return;\n      }\n\n      const xAxis = chart.scales[meta.xAxisID];\n      if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n        // Only linear interpolation is supported\n        return;\n      }\n\n      if (chart.options.parsing) {\n        // Plugin only supports data that does not need parsing\n        return;\n      }\n\n      let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n      const threshold = options.threshold || 4 * availableWidth;\n      if (count <= threshold) {\n        // No decimation is required until we are above this threshold\n        cleanDecimatedDataset(dataset);\n        return;\n      }\n\n      if (isNullOrUndef(_data)) {\n        // First time we are seeing this dataset\n        // We override the 'data' property with a setter that stores the\n        // raw data in _data, but reads the decimated data from _decimated\n        dataset._data = data;\n        delete dataset.data;\n        Object.defineProperty(dataset, 'data', {\n          configurable: true,\n          enumerable: true,\n          get: function() {\n            return this._decimated;\n          },\n          set: function(d) {\n            this._data = d;\n          }\n        });\n      }\n\n      // Point the chart to the decimated data\n      let decimated;\n      switch (options.algorithm) {\n      case 'lttb':\n        decimated = lttbDecimation(data, start, count, availableWidth, options);\n        break;\n      case 'min-max':\n        decimated = minMaxDecimation(data, start, count, availableWidth);\n        break;\n      default:\n        throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n      }\n\n      dataset._decimated = decimated;\n    });\n  },\n\n  destroy(chart) {\n    cleanDecimatedData(chart);\n  }\n};\n", "import {_boundSegment, _boundSegments, _normalizeAngle} from '../../helpers/index.js';\n\nexport function _segments(line, target, property) {\n  const segments = line.segments;\n  const points = line.points;\n  const tpoints = target.points;\n  const parts = [];\n\n  for (const segment of segments) {\n    let {start, end} = segment;\n    end = _findSegmentEnd(start, end, points);\n\n    const bounds = _getBounds(property, points[start], points[end], segment.loop);\n\n    if (!target.segments) {\n      // Special case for boundary not supporting `segments` (simpleArc)\n      // Bounds are provided as `target` for partial circle, or undefined for full circle\n      parts.push({\n        source: segment,\n        target: bounds,\n        start: points[start],\n        end: points[end]\n      });\n      continue;\n    }\n\n    // Get all segments from `target` that intersect the bounds of current segment of `line`\n    const targetSegments = _boundSegments(target, bounds);\n\n    for (const tgt of targetSegments) {\n      const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n      const fillSources = _boundSegment(segment, points, subBounds);\n\n      for (const fillSource of fillSources) {\n        parts.push({\n          source: fillSource,\n          target: tgt,\n          start: {\n            [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n          },\n          end: {\n            [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n          }\n        });\n      }\n    }\n  }\n  return parts;\n}\n\nexport function _getBounds(property, first, last, loop) {\n  if (loop) {\n    return;\n  }\n  let start = first[property];\n  let end = last[property];\n\n  if (property === 'angle') {\n    start = _normalizeAngle(start);\n    end = _normalizeAngle(end);\n  }\n  return {property, start, end};\n}\n\nexport function _pointsFromSegments(boundary, line) {\n  const {x = null, y = null} = boundary || {};\n  const linePoints = line.points;\n  const points = [];\n  line.segments.forEach(({start, end}) => {\n    end = _findSegmentEnd(start, end, linePoints);\n    const first = linePoints[start];\n    const last = linePoints[end];\n    if (y !== null) {\n      points.push({x: first.x, y});\n      points.push({x: last.x, y});\n    } else if (x !== null) {\n      points.push({x, y: first.y});\n      points.push({x, y: last.y});\n    }\n  });\n  return points;\n}\n\nexport function _findSegmentEnd(start, end, points) {\n  for (;end > start; end--) {\n    const point = points[end];\n    if (!isNaN(point.x) && !isNaN(point.y)) {\n      break;\n    }\n  }\n  return end;\n}\n\nfunction _getEdge(a, b, prop, fn) {\n  if (a && b) {\n    return fn(a[prop], b[prop]);\n  }\n  return a ? a[prop] : b ? b[prop] : 0;\n}\n", "/**\n * @typedef { import('../../core/core.controller.js').default } Chart\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.point.js').default } PointElement\n */\n\nimport {LineElement} from '../../elements/index.js';\nimport {isArray} from '../../helpers/index.js';\nimport {_pointsFromSegments} from './filler.segment.js';\n\n/**\n * @param {PointElement[] | { x: number; y: number; }} boundary\n * @param {LineElement} line\n * @return {LineElement?}\n */\nexport function _createBoundaryLine(boundary, line) {\n  let points = [];\n  let _loop = false;\n\n  if (isArray(boundary)) {\n    _loop = true;\n    // @ts-ignore\n    points = boundary;\n  } else {\n    points = _pointsFromSegments(boundary, line);\n  }\n\n  return points.length ? new LineElement({\n    points,\n    options: {tension: 0},\n    _loop,\n    _fullLoop: _loop\n  }) : null;\n}\n\nexport function _shouldApplyFill(source) {\n  return source && source.fill !== false;\n}\n", "import {isObject, isFinite, valueOrDefault} from '../../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.line.js').default } LineElement\n * @typedef { import('../../types/index.js').FillTarget } FillTarget\n * @typedef { import('../../types/index.js').ComplexFillTarget } ComplexFillTarget\n */\n\nexport function _resolveTarget(sources, index, propagate) {\n  const source = sources[index];\n  let fill = source.fill;\n  const visited = [index];\n  let target;\n\n  if (!propagate) {\n    return fill;\n  }\n\n  while (fill !== false && visited.indexOf(fill) === -1) {\n    if (!isFinite(fill)) {\n      return fill;\n    }\n\n    target = sources[fill];\n    if (!target) {\n      return false;\n    }\n\n    if (target.visible) {\n      return fill;\n    }\n\n    visited.push(fill);\n    fill = target.fill;\n  }\n\n  return false;\n}\n\n/**\n * @param {LineElement} line\n * @param {number} index\n * @param {number} count\n */\nexport function _decodeFill(line, index, count) {\n  /** @type {string | {value: number}} */\n  const fill = parseFillOption(line);\n\n  if (isObject(fill)) {\n    return isNaN(fill.value) ? false : fill;\n  }\n\n  let target = parseFloat(fill);\n\n  if (isFinite(target) && Math.floor(target) === target) {\n    return decodeTargetIndex(fill[0], index, target, count);\n  }\n\n  return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\n\nfunction decodeTargetIndex(firstCh, index, target, count) {\n  if (firstCh === '-' || firstCh === '+') {\n    target = index + target;\n  }\n\n  if (target === index || target < 0 || target >= count) {\n    return false;\n  }\n\n  return target;\n}\n\n/**\n * @param {FillTarget | ComplexFillTarget} fill\n * @param {Scale} scale\n * @returns {number | null}\n */\nexport function _getTargetPixel(fill, scale) {\n  let pixel = null;\n  if (fill === 'start') {\n    pixel = scale.bottom;\n  } else if (fill === 'end') {\n    pixel = scale.top;\n  } else if (isObject(fill)) {\n    // @ts-ignore\n    pixel = scale.getPixelForValue(fill.value);\n  } else if (scale.getBasePixel) {\n    pixel = scale.getBasePixel();\n  }\n  return pixel;\n}\n\n/**\n * @param {FillTarget | ComplexFillTarget} fill\n * @param {Scale} scale\n * @param {number} startValue\n * @returns {number | undefined}\n */\nexport function _getTargetValue(fill, scale, startValue) {\n  let value;\n\n  if (fill === 'start') {\n    value = startValue;\n  } else if (fill === 'end') {\n    value = scale.options.reverse ? scale.min : scale.max;\n  } else if (isObject(fill)) {\n    // @ts-ignore\n    value = fill.value;\n  } else {\n    value = scale.getBaseValue();\n  }\n  return value;\n}\n\n/**\n * @param {LineElement} line\n */\nfunction parseFillOption(line) {\n  const options = line.options;\n  const fillOption = options.fill;\n  let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n\n  if (fill === undefined) {\n    fill = !!options.backgroundColor;\n  }\n\n  if (fill === false || fill === null) {\n    return false;\n  }\n\n  if (fill === true) {\n    return 'origin';\n  }\n  return fill;\n}\n", "/**\n * @typedef { import('../../core/core.controller.js').default } Chart\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.point.js').default } PointElement\n */\n\nimport {LineElement} from '../../elements/index.js';\nimport {_isBetween} from '../../helpers/index.js';\nimport {_createBoundaryLine} from './filler.helper.js';\n\n/**\n * @param {{ chart: Chart; scale: Scale; index: number; line: LineElement; }} source\n * @return {LineElement}\n */\nexport function _buildStackLine(source) {\n  const {scale, index, line} = source;\n  const points = [];\n  const segments = line.segments;\n  const sourcePoints = line.points;\n  const linesBelow = getLinesBelow(scale, index);\n  linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n\n  for (let i = 0; i < segments.length; i++) {\n    const segment = segments[i];\n    for (let j = segment.start; j <= segment.end; j++) {\n      addPointsBelow(points, sourcePoints[j], linesBelow);\n    }\n  }\n  return new LineElement({points, options: {}});\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @return {LineElement[]}\n */\nfunction getLinesBelow(scale, index) {\n  const below = [];\n  const metas = scale.getMatchingVisibleMetas('line');\n\n  for (let i = 0; i < metas.length; i++) {\n    const meta = metas[i];\n    if (meta.index === index) {\n      break;\n    }\n    if (!meta.hidden) {\n      below.unshift(meta.dataset);\n    }\n  }\n  return below;\n}\n\n/**\n * @param {PointElement[]} points\n * @param {PointElement} sourcePoint\n * @param {LineElement[]} linesBelow\n */\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n  const postponed = [];\n  for (let j = 0; j < linesBelow.length; j++) {\n    const line = linesBelow[j];\n    const {first, last, point} = findPoint(line, sourcePoint, 'x');\n\n    if (!point || (first && last)) {\n      continue;\n    }\n    if (first) {\n      // First point of a segment -> need to add another point before this,\n      postponed.unshift(point);\n    } else {\n      points.push(point);\n      if (!last) {\n        // In the middle of a segment, no need to add more points.\n        break;\n      }\n    }\n  }\n  points.push(...postponed);\n}\n\n/**\n * @param {LineElement} line\n * @param {PointElement} sourcePoint\n * @param {string} property\n * @returns {{point?: PointElement, first?: boolean, last?: boolean}}\n */\nfunction findPoint(line, sourcePoint, property) {\n  const point = line.interpolate(sourcePoint, property);\n  if (!point) {\n    return {};\n  }\n\n  const pointValue = point[property];\n  const segments = line.segments;\n  const linePoints = line.points;\n  let first = false;\n  let last = false;\n  for (let i = 0; i < segments.length; i++) {\n    const segment = segments[i];\n    const firstValue = linePoints[segment.start][property];\n    const lastValue = linePoints[segment.end][property];\n    if (_isBetween(pointValue, firstValue, lastValue)) {\n      first = pointValue === firstValue;\n      last = pointValue === lastValue;\n      break;\n    }\n  }\n  return {first, last, point};\n}\n", "import {TAU} from '../../helpers/index.js';\n\n// TODO: use elements.ArcElement instead\nexport class simpleArc {\n  constructor(opts) {\n    this.x = opts.x;\n    this.y = opts.y;\n    this.radius = opts.radius;\n  }\n\n  pathSegment(ctx, bounds, opts) {\n    const {x, y, radius} = this;\n    bounds = bounds || {start: 0, end: TAU};\n    ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n    return !opts.bounds;\n  }\n\n  interpolate(point) {\n    const {x, y, radius} = this;\n    const angle = point.angle;\n    return {\n      x: x + Math.cos(angle) * radius,\n      y: y + Math.sin(angle) * radius,\n      angle\n    };\n  }\n}\n", "import {isFinite} from '../../helpers/index.js';\nimport {_createBoundaryLine} from './filler.helper.js';\nimport {_getTargetPixel, _getTargetValue} from './filler.options.js';\nimport {_buildStackLine} from './filler.target.stack.js';\nimport {simpleArc} from './simpleArc.js';\n\n/**\n * @typedef { import('../../core/core.controller.js').default } Chart\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.point.js').default } PointElement\n */\n\nexport function _getTarget(source) {\n  const {chart, fill, line} = source;\n\n  if (isFinite(fill)) {\n    return getLineByIndex(chart, fill);\n  }\n\n  if (fill === 'stack') {\n    return _buildStackLine(source);\n  }\n\n  if (fill === 'shape') {\n    return true;\n  }\n\n  const boundary = computeBoundary(source);\n\n  if (boundary instanceof simpleArc) {\n    return boundary;\n  }\n\n  return _createBoundaryLine(boundary, line);\n}\n\n/**\n * @param {Chart} chart\n * @param {number} index\n */\nfunction getLineByIndex(chart, index) {\n  const meta = chart.getDatasetMeta(index);\n  const visible = meta && chart.isDatasetVisible(index);\n  return visible ? meta.dataset : null;\n}\n\nfunction computeBoundary(source) {\n  const scale = source.scale || {};\n\n  if (scale.getPointPositionForValue) {\n    return computeCircularBoundary(source);\n  }\n  return computeLinearBoundary(source);\n}\n\n\nfunction computeLinearBoundary(source) {\n  const {scale = {}, fill} = source;\n  const pixel = _getTargetPixel(fill, scale);\n\n  if (isFinite(pixel)) {\n    const horizontal = scale.isHorizontal();\n\n    return {\n      x: horizontal ? pixel : null,\n      y: horizontal ? null : pixel\n    };\n  }\n\n  return null;\n}\n\nfunction computeCircularBoundary(source) {\n  const {scale, fill} = source;\n  const options = scale.options;\n  const length = scale.getLabels().length;\n  const start = options.reverse ? scale.max : scale.min;\n  const value = _getTargetValue(fill, scale, start);\n  const target = [];\n\n  if (options.grid.circular) {\n    const center = scale.getPointPositionForValue(0, start);\n    return new simpleArc({\n      x: center.x,\n      y: center.y,\n      radius: scale.getDistanceFromCenterForValue(value)\n    });\n  }\n\n  for (let i = 0; i < length; ++i) {\n    target.push(scale.getPointPositionForValue(i, value));\n  }\n  return target;\n}\n\n", "import {clipArea, unclipArea, getDatasetClipArea} from '../../helpers/index.js';\nimport {_findSegmentEnd, _getBounds, _segments} from './filler.segment.js';\nimport {_getTarget} from './filler.target.js';\n\nexport function _drawfill(ctx, source, area) {\n  const target = _getTarget(source);\n  const {chart, index, line, scale, axis} = source;\n  const lineOpts = line.options;\n  const fillOption = lineOpts.fill;\n  const color = lineOpts.backgroundColor;\n  const {above = color, below = color} = fillOption || {};\n  const meta = chart.getDatasetMeta(index);\n  const clip = getDatasetClipArea(chart, meta);\n  if (target && line.points.length) {\n    clipArea(ctx, area);\n    doFill(ctx, {line, target, above, below, area, scale, axis, clip});\n    unclipArea(ctx);\n  }\n}\n\nfunction doFill(ctx, cfg) {\n  const {line, target, above, below, area, scale, clip} = cfg;\n  const property = line._loop ? 'angle' : cfg.axis;\n\n  ctx.save();\n\n  let fillColor = below;\n  if (below !== above) {\n    if (property === 'x') {\n      clipVertical(ctx, target, area.top);\n      fill(ctx, {line, target, color: above, scale, property, clip});\n      ctx.restore();\n      ctx.save();\n      clipVertical(ctx, target, area.bottom);\n    } else if (property === 'y') {\n      clipHorizontal(ctx, target, area.left);\n      fill(ctx, {line, target, color: below, scale, property, clip});\n      ctx.restore();\n      ctx.save();\n      clipHorizontal(ctx, target, area.right);\n      fillColor = above;\n    }\n  }\n  fill(ctx, {line, target, color: fillColor, scale, property, clip});\n\n  ctx.restore();\n}\n\nfunction clipVertical(ctx, target, clipY) {\n  const {segments, points} = target;\n  let first = true;\n  let lineLoop = false;\n\n  ctx.beginPath();\n  for (const segment of segments) {\n    const {start, end} = segment;\n    const firstPoint = points[start];\n    const lastPoint = points[_findSegmentEnd(start, end, points)];\n    if (first) {\n      ctx.moveTo(firstPoint.x, firstPoint.y);\n      first = false;\n    } else {\n      ctx.lineTo(firstPoint.x, clipY);\n      ctx.lineTo(firstPoint.x, firstPoint.y);\n    }\n    lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n    if (lineLoop) {\n      ctx.closePath();\n    } else {\n      ctx.lineTo(lastPoint.x, clipY);\n    }\n  }\n\n  ctx.lineTo(target.first().x, clipY);\n  ctx.closePath();\n  ctx.clip();\n}\n\nfunction clipHorizontal(ctx, target, clipX) {\n  const {segments, points} = target;\n  let first = true;\n  let lineLoop = false;\n\n  ctx.beginPath();\n  for (const segment of segments) {\n    const {start, end} = segment;\n    const firstPoint = points[start];\n    const lastPoint = points[_findSegmentEnd(start, end, points)];\n    if (first) {\n      ctx.moveTo(firstPoint.x, firstPoint.y);\n      first = false;\n    } else {\n      ctx.lineTo(clipX, firstPoint.y);\n      ctx.lineTo(firstPoint.x, firstPoint.y);\n    }\n    lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n    if (lineLoop) {\n      ctx.closePath();\n    } else {\n      ctx.lineTo(clipX, lastPoint.y);\n    }\n  }\n\n  ctx.lineTo(clipX, target.first().y);\n  ctx.closePath();\n  ctx.clip();\n}\n\nfunction fill(ctx, cfg) {\n  const {line, target, property, color, scale, clip} = cfg;\n  const segments = _segments(line, target, property);\n\n  for (const {source: src, target: tgt, start, end} of segments) {\n    const {style: {backgroundColor = color} = {}} = src;\n    const notShape = target !== true;\n\n    ctx.save();\n    ctx.fillStyle = backgroundColor;\n\n    clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n\n    ctx.beginPath();\n\n    const lineLoop = !!line.pathSegment(ctx, src);\n\n    let loop;\n    if (notShape) {\n      if (lineLoop) {\n        ctx.closePath();\n      } else {\n        interpolatedLineTo(ctx, target, end, property);\n      }\n\n      const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n      loop = lineLoop && targetLoop;\n      if (!loop) {\n        interpolatedLineTo(ctx, target, start, property);\n      }\n    }\n\n    ctx.closePath();\n    ctx.fill(loop ? 'evenodd' : 'nonzero');\n\n    ctx.restore();\n  }\n}\n\nfunction clipBounds(ctx, scale, clip, bounds) {\n  const chartArea = scale.chart.chartArea;\n  const {property, start, end} = bounds || {};\n\n  if (property === 'x' || property === 'y') {\n    let left, top, right, bottom;\n\n    if (property === 'x') {\n      left = start;\n      top = chartArea.top;\n      right = end;\n      bottom = chartArea.bottom;\n    } else {\n      left = chartArea.left;\n      top = start;\n      right = chartArea.right;\n      bottom = end;\n    }\n\n    ctx.beginPath();\n\n    if (clip) {\n      left = Math.max(left, clip.left);\n      right = Math.min(right, clip.right);\n      top = Math.max(top, clip.top);\n      bottom = Math.min(bottom, clip.bottom);\n    }\n\n    ctx.rect(left, top, right - left, bottom - top);\n    ctx.clip();\n  }\n}\n\nfunction interpolatedLineTo(ctx, target, point, property) {\n  const interpolatedPoint = target.interpolate(point, property);\n  if (interpolatedPoint) {\n    ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n  }\n}\n\n", "/**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\nimport LineElement from '../../elements/element.line.js';\nimport {_drawfill} from './filler.drawing.js';\nimport {_shouldApplyFill} from './filler.helper.js';\nimport {_decodeFill, _resolveTarget} from './filler.options.js';\n\nexport default {\n  id: 'filler',\n\n  afterDatasetsUpdate(chart, _args, options) {\n    const count = (chart.data.datasets || []).length;\n    const sources = [];\n    let meta, i, line, source;\n\n    for (i = 0; i < count; ++i) {\n      meta = chart.getDatasetMeta(i);\n      line = meta.dataset;\n      source = null;\n\n      if (line && line.options && line instanceof LineElement) {\n        source = {\n          visible: chart.isDatasetVisible(i),\n          index: i,\n          fill: _decodeFill(line, i, count),\n          chart,\n          axis: meta.controller.options.indexAxis,\n          scale: meta.vScale,\n          line,\n        };\n      }\n\n      meta.$filler = source;\n      sources.push(source);\n    }\n\n    for (i = 0; i < count; ++i) {\n      source = sources[i];\n      if (!source || source.fill === false) {\n        continue;\n      }\n\n      source.fill = _resolveTarget(sources, i, options.propagate);\n    }\n  },\n\n  beforeDraw(chart, _args, options) {\n    const draw = options.drawTime === 'beforeDraw';\n    const metasets = chart.getSortedVisibleDatasetMetas();\n    const area = chart.chartArea;\n    for (let i = metasets.length - 1; i >= 0; --i) {\n      const source = metasets[i].$filler;\n      if (!source) {\n        continue;\n      }\n\n      source.line.updateControlPoints(area, source.axis);\n      if (draw && source.fill) {\n        _drawfill(chart.ctx, source, area);\n      }\n    }\n  },\n\n  beforeDatasetsDraw(chart, _args, options) {\n    if (options.drawTime !== 'beforeDatasetsDraw') {\n      return;\n    }\n\n    const metasets = chart.getSortedVisibleDatasetMetas();\n    for (let i = metasets.length - 1; i >= 0; --i) {\n      const source = metasets[i].$filler;\n\n      if (_shouldApplyFill(source)) {\n        _drawfill(chart.ctx, source, chart.chartArea);\n      }\n    }\n  },\n\n  beforeDatasetDraw(chart, args, options) {\n    const source = args.meta.$filler;\n\n    if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n      return;\n    }\n\n    _drawfill(chart.ctx, source, chart.chartArea);\n  },\n\n  defaults: {\n    propagate: true,\n    drawTime: 'beforeDatasetDraw'\n  }\n};\n", "import defaults from '../core/core.defaults.js';\nimport Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {addRoundedRectPath, drawPointLegend, renderText} from '../helpers/helpers.canvas.js';\nimport {\n  _isBetween,\n  callback as call,\n  clipArea,\n  getRtlAdapter,\n  overrideTextDirection,\n  restoreTextDirection,\n  toFont,\n  toPadding,\n  unclipArea,\n  valueOrDefault,\n} from '../helpers/index.js';\nimport {_alignStartEnd, _textX, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {toTRBLCorners} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n */\n\nconst getBoxSize = (labelOpts, fontSize) => {\n  let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n\n  if (labelOpts.usePointStyle) {\n    boxHeight = Math.min(boxHeight, fontSize);\n    boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n  }\n\n  return {\n    boxWidth,\n    boxHeight,\n    itemHeight: Math.max(fontSize, boxHeight)\n  };\n};\n\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n\nexport class Legend extends Element {\n\n  /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n  constructor(config) {\n    super();\n\n    this._added = false;\n\n    // Contains hit boxes for each dataset (in dataset order)\n    this.legendHitBoxes = [];\n\n    /**\n \t\t * @private\n \t\t */\n    this._hoveredItem = null;\n\n    // Are we in doughnut mode which has a different data type\n    this.doughnutMode = false;\n\n    this.chart = config.chart;\n    this.options = config.options;\n    this.ctx = config.ctx;\n    this.legendItems = undefined;\n    this.columnSizes = undefined;\n    this.lineWidths = undefined;\n    this.maxHeight = undefined;\n    this.maxWidth = undefined;\n    this.top = undefined;\n    this.bottom = undefined;\n    this.left = undefined;\n    this.right = undefined;\n    this.height = undefined;\n    this.width = undefined;\n    this._margins = undefined;\n    this.position = undefined;\n    this.weight = undefined;\n    this.fullSize = undefined;\n  }\n\n  update(maxWidth, maxHeight, margins) {\n    this.maxWidth = maxWidth;\n    this.maxHeight = maxHeight;\n    this._margins = margins;\n\n    this.setDimensions();\n    this.buildLabels();\n    this.fit();\n  }\n\n  setDimensions() {\n    if (this.isHorizontal()) {\n      this.width = this.maxWidth;\n      this.left = this._margins.left;\n      this.right = this.width;\n    } else {\n      this.height = this.maxHeight;\n      this.top = this._margins.top;\n      this.bottom = this.height;\n    }\n  }\n\n  buildLabels() {\n    const labelOpts = this.options.labels || {};\n    let legendItems = call(labelOpts.generateLabels, [this.chart], this) || [];\n\n    if (labelOpts.filter) {\n      legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n    }\n\n    if (labelOpts.sort) {\n      legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n    }\n\n    if (this.options.reverse) {\n      legendItems.reverse();\n    }\n\n    this.legendItems = legendItems;\n  }\n\n  fit() {\n    const {options, ctx} = this;\n\n    // The legend may not be displayed for a variety of reasons including\n    // the fact that the defaults got set to `false`.\n    // When the legend is not displayed, there are no guarantees that the options\n    // are correctly formatted so we need to bail out as early as possible.\n    if (!options.display) {\n      this.width = this.height = 0;\n      return;\n    }\n\n    const labelOpts = options.labels;\n    const labelFont = toFont(labelOpts.font);\n    const fontSize = labelFont.size;\n    const titleHeight = this._computeTitleHeight();\n    const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n    let width, height;\n\n    ctx.font = labelFont.string;\n\n    if (this.isHorizontal()) {\n      width = this.maxWidth; // fill all the width\n      height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n    } else {\n      height = this.maxHeight; // fill all the height\n      width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n    }\n\n    this.width = Math.min(width, options.maxWidth || this.maxWidth);\n    this.height = Math.min(height, options.maxHeight || this.maxHeight);\n  }\n\n  /**\n\t * @private\n\t */\n  _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n    const {ctx, maxWidth, options: {labels: {padding}}} = this;\n    const hitboxes = this.legendHitBoxes = [];\n    // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n    const lineWidths = this.lineWidths = [0];\n    const lineHeight = itemHeight + padding;\n    let totalHeight = titleHeight;\n\n    ctx.textAlign = 'left';\n    ctx.textBaseline = 'middle';\n\n    let row = -1;\n    let top = -lineHeight;\n    this.legendItems.forEach((legendItem, i) => {\n      const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n      if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n        totalHeight += lineHeight;\n        lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n        top += lineHeight;\n        row++;\n      }\n\n      hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n\n      lineWidths[lineWidths.length - 1] += itemWidth + padding;\n    });\n\n    return totalHeight;\n  }\n\n  _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n    const {ctx, maxHeight, options: {labels: {padding}}} = this;\n    const hitboxes = this.legendHitBoxes = [];\n    const columnSizes = this.columnSizes = [];\n    const heightLimit = maxHeight - titleHeight;\n\n    let totalWidth = padding;\n    let currentColWidth = 0;\n    let currentColHeight = 0;\n\n    let left = 0;\n    let col = 0;\n\n    this.legendItems.forEach((legendItem, i) => {\n      const {itemWidth, itemHeight} = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n\n      // If too tall, go to new column\n      if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n        totalWidth += currentColWidth + padding;\n        columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n        left += currentColWidth + padding;\n        col++;\n        currentColWidth = currentColHeight = 0;\n      }\n\n      // Store the hitbox width and height here. Final position will be updated in `draw`\n      hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n\n      // Get max width\n      currentColWidth = Math.max(currentColWidth, itemWidth);\n      currentColHeight += itemHeight + padding;\n    });\n\n    totalWidth += currentColWidth;\n    columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n\n    return totalWidth;\n  }\n\n  adjustHitBoxes() {\n    if (!this.options.display) {\n      return;\n    }\n    const titleHeight = this._computeTitleHeight();\n    const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n    const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n    if (this.isHorizontal()) {\n      let row = 0;\n      let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n      for (const hitbox of hitboxes) {\n        if (row !== hitbox.row) {\n          row = hitbox.row;\n          left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n        }\n        hitbox.top += this.top + titleHeight + padding;\n        hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n        left += hitbox.width + padding;\n      }\n    } else {\n      let col = 0;\n      let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n      for (const hitbox of hitboxes) {\n        if (hitbox.col !== col) {\n          col = hitbox.col;\n          top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n        }\n        hitbox.top = top;\n        hitbox.left += this.left + padding;\n        hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n        top += hitbox.height + padding;\n      }\n    }\n  }\n\n  isHorizontal() {\n    return this.options.position === 'top' || this.options.position === 'bottom';\n  }\n\n  draw() {\n    if (this.options.display) {\n      const ctx = this.ctx;\n      clipArea(ctx, this);\n\n      this._draw();\n\n      unclipArea(ctx);\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _draw() {\n    const {options: opts, columnSizes, lineWidths, ctx} = this;\n    const {align, labels: labelOpts} = opts;\n    const defaultColor = defaults.color;\n    const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n    const labelFont = toFont(labelOpts.font);\n    const {padding} = labelOpts;\n    const fontSize = labelFont.size;\n    const halfFontSize = fontSize / 2;\n    let cursor;\n\n    this.drawTitle();\n\n    // Canvas setup\n    ctx.textAlign = rtlHelper.textAlign('left');\n    ctx.textBaseline = 'middle';\n    ctx.lineWidth = 0.5;\n    ctx.font = labelFont.string;\n\n    const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n    // current position\n    const drawLegendBox = function(x, y, legendItem) {\n      if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n        return;\n      }\n\n      // Set the ctx for the box\n      ctx.save();\n\n      const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n      ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n      ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n      ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n      ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n      ctx.lineWidth = lineWidth;\n      ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n\n      ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n      if (labelOpts.usePointStyle) {\n        // Recalculate x and y for drawPoint() because its expecting\n        // x and y to be center of figure (instead of top left)\n        const drawOptions = {\n          radius: boxHeight * Math.SQRT2 / 2,\n          pointStyle: legendItem.pointStyle,\n          rotation: legendItem.rotation,\n          borderWidth: lineWidth\n        };\n        const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n        const centerY = y + halfFontSize;\n\n        // Draw pointStyle as legend symbol\n        drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n      } else {\n        // Draw box as legend symbol\n        // Adjust position when boxHeight < fontSize (want it centered)\n        const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n        const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n        const borderRadius = toTRBLCorners(legendItem.borderRadius);\n\n        ctx.beginPath();\n\n        if (Object.values(borderRadius).some(v => v !== 0)) {\n          addRoundedRectPath(ctx, {\n            x: xBoxLeft,\n            y: yBoxTop,\n            w: boxWidth,\n            h: boxHeight,\n            radius: borderRadius,\n          });\n        } else {\n          ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n        }\n\n        ctx.fill();\n        if (lineWidth !== 0) {\n          ctx.stroke();\n        }\n      }\n\n      ctx.restore();\n    };\n\n    const fillText = function(x, y, legendItem) {\n      renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n        strikethrough: legendItem.hidden,\n        textAlign: rtlHelper.textAlign(legendItem.textAlign)\n      });\n    };\n\n    // Horizontal\n    const isHorizontal = this.isHorizontal();\n    const titleHeight = this._computeTitleHeight();\n    if (isHorizontal) {\n      cursor = {\n        x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n        y: this.top + padding + titleHeight,\n        line: 0\n      };\n    } else {\n      cursor = {\n        x: this.left + padding,\n        y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n        line: 0\n      };\n    }\n\n    overrideTextDirection(this.ctx, opts.textDirection);\n\n    const lineHeight = itemHeight + padding;\n    this.legendItems.forEach((legendItem, i) => {\n      ctx.strokeStyle = legendItem.fontColor; // for strikethrough effect\n      ctx.fillStyle = legendItem.fontColor; // render in correct colour\n\n      const textWidth = ctx.measureText(legendItem.text).width;\n      const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n      const width = boxWidth + halfFontSize + textWidth;\n      let x = cursor.x;\n      let y = cursor.y;\n\n      rtlHelper.setWidth(this.width);\n\n      if (isHorizontal) {\n        if (i > 0 && x + width + padding > this.right) {\n          y = cursor.y += lineHeight;\n          cursor.line++;\n          x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n        }\n      } else if (i > 0 && y + lineHeight > this.bottom) {\n        x = cursor.x = x + columnSizes[cursor.line].width + padding;\n        cursor.line++;\n        y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n      }\n\n      const realX = rtlHelper.x(x);\n\n      drawLegendBox(realX, y, legendItem);\n\n      x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n\n      // Fill the actual label\n      fillText(rtlHelper.x(x), y, legendItem);\n\n      if (isHorizontal) {\n        cursor.x += width + padding;\n      } else if (typeof legendItem.text !== 'string') {\n        const fontLineHeight = labelFont.lineHeight;\n        cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n      } else {\n        cursor.y += lineHeight;\n      }\n    });\n\n    restoreTextDirection(this.ctx, opts.textDirection);\n  }\n\n  /**\n\t * @protected\n\t */\n  drawTitle() {\n    const opts = this.options;\n    const titleOpts = opts.title;\n    const titleFont = toFont(titleOpts.font);\n    const titlePadding = toPadding(titleOpts.padding);\n\n    if (!titleOpts.display) {\n      return;\n    }\n\n    const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n    const ctx = this.ctx;\n    const position = titleOpts.position;\n    const halfFontSize = titleFont.size / 2;\n    const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n    let y;\n\n    // These defaults are used when the legend is vertical.\n    // When horizontal, they are computed below.\n    let left = this.left;\n    let maxWidth = this.width;\n\n    if (this.isHorizontal()) {\n      // Move left / right so that the title is above the legend lines\n      maxWidth = Math.max(...this.lineWidths);\n      y = this.top + topPaddingPlusHalfFontSize;\n      left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n    } else {\n      // Move down so that the title is above the legend stack in every alignment\n      const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n      y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n    }\n\n    // Now that we know the left edge of the inner legend box, compute the correct\n    // X coordinate from the title alignment\n    const x = _alignStartEnd(position, left, left + maxWidth);\n\n    // Canvas setup\n    ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n    ctx.textBaseline = 'middle';\n    ctx.strokeStyle = titleOpts.color;\n    ctx.fillStyle = titleOpts.color;\n    ctx.font = titleFont.string;\n\n    renderText(ctx, titleOpts.text, x, y, titleFont);\n  }\n\n  /**\n\t * @private\n\t */\n  _computeTitleHeight() {\n    const titleOpts = this.options.title;\n    const titleFont = toFont(titleOpts.font);\n    const titlePadding = toPadding(titleOpts.padding);\n    return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n  }\n\n  /**\n\t * @private\n\t */\n  _getLegendItemAt(x, y) {\n    let i, hitBox, lh;\n\n    if (_isBetween(x, this.left, this.right)\n      && _isBetween(y, this.top, this.bottom)) {\n      // See if we are touching one of the dataset boxes\n      lh = this.legendHitBoxes;\n      for (i = 0; i < lh.length; ++i) {\n        hitBox = lh[i];\n\n        if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n          && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n          // Touching an element\n          return this.legendItems[i];\n        }\n      }\n    }\n\n    return null;\n  }\n\n  /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t */\n  handleEvent(e) {\n    const opts = this.options;\n    if (!isListened(e.type, opts)) {\n      return;\n    }\n\n    // Chart event already has relative position in it\n    const hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n    if (e.type === 'mousemove' || e.type === 'mouseout') {\n      const previous = this._hoveredItem;\n      const sameItem = itemsEqual(previous, hoveredItem);\n      if (previous && !sameItem) {\n        call(opts.onLeave, [e, previous, this], this);\n      }\n\n      this._hoveredItem = hoveredItem;\n\n      if (hoveredItem && !sameItem) {\n        call(opts.onHover, [e, hoveredItem, this], this);\n      }\n    } else if (hoveredItem) {\n      call(opts.onClick, [e, hoveredItem, this], this);\n    }\n  }\n}\n\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n  const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n  const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n  return {itemWidth, itemHeight};\n}\n\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n  let legendItemText = legendItem.text;\n  if (legendItemText && typeof legendItemText !== 'string') {\n    legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n  }\n  return boxWidth + (labelFont.size / 2) + ctx.measureText(legendItemText).width;\n}\n\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n  let itemHeight = _itemHeight;\n  if (typeof legendItem.text !== 'string') {\n    itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n  }\n  return itemHeight;\n}\n\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n  const labelHeight = legendItem.text ? legendItem.text.length : 0;\n  return fontLineHeight * labelHeight;\n}\n\nfunction isListened(type, opts) {\n  if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n    return true;\n  }\n  if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n    return true;\n  }\n  return false;\n}\n\nexport default {\n  id: 'legend',\n\n  /**\n\t * For tests\n\t * @private\n\t */\n  _element: Legend,\n\n  start(chart, _args, options) {\n    const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n    layouts.configure(chart, legend, options);\n    layouts.addBox(chart, legend);\n  },\n\n  stop(chart) {\n    layouts.removeBox(chart, chart.legend);\n    delete chart.legend;\n  },\n\n  // During the beforeUpdate step, the layout configuration needs to run\n  // This ensures that if the legend position changes (via an option update)\n  // the layout system respects the change. See https://github.com/chartjs/Chart.js/issues/7527\n  beforeUpdate(chart, _args, options) {\n    const legend = chart.legend;\n    layouts.configure(chart, legend, options);\n    legend.options = options;\n  },\n\n  // The labels need to be built after datasets are updated to ensure that colors\n  // and other styling are correct. See https://github.com/chartjs/Chart.js/issues/6968\n  afterUpdate(chart) {\n    const legend = chart.legend;\n    legend.buildLabels();\n    legend.adjustHitBoxes();\n  },\n\n\n  afterEvent(chart, args) {\n    if (!args.replay) {\n      chart.legend.handleEvent(args.event);\n    }\n  },\n\n  defaults: {\n    display: true,\n    position: 'top',\n    align: 'center',\n    fullSize: true,\n    reverse: false,\n    weight: 1000,\n\n    // a callback that will handle\n    onClick(e, legendItem, legend) {\n      const index = legendItem.datasetIndex;\n      const ci = legend.chart;\n      if (ci.isDatasetVisible(index)) {\n        ci.hide(index);\n        legendItem.hidden = true;\n      } else {\n        ci.show(index);\n        legendItem.hidden = false;\n      }\n    },\n\n    onHover: null,\n    onLeave: null,\n\n    labels: {\n      color: (ctx) => ctx.chart.options.color,\n      boxWidth: 40,\n      padding: 10,\n      // Generates labels shown in the legend\n      // Valid properties to return:\n      // text : text to display\n      // fillStyle : fill of coloured box\n      // strokeStyle: stroke of coloured box\n      // hidden : if this legend item refers to a hidden item\n      // lineCap : cap style for line\n      // lineDash\n      // lineDashOffset :\n      // lineJoin :\n      // lineWidth :\n      generateLabels(chart) {\n        const datasets = chart.data.datasets;\n        const {labels: {usePointStyle, pointStyle, textAlign, color, useBorderRadius, borderRadius}} = chart.legend.options;\n\n        return chart._getSortedDatasetMetas().map((meta) => {\n          const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n          const borderWidth = toPadding(style.borderWidth);\n\n          return {\n            text: datasets[meta.index].label,\n            fillStyle: style.backgroundColor,\n            fontColor: color,\n            hidden: !meta.visible,\n            lineCap: style.borderCapStyle,\n            lineDash: style.borderDash,\n            lineDashOffset: style.borderDashOffset,\n            lineJoin: style.borderJoinStyle,\n            lineWidth: (borderWidth.width + borderWidth.height) / 4,\n            strokeStyle: style.borderColor,\n            pointStyle: pointStyle || style.pointStyle,\n            rotation: style.rotation,\n            textAlign: textAlign || style.textAlign,\n            borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n\n            // Below is extra data used for toggling the datasets\n            datasetIndex: meta.index\n          };\n        }, this);\n      }\n    },\n\n    title: {\n      color: (ctx) => ctx.chart.options.color,\n      display: false,\n      position: 'center',\n      text: '',\n    }\n  },\n\n  descriptors: {\n    _scriptable: (name) => !name.startsWith('on'),\n    labels: {\n      _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n    }\n  },\n};\n", "import Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {PI, isArray, toPadding, toFont} from '../helpers/index.js';\nimport {_toLeftRightCenter, _alignStartEnd} from '../helpers/helpers.extras.js';\nimport {renderText} from '../helpers/helpers.canvas.js';\n\nexport class Title extends Element {\n  /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n  constructor(config) {\n    super();\n\n    this.chart = config.chart;\n    this.options = config.options;\n    this.ctx = config.ctx;\n    this._padding = undefined;\n    this.top = undefined;\n    this.bottom = undefined;\n    this.left = undefined;\n    this.right = undefined;\n    this.width = undefined;\n    this.height = undefined;\n    this.position = undefined;\n    this.weight = undefined;\n    this.fullSize = undefined;\n  }\n\n  update(maxWidth, maxHeight) {\n    const opts = this.options;\n\n    this.left = 0;\n    this.top = 0;\n\n    if (!opts.display) {\n      this.width = this.height = this.right = this.bottom = 0;\n      return;\n    }\n\n    this.width = this.right = maxWidth;\n    this.height = this.bottom = maxHeight;\n\n    const lineCount = isArray(opts.text) ? opts.text.length : 1;\n    this._padding = toPadding(opts.padding);\n    const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n    if (this.isHorizontal()) {\n      this.height = textSize;\n    } else {\n      this.width = textSize;\n    }\n  }\n\n  isHorizontal() {\n    const pos = this.options.position;\n    return pos === 'top' || pos === 'bottom';\n  }\n\n  _drawArgs(offset) {\n    const {top, left, bottom, right, options} = this;\n    const align = options.align;\n    let rotation = 0;\n    let maxWidth, titleX, titleY;\n\n    if (this.isHorizontal()) {\n      titleX = _alignStartEnd(align, left, right);\n      titleY = top + offset;\n      maxWidth = right - left;\n    } else {\n      if (options.position === 'left') {\n        titleX = left + offset;\n        titleY = _alignStartEnd(align, bottom, top);\n        rotation = PI * -0.5;\n      } else {\n        titleX = right - offset;\n        titleY = _alignStartEnd(align, top, bottom);\n        rotation = PI * 0.5;\n      }\n      maxWidth = bottom - top;\n    }\n    return {titleX, titleY, maxWidth, rotation};\n  }\n\n  draw() {\n    const ctx = this.ctx;\n    const opts = this.options;\n\n    if (!opts.display) {\n      return;\n    }\n\n    const fontOpts = toFont(opts.font);\n    const lineHeight = fontOpts.lineHeight;\n    const offset = lineHeight / 2 + this._padding.top;\n    const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n\n    renderText(ctx, opts.text, 0, 0, fontOpts, {\n      color: opts.color,\n      maxWidth,\n      rotation,\n      textAlign: _toLeftRightCenter(opts.align),\n      textBaseline: 'middle',\n      translation: [titleX, titleY],\n    });\n  }\n}\n\nfunction createTitle(chart, titleOpts) {\n  const title = new Title({\n    ctx: chart.ctx,\n    options: titleOpts,\n    chart\n  });\n\n  layouts.configure(chart, title, titleOpts);\n  layouts.addBox(chart, title);\n  chart.titleBlock = title;\n}\n\nexport default {\n  id: 'title',\n\n  /**\n\t * For tests\n\t * @private\n\t */\n  _element: Title,\n\n  start(chart, _args, options) {\n    createTitle(chart, options);\n  },\n\n  stop(chart) {\n    const titleBlock = chart.titleBlock;\n    layouts.removeBox(chart, titleBlock);\n    delete chart.titleBlock;\n  },\n\n  beforeUpdate(chart, _args, options) {\n    const title = chart.titleBlock;\n    layouts.configure(chart, title, options);\n    title.options = options;\n  },\n\n  defaults: {\n    align: 'center',\n    display: false,\n    font: {\n      weight: 'bold',\n    },\n    fullSize: true,\n    padding: 10,\n    position: 'top',\n    text: '',\n    weight: 2000         // by default greater than legend (1000) to be above\n  },\n\n  defaultRoutes: {\n    color: 'color'\n  },\n\n  descriptors: {\n    _scriptable: true,\n    _indexable: false,\n  },\n};\n", "import {Title} from './plugin.title.js';\nimport layouts from '../core/core.layouts.js';\n\nconst map = new WeakMap();\n\nexport default {\n  id: 'subtitle',\n\n  start(chart, _args, options) {\n    const title = new Title({\n      ctx: chart.ctx,\n      options,\n      chart\n    });\n\n    layouts.configure(chart, title, options);\n    layouts.addBox(chart, title);\n    map.set(chart, title);\n  },\n\n  stop(chart) {\n    layouts.removeBox(chart, map.get(chart));\n    map.delete(chart);\n  },\n\n  beforeUpdate(chart, _args, options) {\n    const title = map.get(chart);\n    layouts.configure(chart, title, options);\n    title.options = options;\n  },\n\n  defaults: {\n    align: 'center',\n    display: false,\n    font: {\n      weight: 'normal',\n    },\n    fullSize: true,\n    padding: 0,\n    position: 'top',\n    text: '',\n    weight: 1500         // by default greater than legend (1000) and smaller than title (2000)\n  },\n\n  defaultRoutes: {\n    color: 'color'\n  },\n\n  descriptors: {\n    _scriptable: true,\n    _indexable: false,\n  },\n};\n", "import Animations from '../core/core.animations.js';\nimport Element from '../core/core.element.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {each, noop, isNullOrUndef, isArray, _elementsEqual, isObject} from '../helpers/helpers.core.js';\nimport {toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\nimport {getRtlAdapter, overrideTextDirection, restoreTextDirection} from '../helpers/helpers.rtl.js';\nimport {distanceBetweenPoints, _limitValue} from '../helpers/helpers.math.js';\nimport {createContext, drawPoint} from '../helpers/index.js';\n\n/**\n * @typedef { import('../platform/platform.base.js').Chart } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').ActiveElement } ActiveElement\n * @typedef { import('../core/core.interaction.js').InteractionItem } InteractionItem\n */\n\nconst positioners = {\n  /**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t */\n  average(items) {\n    if (!items.length) {\n      return false;\n    }\n\n    let i, len;\n    let xSet = new Set();\n    let y = 0;\n    let count = 0;\n\n    for (i = 0, len = items.length; i < len; ++i) {\n      const el = items[i].element;\n      if (el && el.hasValue()) {\n        const pos = el.tooltipPosition();\n        xSet.add(pos.x);\n        y += pos.y;\n        ++count;\n      }\n    }\n\n    // No visible items where found, return false so we don't have to divide by 0 which reduces in NaN\n    if (count === 0 || xSet.size === 0) {\n      return false;\n    }\n\n    const xAverage = [...xSet].reduce((a, b) => a + b) / xSet.size;\n\n    return {\n      x: xAverage,\n      y: y / count\n    };\n  },\n\n  /**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t */\n  nearest(items, eventPosition) {\n    if (!items.length) {\n      return false;\n    }\n\n    let x = eventPosition.x;\n    let y = eventPosition.y;\n    let minDistance = Number.POSITIVE_INFINITY;\n    let i, len, nearestElement;\n\n    for (i = 0, len = items.length; i < len; ++i) {\n      const el = items[i].element;\n      if (el && el.hasValue()) {\n        const center = el.getCenterPoint();\n        const d = distanceBetweenPoints(eventPosition, center);\n\n        if (d < minDistance) {\n          minDistance = d;\n          nearestElement = el;\n        }\n      }\n    }\n\n    if (nearestElement) {\n      const tp = nearestElement.tooltipPosition();\n      x = tp.x;\n      y = tp.y;\n    }\n\n    return {\n      x,\n      y\n    };\n  }\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n  if (toPush) {\n    if (isArray(toPush)) {\n      // base = base.concat(toPush);\n      Array.prototype.push.apply(base, toPush);\n    } else {\n      base.push(toPush);\n    }\n  }\n\n  return base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {*} str - The value to split by newline.\n * @returns {string|string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n  if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n    return str.split('\\n');\n  }\n  return str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param {Chart} chart\n * @param {ActiveElement} item - {element, index, datasetIndex} to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(chart, item) {\n  const {element, datasetIndex, index} = item;\n  const controller = chart.getDatasetMeta(datasetIndex).controller;\n  const {label, value} = controller.getLabelAndValue(index);\n\n  return {\n    chart,\n    label,\n    parsed: controller.getParsed(index),\n    raw: chart.data.datasets[datasetIndex].data[index],\n    formattedValue: value,\n    dataset: controller.getDataset(),\n    dataIndex: index,\n    datasetIndex,\n    element\n  };\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, options) {\n  const ctx = tooltip.chart.ctx;\n  const {body, footer, title} = tooltip;\n  const {boxWidth, boxHeight} = options;\n  const bodyFont = toFont(options.bodyFont);\n  const titleFont = toFont(options.titleFont);\n  const footerFont = toFont(options.footerFont);\n  const titleLineCount = title.length;\n  const footerLineCount = footer.length;\n  const bodyLineItemCount = body.length;\n\n  const padding = toPadding(options.padding);\n  let height = padding.height;\n  let width = 0;\n\n  // Count of all lines in the body\n  let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n  combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n  if (titleLineCount) {\n    height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n  }\n  if (combinedBodyLength) {\n    // Body lines may include some extra height depending on boxHeight\n    const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n    height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n  }\n  if (footerLineCount) {\n    height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n  }\n\n  // Title width\n  let widthPadding = 0;\n  const maxLineWidth = function(line) {\n    width = Math.max(width, ctx.measureText(line).width + widthPadding);\n  };\n\n  ctx.save();\n\n  ctx.font = titleFont.string;\n  each(tooltip.title, maxLineWidth);\n\n  // Body width\n  ctx.font = bodyFont.string;\n  each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n\n  // Body lines may include some extra width due to the color box\n  widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n  each(body, (bodyItem) => {\n    each(bodyItem.before, maxLineWidth);\n    each(bodyItem.lines, maxLineWidth);\n    each(bodyItem.after, maxLineWidth);\n  });\n\n  // Reset back to 0\n  widthPadding = 0;\n\n  // Footer width\n  ctx.font = footerFont.string;\n  each(tooltip.footer, maxLineWidth);\n\n  ctx.restore();\n\n  // Add padding\n  width += padding.width;\n\n  return {width, height};\n}\n\nfunction determineYAlign(chart, size) {\n  const {y, height} = size;\n\n  if (y < height / 2) {\n    return 'top';\n  } else if (y > (chart.height - height / 2)) {\n    return 'bottom';\n  }\n  return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n  const {x, width} = size;\n  const caret = options.caretSize + options.caretPadding;\n  if (xAlign === 'left' && x + width + caret > chart.width) {\n    return true;\n  }\n\n  if (xAlign === 'right' && x - width - caret < 0) {\n    return true;\n  }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n  const {x, width} = size;\n  const {width: chartWidth, chartArea: {left, right}} = chart;\n  let xAlign = 'center';\n\n  if (yAlign === 'center') {\n    xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n  } else if (x <= width / 2) {\n    xAlign = 'left';\n  } else if (x >= chartWidth - width / 2) {\n    xAlign = 'right';\n  }\n\n  if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n    xAlign = 'center';\n  }\n\n  return xAlign;\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(chart, options, size) {\n  const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n\n  return {\n    xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n    yAlign\n  };\n}\n\nfunction alignX(size, xAlign) {\n  let {x, width} = size;\n  if (xAlign === 'right') {\n    x -= width;\n  } else if (xAlign === 'center') {\n    x -= (width / 2);\n  }\n  return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n  // eslint-disable-next-line prefer-const\n  let {y, height} = size;\n  if (yAlign === 'top') {\n    y += paddingAndSize;\n  } else if (yAlign === 'bottom') {\n    y -= height + paddingAndSize;\n  } else {\n    y -= (height / 2);\n  }\n  return y;\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(options, size, alignment, chart) {\n  const {caretSize, caretPadding, cornerRadius} = options;\n  const {xAlign, yAlign} = alignment;\n  const paddingAndSize = caretSize + caretPadding;\n  const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n\n  let x = alignX(size, xAlign);\n  const y = alignY(size, yAlign, paddingAndSize);\n\n  if (yAlign === 'center') {\n    if (xAlign === 'left') {\n      x += paddingAndSize;\n    } else if (xAlign === 'right') {\n      x -= paddingAndSize;\n    }\n  } else if (xAlign === 'left') {\n    x -= Math.max(topLeft, bottomLeft) + caretSize;\n  } else if (xAlign === 'right') {\n    x += Math.max(topRight, bottomRight) + caretSize;\n  }\n\n  return {\n    x: _limitValue(x, 0, chart.width - size.width),\n    y: _limitValue(y, 0, chart.height - size.height)\n  };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n  const padding = toPadding(options.padding);\n\n  return align === 'center'\n    ? tooltip.x + tooltip.width / 2\n    : align === 'right'\n      ? tooltip.x + tooltip.width - padding.right\n      : tooltip.x + padding.left;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n  return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n  return createContext(parent, {\n    tooltip,\n    tooltipItems,\n    type: 'tooltip'\n  });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n  const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n  return override ? callbacks.override(override) : callbacks;\n}\n\nconst defaultCallbacks = {\n  // Args are: (tooltipItems, data)\n  beforeTitle: noop,\n  title(tooltipItems) {\n    if (tooltipItems.length > 0) {\n      const item = tooltipItems[0];\n      const labels = item.chart.data.labels;\n      const labelCount = labels ? labels.length : 0;\n\n      if (this && this.options && this.options.mode === 'dataset') {\n        return item.dataset.label || '';\n      } else if (item.label) {\n        return item.label;\n      } else if (labelCount > 0 && item.dataIndex < labelCount) {\n        return labels[item.dataIndex];\n      }\n    }\n\n    return '';\n  },\n  afterTitle: noop,\n\n  // Args are: (tooltipItems, data)\n  beforeBody: noop,\n\n  // Args are: (tooltipItem, data)\n  beforeLabel: noop,\n  label(tooltipItem) {\n    if (this && this.options && this.options.mode === 'dataset') {\n      return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n    }\n\n    let label = tooltipItem.dataset.label || '';\n\n    if (label) {\n      label += ': ';\n    }\n    const value = tooltipItem.formattedValue;\n    if (!isNullOrUndef(value)) {\n      label += value;\n    }\n    return label;\n  },\n  labelColor(tooltipItem) {\n    const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n    const options = meta.controller.getStyle(tooltipItem.dataIndex);\n    return {\n      borderColor: options.borderColor,\n      backgroundColor: options.backgroundColor,\n      borderWidth: options.borderWidth,\n      borderDash: options.borderDash,\n      borderDashOffset: options.borderDashOffset,\n      borderRadius: 0,\n    };\n  },\n  labelTextColor() {\n    return this.options.bodyColor;\n  },\n  labelPointStyle(tooltipItem) {\n    const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n    const options = meta.controller.getStyle(tooltipItem.dataIndex);\n    return {\n      pointStyle: options.pointStyle,\n      rotation: options.rotation,\n    };\n  },\n  afterLabel: noop,\n\n  // Args are: (tooltipItems, data)\n  afterBody: noop,\n\n  // Args are: (tooltipItems, data)\n  beforeFooter: noop,\n  footer: noop,\n  afterFooter: noop\n};\n\n/**\n * Invoke callback from object with context and arguments.\n * If callback returns `undefined`, then will be invoked default callback.\n * @param {Record<keyof typeof defaultCallbacks, Function>} callbacks\n * @param {keyof typeof defaultCallbacks} name\n * @param {*} ctx\n * @param {*} arg\n * @returns {any}\n */\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n  const result = callbacks[name].call(ctx, arg);\n\n  if (typeof result === 'undefined') {\n    return defaultCallbacks[name].call(ctx, arg);\n  }\n\n  return result;\n}\n\nexport class Tooltip extends Element {\n\n  /**\n   * @namespace Chart.Tooltip.positioners\n   */\n  static positioners = positioners;\n\n  constructor(config) {\n    super();\n\n    this.opacity = 0;\n    this._active = [];\n    this._eventPosition = undefined;\n    this._size = undefined;\n    this._cachedAnimations = undefined;\n    this._tooltipItems = [];\n    this.$animations = undefined;\n    this.$context = undefined;\n    this.chart = config.chart;\n    this.options = config.options;\n    this.dataPoints = undefined;\n    this.title = undefined;\n    this.beforeBody = undefined;\n    this.body = undefined;\n    this.afterBody = undefined;\n    this.footer = undefined;\n    this.xAlign = undefined;\n    this.yAlign = undefined;\n    this.x = undefined;\n    this.y = undefined;\n    this.height = undefined;\n    this.width = undefined;\n    this.caretX = undefined;\n    this.caretY = undefined;\n    // TODO: V4, make this private, rename to `_labelStyles`, and combine with `labelPointStyles`\n    // and `labelTextColors` to create a single variable\n    this.labelColors = undefined;\n    this.labelPointStyles = undefined;\n    this.labelTextColors = undefined;\n  }\n\n  initialize(options) {\n    this.options = options;\n    this._cachedAnimations = undefined;\n    this.$context = undefined;\n  }\n\n  /**\n\t * @private\n\t */\n  _resolveAnimations() {\n    const cached = this._cachedAnimations;\n\n    if (cached) {\n      return cached;\n    }\n\n    const chart = this.chart;\n    const options = this.options.setContext(this.getContext());\n    const opts = options.enabled && chart.options.animation && options.animations;\n    const animations = new Animations(this.chart, opts);\n    if (opts._cacheable) {\n      this._cachedAnimations = Object.freeze(animations);\n    }\n\n    return animations;\n  }\n\n  /**\n\t * @protected\n\t */\n  getContext() {\n    return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n  }\n\n  getTitle(context, options) {\n    const {callbacks} = options;\n\n    const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n    const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n    const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n\n    let lines = [];\n    lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n    lines = pushOrConcat(lines, splitNewlines(title));\n    lines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n    return lines;\n  }\n\n  getBeforeBody(tooltipItems, options) {\n    return getBeforeAfterBodyLines(\n      invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems)\n    );\n  }\n\n  getBody(tooltipItems, options) {\n    const {callbacks} = options;\n    const bodyItems = [];\n\n    each(tooltipItems, (context) => {\n      const bodyItem = {\n        before: [],\n        lines: [],\n        after: []\n      };\n      const scoped = overrideCallbacks(callbacks, context);\n      pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n      pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n      pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n\n      bodyItems.push(bodyItem);\n    });\n\n    return bodyItems;\n  }\n\n  getAfterBody(tooltipItems, options) {\n    return getBeforeAfterBodyLines(\n      invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems)\n    );\n  }\n\n  // Get the footer and beforeFooter and afterFooter lines\n  getFooter(tooltipItems, options) {\n    const {callbacks} = options;\n\n    const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n    const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n    const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n\n    let lines = [];\n    lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n    lines = pushOrConcat(lines, splitNewlines(footer));\n    lines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n    return lines;\n  }\n\n  /**\n\t * @private\n\t */\n  _createItems(options) {\n    const active = this._active;\n    const data = this.chart.data;\n    const labelColors = [];\n    const labelPointStyles = [];\n    const labelTextColors = [];\n    let tooltipItems = [];\n    let i, len;\n\n    for (i = 0, len = active.length; i < len; ++i) {\n      tooltipItems.push(createTooltipItem(this.chart, active[i]));\n    }\n\n    // If the user provided a filter function, use it to modify the tooltip items\n    if (options.filter) {\n      tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n    }\n\n    // If the user provided a sorting function, use it to modify the tooltip items\n    if (options.itemSort) {\n      tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n    }\n\n    // Determine colors for boxes\n    each(tooltipItems, (context) => {\n      const scoped = overrideCallbacks(options.callbacks, context);\n      labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n      labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n      labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n    });\n\n    this.labelColors = labelColors;\n    this.labelPointStyles = labelPointStyles;\n    this.labelTextColors = labelTextColors;\n    this.dataPoints = tooltipItems;\n    return tooltipItems;\n  }\n\n  update(changed, replay) {\n    const options = this.options.setContext(this.getContext());\n    const active = this._active;\n    let properties;\n    let tooltipItems = [];\n\n    if (!active.length) {\n      if (this.opacity !== 0) {\n        properties = {\n          opacity: 0\n        };\n      }\n    } else {\n      const position = positioners[options.position].call(this, active, this._eventPosition);\n      tooltipItems = this._createItems(options);\n\n      this.title = this.getTitle(tooltipItems, options);\n      this.beforeBody = this.getBeforeBody(tooltipItems, options);\n      this.body = this.getBody(tooltipItems, options);\n      this.afterBody = this.getAfterBody(tooltipItems, options);\n      this.footer = this.getFooter(tooltipItems, options);\n\n      const size = this._size = getTooltipSize(this, options);\n      const positionAndSize = Object.assign({}, position, size);\n      const alignment = determineAlignment(this.chart, options, positionAndSize);\n      const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n\n      this.xAlign = alignment.xAlign;\n      this.yAlign = alignment.yAlign;\n\n      properties = {\n        opacity: 1,\n        x: backgroundPoint.x,\n        y: backgroundPoint.y,\n        width: size.width,\n        height: size.height,\n        caretX: position.x,\n        caretY: position.y\n      };\n    }\n\n    this._tooltipItems = tooltipItems;\n    this.$context = undefined;\n\n    if (properties) {\n      this._resolveAnimations().update(this, properties);\n    }\n\n    if (changed && options.external) {\n      options.external.call(this, {chart: this.chart, tooltip: this, replay});\n    }\n  }\n\n  drawCaret(tooltipPoint, ctx, size, options) {\n    const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n\n    ctx.lineTo(caretPosition.x1, caretPosition.y1);\n    ctx.lineTo(caretPosition.x2, caretPosition.y2);\n    ctx.lineTo(caretPosition.x3, caretPosition.y3);\n  }\n\n  getCaretPosition(tooltipPoint, size, options) {\n    const {xAlign, yAlign} = this;\n    const {caretSize, cornerRadius} = options;\n    const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n    const {x: ptX, y: ptY} = tooltipPoint;\n    const {width, height} = size;\n    let x1, x2, x3, y1, y2, y3;\n\n    if (yAlign === 'center') {\n      y2 = ptY + (height / 2);\n\n      if (xAlign === 'left') {\n        x1 = ptX;\n        x2 = x1 - caretSize;\n\n        // Left draws bottom -> top, this y1 is on the bottom\n        y1 = y2 + caretSize;\n        y3 = y2 - caretSize;\n      } else {\n        x1 = ptX + width;\n        x2 = x1 + caretSize;\n\n        // Right draws top -> bottom, thus y1 is on the top\n        y1 = y2 - caretSize;\n        y3 = y2 + caretSize;\n      }\n\n      x3 = x1;\n    } else {\n      if (xAlign === 'left') {\n        x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n      } else if (xAlign === 'right') {\n        x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n      } else {\n        x2 = this.caretX;\n      }\n\n      if (yAlign === 'top') {\n        y1 = ptY;\n        y2 = y1 - caretSize;\n\n        // Top draws left -> right, thus x1 is on the left\n        x1 = x2 - caretSize;\n        x3 = x2 + caretSize;\n      } else {\n        y1 = ptY + height;\n        y2 = y1 + caretSize;\n\n        // Bottom draws right -> left, thus x1 is on the right\n        x1 = x2 + caretSize;\n        x3 = x2 - caretSize;\n      }\n      y3 = y1;\n    }\n    return {x1, x2, x3, y1, y2, y3};\n  }\n\n  drawTitle(pt, ctx, options) {\n    const title = this.title;\n    const length = title.length;\n    let titleFont, titleSpacing, i;\n\n    if (length) {\n      const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n      pt.x = getAlignedX(this, options.titleAlign, options);\n\n      ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n      ctx.textBaseline = 'middle';\n\n      titleFont = toFont(options.titleFont);\n      titleSpacing = options.titleSpacing;\n\n      ctx.fillStyle = options.titleColor;\n      ctx.font = titleFont.string;\n\n      for (i = 0; i < length; ++i) {\n        ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n        pt.y += titleFont.lineHeight + titleSpacing; // Line Height and spacing\n\n        if (i + 1 === length) {\n          pt.y += options.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n        }\n      }\n    }\n  }\n\n  /**\n\t * @private\n\t */\n  _drawColorBox(ctx, pt, i, rtlHelper, options) {\n    const labelColor = this.labelColors[i];\n    const labelPointStyle = this.labelPointStyles[i];\n    const {boxHeight, boxWidth} = options;\n    const bodyFont = toFont(options.bodyFont);\n    const colorX = getAlignedX(this, 'left', options);\n    const rtlColorX = rtlHelper.x(colorX);\n    const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n    const colorY = pt.y + yOffSet;\n\n    if (options.usePointStyle) {\n      const drawOptions = {\n        radius: Math.min(boxWidth, boxHeight) / 2, // fit the circle in the box\n        pointStyle: labelPointStyle.pointStyle,\n        rotation: labelPointStyle.rotation,\n        borderWidth: 1\n      };\n      // Recalculate x and y for drawPoint() because its expecting\n      // x and y to be center of figure (instead of top left)\n      const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n      const centerY = colorY + boxHeight / 2;\n\n      // Fill the point with white so that colours merge nicely if the opacity is < 1\n      ctx.strokeStyle = options.multiKeyBackground;\n      ctx.fillStyle = options.multiKeyBackground;\n      drawPoint(ctx, drawOptions, centerX, centerY);\n\n      // Draw the point\n      ctx.strokeStyle = labelColor.borderColor;\n      ctx.fillStyle = labelColor.backgroundColor;\n      drawPoint(ctx, drawOptions, centerX, centerY);\n    } else {\n      // Border\n      ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : (labelColor.borderWidth || 1); // TODO, v4 remove fallback\n      ctx.strokeStyle = labelColor.borderColor;\n      ctx.setLineDash(labelColor.borderDash || []);\n      ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n\n      // Fill a white rect so that colours merge nicely if the opacity is < 1\n      const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n      const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n      const borderRadius = toTRBLCorners(labelColor.borderRadius);\n\n      if (Object.values(borderRadius).some(v => v !== 0)) {\n        ctx.beginPath();\n        ctx.fillStyle = options.multiKeyBackground;\n        addRoundedRectPath(ctx, {\n          x: outerX,\n          y: colorY,\n          w: boxWidth,\n          h: boxHeight,\n          radius: borderRadius,\n        });\n        ctx.fill();\n        ctx.stroke();\n\n        // Inner square\n        ctx.fillStyle = labelColor.backgroundColor;\n        ctx.beginPath();\n        addRoundedRectPath(ctx, {\n          x: innerX,\n          y: colorY + 1,\n          w: boxWidth - 2,\n          h: boxHeight - 2,\n          radius: borderRadius,\n        });\n        ctx.fill();\n      } else {\n        // Normal rect\n        ctx.fillStyle = options.multiKeyBackground;\n        ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n        ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n        // Inner square\n        ctx.fillStyle = labelColor.backgroundColor;\n        ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n      }\n    }\n\n    // restore fillStyle\n    ctx.fillStyle = this.labelTextColors[i];\n  }\n\n  drawBody(pt, ctx, options) {\n    const {body} = this;\n    const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n    const bodyFont = toFont(options.bodyFont);\n    let bodyLineHeight = bodyFont.lineHeight;\n    let xLinePadding = 0;\n\n    const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n    const fillLineOfText = function(line) {\n      ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n      pt.y += bodyLineHeight + bodySpacing;\n    };\n\n    const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n    let bodyItem, textColor, lines, i, j, ilen, jlen;\n\n    ctx.textAlign = bodyAlign;\n    ctx.textBaseline = 'middle';\n    ctx.font = bodyFont.string;\n\n    pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n\n    // Before body lines\n    ctx.fillStyle = options.bodyColor;\n    each(this.beforeBody, fillLineOfText);\n\n    xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n      ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n      : 0;\n\n    // Draw body lines now\n    for (i = 0, ilen = body.length; i < ilen; ++i) {\n      bodyItem = body[i];\n      textColor = this.labelTextColors[i];\n\n      ctx.fillStyle = textColor;\n      each(bodyItem.before, fillLineOfText);\n\n      lines = bodyItem.lines;\n      // Draw Legend-like boxes if needed\n      if (displayColors && lines.length) {\n        this._drawColorBox(ctx, pt, i, rtlHelper, options);\n        bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n      }\n\n      for (j = 0, jlen = lines.length; j < jlen; ++j) {\n        fillLineOfText(lines[j]);\n        // Reset for any lines that don't include colorbox\n        bodyLineHeight = bodyFont.lineHeight;\n      }\n\n      each(bodyItem.after, fillLineOfText);\n    }\n\n    // Reset back to 0 for after body\n    xLinePadding = 0;\n    bodyLineHeight = bodyFont.lineHeight;\n\n    // After body lines\n    each(this.afterBody, fillLineOfText);\n    pt.y -= bodySpacing; // Remove last body spacing\n  }\n\n  drawFooter(pt, ctx, options) {\n    const footer = this.footer;\n    const length = footer.length;\n    let footerFont, i;\n\n    if (length) {\n      const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n      pt.x = getAlignedX(this, options.footerAlign, options);\n      pt.y += options.footerMarginTop;\n\n      ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n      ctx.textBaseline = 'middle';\n\n      footerFont = toFont(options.footerFont);\n\n      ctx.fillStyle = options.footerColor;\n      ctx.font = footerFont.string;\n\n      for (i = 0; i < length; ++i) {\n        ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n        pt.y += footerFont.lineHeight + options.footerSpacing;\n      }\n    }\n  }\n\n  drawBackground(pt, ctx, tooltipSize, options) {\n    const {xAlign, yAlign} = this;\n    const {x, y} = pt;\n    const {width, height} = tooltipSize;\n    const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n\n    ctx.fillStyle = options.backgroundColor;\n    ctx.strokeStyle = options.borderColor;\n    ctx.lineWidth = options.borderWidth;\n\n    ctx.beginPath();\n    ctx.moveTo(x + topLeft, y);\n    if (yAlign === 'top') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x + width - topRight, y);\n    ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n    if (yAlign === 'center' && xAlign === 'right') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x + width, y + height - bottomRight);\n    ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n    if (yAlign === 'bottom') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x + bottomLeft, y + height);\n    ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n    if (yAlign === 'center' && xAlign === 'left') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x, y + topLeft);\n    ctx.quadraticCurveTo(x, y, x + topLeft, y);\n    ctx.closePath();\n\n    ctx.fill();\n\n    if (options.borderWidth > 0) {\n      ctx.stroke();\n    }\n  }\n\n  /**\n\t * Update x/y animation targets when _active elements are animating too\n\t * @private\n\t */\n  _updateAnimationTarget(options) {\n    const chart = this.chart;\n    const anims = this.$animations;\n    const animX = anims && anims.x;\n    const animY = anims && anims.y;\n    if (animX || animY) {\n      const position = positioners[options.position].call(this, this._active, this._eventPosition);\n      if (!position) {\n        return;\n      }\n      const size = this._size = getTooltipSize(this, options);\n      const positionAndSize = Object.assign({}, position, this._size);\n      const alignment = determineAlignment(chart, options, positionAndSize);\n      const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n      if (animX._to !== point.x || animY._to !== point.y) {\n        this.xAlign = alignment.xAlign;\n        this.yAlign = alignment.yAlign;\n        this.width = size.width;\n        this.height = size.height;\n        this.caretX = position.x;\n        this.caretY = position.y;\n        this._resolveAnimations().update(this, point);\n      }\n    }\n  }\n\n  /**\n   * Determine if the tooltip will draw anything\n   * @returns {boolean} True if the tooltip will render\n   */\n  _willRender() {\n    return !!this.opacity;\n  }\n\n  draw(ctx) {\n    const options = this.options.setContext(this.getContext());\n    let opacity = this.opacity;\n\n    if (!opacity) {\n      return;\n    }\n\n    this._updateAnimationTarget(options);\n\n    const tooltipSize = {\n      width: this.width,\n      height: this.height\n    };\n    const pt = {\n      x: this.x,\n      y: this.y\n    };\n\n    // IE11/Edge does not like very small opacities, so snap to 0\n    opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n\n    const padding = toPadding(options.padding);\n\n    // Truthy/falsey value for empty tooltip\n    const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n    if (options.enabled && hasTooltipContent) {\n      ctx.save();\n      ctx.globalAlpha = opacity;\n\n      // Draw Background\n      this.drawBackground(pt, ctx, tooltipSize, options);\n\n      overrideTextDirection(ctx, options.textDirection);\n\n      pt.y += padding.top;\n\n      // Titles\n      this.drawTitle(pt, ctx, options);\n\n      // Body\n      this.drawBody(pt, ctx, options);\n\n      // Footer\n      this.drawFooter(pt, ctx, options);\n\n      restoreTextDirection(ctx, options.textDirection);\n\n      ctx.restore();\n    }\n  }\n\n  /**\n\t * Get active elements in the tooltip\n\t * @returns {Array} Array of elements that are active in the tooltip\n\t */\n  getActiveElements() {\n    return this._active || [];\n  }\n\n  /**\n\t * Set active elements in the tooltip\n\t * @param {array} activeElements Array of active datasetIndex/index pairs.\n\t * @param {object} eventPosition Synthetic event position used in positioning\n\t */\n  setActiveElements(activeElements, eventPosition) {\n    const lastActive = this._active;\n    const active = activeElements.map(({datasetIndex, index}) => {\n      const meta = this.chart.getDatasetMeta(datasetIndex);\n\n      if (!meta) {\n        throw new Error('Cannot find a dataset at index ' + datasetIndex);\n      }\n\n      return {\n        datasetIndex,\n        element: meta.data[index],\n        index,\n      };\n    });\n    const changed = !_elementsEqual(lastActive, active);\n    const positionChanged = this._positionChanged(active, eventPosition);\n\n    if (changed || positionChanged) {\n      this._active = active;\n      this._eventPosition = eventPosition;\n      this._ignoreReplayEvents = true;\n      this.update(true);\n    }\n  }\n\n  /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {boolean} true if the tooltip changed\n\t */\n  handleEvent(e, replay, inChartArea = true) {\n    if (replay && this._ignoreReplayEvents) {\n      return false;\n    }\n    this._ignoreReplayEvents = false;\n\n    const options = this.options;\n    const lastActive = this._active || [];\n    const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n\n    // When there are multiple items shown, but the tooltip position is nearest mode\n    // an update may need to be made because our position may have changed even though\n    // the items are the same as before.\n    const positionChanged = this._positionChanged(active, e);\n\n    // Remember Last Actives\n    const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n    // Only handle target event on tooltip change\n    if (changed) {\n      this._active = active;\n\n      if (options.enabled || options.external) {\n        this._eventPosition = {\n          x: e.x,\n          y: e.y\n        };\n\n        this.update(true, replay);\n      }\n    }\n\n    return changed;\n  }\n\n  /**\n\t * Helper for determining the active elements for event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {InteractionItem[]} lastActive - Previously active elements\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {InteractionItem[]} - Active elements\n\t * @private\n\t */\n  _getActiveElements(e, lastActive, replay, inChartArea) {\n    const options = this.options;\n\n    if (e.type === 'mouseout') {\n      return [];\n    }\n\n    if (!inChartArea) {\n      // Let user control the active elements outside chartArea. Eg. using Legend.\n      // But make sure that active elements are still valid.\n      return lastActive.filter(i =>\n        this.chart.data.datasets[i.datasetIndex] &&\n        this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined\n      );\n    }\n\n    // Find Active Elements for tooltips\n    const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n    if (options.reverse) {\n      active.reverse();\n    }\n\n    return active;\n  }\n\n  /**\n\t * Determine if the active elements + event combination changes the\n\t * tooltip position\n\t * @param {array} active - Active elements\n\t * @param {ChartEvent} e - Event that triggered the position change\n\t * @returns {boolean} True if the position has changed\n\t */\n  _positionChanged(active, e) {\n    const {caretX, caretY, options} = this;\n    const position = positioners[options.position].call(this, active, e);\n    return position !== false && (caretX !== position.x || caretY !== position.y);\n  }\n}\n\nexport default {\n  id: 'tooltip',\n  _element: Tooltip,\n  positioners,\n\n  afterInit(chart, _args, options) {\n    if (options) {\n      chart.tooltip = new Tooltip({chart, options});\n    }\n  },\n\n  beforeUpdate(chart, _args, options) {\n    if (chart.tooltip) {\n      chart.tooltip.initialize(options);\n    }\n  },\n\n  reset(chart, _args, options) {\n    if (chart.tooltip) {\n      chart.tooltip.initialize(options);\n    }\n  },\n\n  afterDraw(chart) {\n    const tooltip = chart.tooltip;\n\n    if (tooltip && tooltip._willRender()) {\n      const args = {\n        tooltip\n      };\n\n      if (chart.notifyPlugins('beforeTooltipDraw', {...args, cancelable: true}) === false) {\n        return;\n      }\n\n      tooltip.draw(chart.ctx);\n\n      chart.notifyPlugins('afterTooltipDraw', args);\n    }\n  },\n\n  afterEvent(chart, args) {\n    if (chart.tooltip) {\n      // If the event is replayed from `update`, we should evaluate with the final positions.\n      const useFinalPosition = args.replay;\n      if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n        // notify chart about the change, so it will render\n        args.changed = true;\n      }\n    }\n  },\n\n  defaults: {\n    enabled: true,\n    external: null,\n    position: 'average',\n    backgroundColor: 'rgba(0,0,0,0.8)',\n    titleColor: '#fff',\n    titleFont: {\n      weight: 'bold',\n    },\n    titleSpacing: 2,\n    titleMarginBottom: 6,\n    titleAlign: 'left',\n    bodyColor: '#fff',\n    bodySpacing: 2,\n    bodyFont: {\n    },\n    bodyAlign: 'left',\n    footerColor: '#fff',\n    footerSpacing: 2,\n    footerMarginTop: 6,\n    footerFont: {\n      weight: 'bold',\n    },\n    footerAlign: 'left',\n    padding: 6,\n    caretPadding: 2,\n    caretSize: 5,\n    cornerRadius: 6,\n    boxHeight: (ctx, opts) => opts.bodyFont.size,\n    boxWidth: (ctx, opts) => opts.bodyFont.size,\n    multiKeyBackground: '#fff',\n    displayColors: true,\n    boxPadding: 0,\n    borderColor: 'rgba(0,0,0,0)',\n    borderWidth: 0,\n    animation: {\n      duration: 400,\n      easing: 'easeOutQuart',\n    },\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n      },\n      opacity: {\n        easing: 'linear',\n        duration: 200\n      }\n    },\n    callbacks: defaultCallbacks\n  },\n\n  defaultRoutes: {\n    bodyFont: 'font',\n    footerFont: 'font',\n    titleFont: 'font'\n  },\n\n  descriptors: {\n    _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n    _indexable: false,\n    callbacks: {\n      _scriptable: false,\n      _indexable: false,\n    },\n    animation: {\n      _fallback: false\n    },\n    animations: {\n      _fallback: 'animation'\n    }\n  },\n\n  // Resolve additionally from `interaction` options and defaults.\n  additionalOptionScopes: ['interaction']\n};\n", "import Scale from '../core/core.scale.js';\nimport {isNullOrUndef, valueOrDefault, _limitValue} from '../helpers/index.js';\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n  if (typeof raw === 'string') {\n    index = labels.push(raw) - 1;\n    addedLabels.unshift({index, label: raw});\n  } else if (isNaN(raw)) {\n    index = null;\n  }\n  return index;\n};\n\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n  const first = labels.indexOf(raw);\n  if (first === -1) {\n    return addIfString(labels, raw, index, addedLabels);\n  }\n  const last = labels.lastIndexOf(raw);\n  return first !== last ? index : first;\n}\n\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\n\nfunction _getLabelForValue(value) {\n  const labels = this.getLabels();\n\n  if (value >= 0 && value < labels.length) {\n    return labels[value];\n  }\n  return value;\n}\n\nexport default class CategoryScale extends Scale {\n\n  static id = 'category';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    ticks: {\n      callback: _getLabelForValue\n    }\n  };\n\n  constructor(cfg) {\n    super(cfg);\n\n    /** @type {number} */\n    this._startValue = undefined;\n    this._valueRange = 0;\n    this._addedLabels = [];\n  }\n\n  init(scaleOptions) {\n    const added = this._addedLabels;\n    if (added.length) {\n      const labels = this.getLabels();\n      for (const {index, label} of added) {\n        if (labels[index] === label) {\n          labels.splice(index, 1);\n        }\n      }\n      this._addedLabels = [];\n    }\n    super.init(scaleOptions);\n  }\n\n  parse(raw, index) {\n    if (isNullOrUndef(raw)) {\n      return null;\n    }\n    const labels = this.getLabels();\n    index = isFinite(index) && labels[index] === raw ? index\n      : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n    return validIndex(index, labels.length - 1);\n  }\n\n  determineDataLimits() {\n    const {minDefined, maxDefined} = this.getUserBounds();\n    let {min, max} = this.getMinMax(true);\n\n    if (this.options.bounds === 'ticks') {\n      if (!minDefined) {\n        min = 0;\n      }\n      if (!maxDefined) {\n        max = this.getLabels().length - 1;\n      }\n    }\n\n    this.min = min;\n    this.max = max;\n  }\n\n  buildTicks() {\n    const min = this.min;\n    const max = this.max;\n    const offset = this.options.offset;\n    const ticks = [];\n    let labels = this.getLabels();\n\n    // If we are viewing some subset of labels, slice the original array\n    labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n\n    this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n    this._startValue = this.min - (offset ? 0.5 : 0);\n\n    for (let value = min; value <= max; value++) {\n      ticks.push({value});\n    }\n    return ticks;\n  }\n\n  getLabelForValue(value) {\n    return _getLabelForValue.call(this, value);\n  }\n\n  /**\n\t * @protected\n\t */\n  configure() {\n    super.configure();\n\n    if (!this.isHorizontal()) {\n      // For backward compatibility, vertical category scale reverse is inverted.\n      this._reversePixels = !this._reversePixels;\n    }\n  }\n\n  // Used to get data value locations. Value can either be an index or a numerical value\n  getPixelForValue(value) {\n    if (typeof value !== 'number') {\n      value = this.parse(value);\n    }\n\n    return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n  }\n\n  // Must override base implementation because it calls getPixelForValue\n  // and category scale can have duplicate values\n  getPixelForTick(index) {\n    const ticks = this.ticks;\n    if (index < 0 || index > ticks.length - 1) {\n      return null;\n    }\n    return this.getPixelForValue(ticks[index].value);\n  }\n\n  getValueForPixel(pixel) {\n    return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n  }\n\n  getBasePixel() {\n    return this.bottom;\n  }\n}\n", "import {isNullOrUndef} from '../helpers/helpers.core.js';\nimport {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign, toRadians} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\n\n/**\n * Generate a set of linear ticks for an axis\n * 1. If generationOptions.min, generationOptions.max, and generationOptions.step are defined:\n *    if (max - min) / step is an integer, ticks are generated as [min, min + step, ..., max]\n *    Note that the generationOptions.maxCount setting is respected in this scenario\n *\n * 2. If generationOptions.min, generationOptions.max, and generationOptions.count is defined\n *    spacing = (max - min) / count\n *    Ticks are generated as [min, min + spacing, ..., max]\n *\n * 3. If generationOptions.count is defined\n *    spacing = (niceMax - niceMin) / count\n *\n * 4. Compute optimal spacing of ticks using niceNum algorithm\n *\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, dataRange) {\n  const ticks = [];\n  // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n  // \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n  // for details.\n\n  const MIN_SPACING = 1e-14;\n  const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n  const unit = step || 1;\n  const maxSpaces = maxTicks - 1;\n  const {min: rmin, max: rmax} = dataRange;\n  const minDefined = !isNullOrUndef(min);\n  const maxDefined = !isNullOrUndef(max);\n  const countDefined = !isNullOrUndef(count);\n  const minSpacing = (rmax - rmin) / (maxDigits + 1);\n  let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n  let factor, niceMin, niceMax, numSpaces;\n\n  // Beyond MIN_SPACING floating point numbers being to lose precision\n  // such that we can't do the math necessary to generate ticks\n  if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n    return [{value: rmin}, {value: rmax}];\n  }\n\n  numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n  if (numSpaces > maxSpaces) {\n    // If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n    spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n  }\n\n  if (!isNullOrUndef(precision)) {\n    // If the user specified a precision, round to that number of decimal places\n    factor = Math.pow(10, precision);\n    spacing = Math.ceil(spacing * factor) / factor;\n  }\n\n  if (bounds === 'ticks') {\n    niceMin = Math.floor(rmin / spacing) * spacing;\n    niceMax = Math.ceil(rmax / spacing) * spacing;\n  } else {\n    niceMin = rmin;\n    niceMax = rmax;\n  }\n\n  if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n    // Case 1: If min, max and stepSize are set and they make an evenly spaced scale use it.\n    // spacing = step;\n    // numSpaces = (max - min) / spacing;\n    // Note that we round here to handle the case where almostWhole translated an FP error\n    numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n    spacing = (max - min) / numSpaces;\n    niceMin = min;\n    niceMax = max;\n  } else if (countDefined) {\n    // Cases 2 & 3, we have a count specified. Handle optional user defined edges to the range.\n    // Sometimes these are no-ops, but it makes the code a lot clearer\n    // and when a user defined range is specified, we want the correct ticks\n    niceMin = minDefined ? min : niceMin;\n    niceMax = maxDefined ? max : niceMax;\n    numSpaces = count - 1;\n    spacing = (niceMax - niceMin) / numSpaces;\n  } else {\n    // Case 4\n    numSpaces = (niceMax - niceMin) / spacing;\n\n    // If very close to our rounded value, use it.\n    if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n      numSpaces = Math.round(numSpaces);\n    } else {\n      numSpaces = Math.ceil(numSpaces);\n    }\n  }\n\n  // The spacing will have changed in cases 1, 2, and 3 so the factor cannot be computed\n  // until this point\n  const decimalPlaces = Math.max(\n    _decimalPlaces(spacing),\n    _decimalPlaces(niceMin)\n  );\n  factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n  niceMin = Math.round(niceMin * factor) / factor;\n  niceMax = Math.round(niceMax * factor) / factor;\n\n  let j = 0;\n  if (minDefined) {\n    if (includeBounds && niceMin !== min) {\n      ticks.push({value: min});\n\n      if (niceMin < min) {\n        j++; // Skip niceMin\n      }\n      // If the next nice tick is close to min, skip it\n      if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n        j++;\n      }\n    } else if (niceMin < min) {\n      j++;\n    }\n  }\n\n  for (; j < numSpaces; ++j) {\n    const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n    if (maxDefined && tickValue > max) {\n      break;\n    }\n    ticks.push({value: tickValue});\n  }\n\n  if (maxDefined && includeBounds && niceMax !== max) {\n    // If the previous tick is too close to max, replace it with max, else add max\n    if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n      ticks[ticks.length - 1].value = max;\n    } else {\n      ticks.push({value: max});\n    }\n  } else if (!maxDefined || niceMax === max) {\n    ticks.push({value: niceMax});\n  }\n\n  return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n  const rad = toRadians(minRotation);\n  const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n  const length = 0.75 * minSpacing * ('' + value).length;\n  return Math.min(minSpacing / ratio, length);\n}\n\nexport default class LinearScaleBase extends Scale {\n\n  constructor(cfg) {\n    super(cfg);\n\n    /** @type {number} */\n    this.start = undefined;\n    /** @type {number} */\n    this.end = undefined;\n    /** @type {number} */\n    this._startValue = undefined;\n    /** @type {number} */\n    this._endValue = undefined;\n    this._valueRange = 0;\n  }\n\n  parse(raw, index) { // eslint-disable-line no-unused-vars\n    if (isNullOrUndef(raw)) {\n      return null;\n    }\n    if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n      return null;\n    }\n\n    return +raw;\n  }\n\n  handleTickRangeOptions() {\n    const {beginAtZero} = this.options;\n    const {minDefined, maxDefined} = this.getUserBounds();\n    let {min, max} = this;\n\n    const setMin = v => (min = minDefined ? min : v);\n    const setMax = v => (max = maxDefined ? max : v);\n\n    if (beginAtZero) {\n      const minSign = sign(min);\n      const maxSign = sign(max);\n\n      if (minSign < 0 && maxSign < 0) {\n        setMax(0);\n      } else if (minSign > 0 && maxSign > 0) {\n        setMin(0);\n      }\n    }\n\n    if (min === max) {\n      let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n\n      setMax(max + offset);\n\n      if (!beginAtZero) {\n        setMin(min - offset);\n      }\n    }\n    this.min = min;\n    this.max = max;\n  }\n\n  getTickLimit() {\n    const tickOpts = this.options.ticks;\n    // eslint-disable-next-line prefer-const\n    let {maxTicksLimit, stepSize} = tickOpts;\n    let maxTicks;\n\n    if (stepSize) {\n      maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n      if (maxTicks > 1000) {\n        console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n        maxTicks = 1000;\n      }\n    } else {\n      maxTicks = this.computeTickLimit();\n      maxTicksLimit = maxTicksLimit || 11;\n    }\n\n    if (maxTicksLimit) {\n      maxTicks = Math.min(maxTicksLimit, maxTicks);\n    }\n\n    return maxTicks;\n  }\n\n  /**\n\t * @protected\n\t */\n  computeTickLimit() {\n    return Number.POSITIVE_INFINITY;\n  }\n\n  buildTicks() {\n    const opts = this.options;\n    const tickOpts = opts.ticks;\n\n    // Figure out what the max number of ticks we can support it is based on the size of\n    // the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n    // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n    // the graph. Make sure we always have at least 2 ticks\n    let maxTicks = this.getTickLimit();\n    maxTicks = Math.max(2, maxTicks);\n\n    const numericGeneratorOptions = {\n      maxTicks,\n      bounds: opts.bounds,\n      min: opts.min,\n      max: opts.max,\n      precision: tickOpts.precision,\n      step: tickOpts.stepSize,\n      count: tickOpts.count,\n      maxDigits: this._maxDigits(),\n      horizontal: this.isHorizontal(),\n      minRotation: tickOpts.minRotation || 0,\n      includeBounds: tickOpts.includeBounds !== false\n    };\n    const dataRange = this._range || this;\n    const ticks = generateTicks(numericGeneratorOptions, dataRange);\n\n    // At this point, we need to update our max and min given the tick values,\n    // since we probably have expanded the range of the scale\n    if (opts.bounds === 'ticks') {\n      _setMinAndMaxByKey(ticks, this, 'value');\n    }\n\n    if (opts.reverse) {\n      ticks.reverse();\n\n      this.start = this.max;\n      this.end = this.min;\n    } else {\n      this.start = this.min;\n      this.end = this.max;\n    }\n\n    return ticks;\n  }\n\n  /**\n\t * @protected\n\t */\n  configure() {\n    const ticks = this.ticks;\n    let start = this.min;\n    let end = this.max;\n\n    super.configure();\n\n    if (this.options.offset && ticks.length) {\n      const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n      start -= offset;\n      end += offset;\n    }\n    this._startValue = start;\n    this._endValue = end;\n    this._valueRange = end - start;\n  }\n\n  getLabelForValue(value) {\n    return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n  }\n}\n", "import {isFinite} from '../helpers/helpers.core.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {toRadians} from '../helpers/index.js';\n\nexport default class LinearScale extends LinearScaleBase {\n\n  static id = 'linear';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    ticks: {\n      callback: Ticks.formatters.numeric\n    }\n  };\n\n\n  determineDataLimits() {\n    const {min, max} = this.getMinMax(true);\n\n    this.min = isFinite(min) ? min : 0;\n    this.max = isFinite(max) ? max : 1;\n\n    // Common base implementation to handle min, max, beginAtZero\n    this.handleTickRangeOptions();\n  }\n\n  /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n \t */\n  computeTickLimit() {\n    const horizontal = this.isHorizontal();\n    const length = horizontal ? this.width : this.height;\n    const minRotation = toRadians(this.options.ticks.minRotation);\n    const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n    const tickFont = this._resolveTickFontOptions(0);\n    return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n  }\n\n  // Utils\n  getPixelForValue(value) {\n    return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n  }\n\n  getValueForPixel(pixel) {\n    return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n  }\n}\n", "import {finiteOrDefault, isFinite} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {_setMinAndMaxByKey, log10} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\n\nconst log10Floor = v => Math.floor(log10(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\n\nfunction isMajor(tickVal) {\n  const remain = tickVal / (Math.pow(10, log10Floor(tickVal)));\n  return remain === 1;\n}\n\nfunction steps(min, max, rangeExp) {\n  const rangeStep = Math.pow(10, rangeExp);\n  const start = Math.floor(min / rangeStep);\n  const end = Math.ceil(max / rangeStep);\n  return end - start;\n}\n\nfunction startExp(min, max) {\n  const range = max - min;\n  let rangeExp = log10Floor(range);\n  while (steps(min, max, rangeExp) > 10) {\n    rangeExp++;\n  }\n  while (steps(min, max, rangeExp) < 10) {\n    rangeExp--;\n  }\n  return Math.min(rangeExp, log10Floor(min));\n}\n\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, {min, max}) {\n  min = finiteOrDefault(generationOptions.min, min);\n  const ticks = [];\n  const minExp = log10Floor(min);\n  let exp = startExp(min, max);\n  let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n  const stepSize = Math.pow(10, exp);\n  const base = minExp > exp ? Math.pow(10, minExp) : 0;\n  const start = Math.round((min - base) * precision) / precision;\n  const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n  let significand = Math.floor((start - offset) / Math.pow(10, exp));\n  let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n  while (value < max) {\n    ticks.push({value, major: isMajor(value), significand});\n    if (significand >= 10) {\n      significand = significand < 15 ? 15 : 20;\n    } else {\n      significand++;\n    }\n    if (significand >= 20) {\n      exp++;\n      significand = 2;\n      precision = exp >= 0 ? 1 : precision;\n    }\n    value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n  }\n  const lastTick = finiteOrDefault(generationOptions.max, value);\n  ticks.push({value: lastTick, major: isMajor(lastTick), significand});\n\n  return ticks;\n}\n\nexport default class LogarithmicScale extends Scale {\n\n  static id = 'logarithmic';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    ticks: {\n      callback: Ticks.formatters.logarithmic,\n      major: {\n        enabled: true\n      }\n    }\n  };\n\n\n  constructor(cfg) {\n    super(cfg);\n\n    /** @type {number} */\n    this.start = undefined;\n    /** @type {number} */\n    this.end = undefined;\n    /** @type {number} */\n    this._startValue = undefined;\n    this._valueRange = 0;\n  }\n\n  parse(raw, index) {\n    const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n    if (value === 0) {\n      this._zero = true;\n      return undefined;\n    }\n    return isFinite(value) && value > 0 ? value : null;\n  }\n\n  determineDataLimits() {\n    const {min, max} = this.getMinMax(true);\n\n    this.min = isFinite(min) ? Math.max(0, min) : null;\n    this.max = isFinite(max) ? Math.max(0, max) : null;\n\n    if (this.options.beginAtZero) {\n      this._zero = true;\n    }\n\n    // if data has `0` in it or `beginAtZero` is true, min (non zero) value is at bottom\n    // of scale, and it does not equal suggestedMin, lower the min bound by one exp.\n    if (this._zero && this.min !== this._suggestedMin && !isFinite(this._userMin)) {\n      this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n    }\n\n    this.handleTickRangeOptions();\n  }\n\n  handleTickRangeOptions() {\n    const {minDefined, maxDefined} = this.getUserBounds();\n    let min = this.min;\n    let max = this.max;\n\n    const setMin = v => (min = minDefined ? min : v);\n    const setMax = v => (max = maxDefined ? max : v);\n\n    if (min === max) {\n      if (min <= 0) { // includes null\n        setMin(1);\n        setMax(10);\n      } else {\n        setMin(changeExponent(min, -1));\n        setMax(changeExponent(max, +1));\n      }\n    }\n    if (min <= 0) {\n      setMin(changeExponent(max, -1));\n    }\n    if (max <= 0) {\n\n      setMax(changeExponent(min, +1));\n    }\n\n    this.min = min;\n    this.max = max;\n  }\n\n  buildTicks() {\n    const opts = this.options;\n\n    const generationOptions = {\n      min: this._userMin,\n      max: this._userMax\n    };\n    const ticks = generateTicks(generationOptions, this);\n\n    // At this point, we need to update our max and min given the tick values,\n    // since we probably have expanded the range of the scale\n    if (opts.bounds === 'ticks') {\n      _setMinAndMaxByKey(ticks, this, 'value');\n    }\n\n    if (opts.reverse) {\n      ticks.reverse();\n\n      this.start = this.max;\n      this.end = this.min;\n    } else {\n      this.start = this.min;\n      this.end = this.max;\n    }\n\n    return ticks;\n  }\n\n  /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n  getLabelForValue(value) {\n    return value === undefined\n      ? '0'\n      : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n  }\n\n  /**\n\t * @protected\n\t */\n  configure() {\n    const start = this.min;\n\n    super.configure();\n\n    this._startValue = log10(start);\n    this._valueRange = log10(this.max) - log10(start);\n  }\n\n  getPixelForValue(value) {\n    if (value === undefined || value === 0) {\n      value = this.min;\n    }\n    if (value === null || isNaN(value)) {\n      return NaN;\n    }\n    return this.getPixelForDecimal(value === this.min\n      ? 0\n      : (log10(value) - this._startValue) / this._valueRange);\n  }\n\n  getValueForPixel(pixel) {\n    const decimal = this.getDecimalForPixel(pixel);\n    return Math.pow(10, this._startValue + decimal * this._valueRange);\n  }\n}\n", "import defaults from '../core/core.defaults.js';\nimport {_longestText, addRoundedRectPath, renderText, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport {HALF_PI, TAU, toDegrees, toRadians, _normalizeAngle, PI} from '../helpers/helpers.math.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {valueOrDefault, isArray, isFinite, callback as callCallback, isNullOrUndef} from '../helpers/helpers.core.js';\nimport {createContext, toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\n\nfunction getTickBackdropHeight(opts) {\n  const tickOpts = opts.ticks;\n\n  if (tickOpts.display && opts.display) {\n    const padding = toPadding(tickOpts.backdropPadding);\n    return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n  }\n  return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n  label = isArray(label) ? label : [label];\n  return {\n    w: _longestText(ctx, font.string, label),\n    h: label.length * font.lineHeight\n  };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n  if (angle === min || angle === max) {\n    return {\n      start: pos - (size / 2),\n      end: pos + (size / 2)\n    };\n  } else if (angle < min || angle > max) {\n    return {\n      start: pos - size,\n      end: pos\n    };\n  }\n\n  return {\n    start: pos,\n    end: pos + size\n  };\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n  // Right, this is really confusing and there is a lot of maths going on here\n  // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n  //\n  // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n  //\n  // Solution:\n  //\n  // We assume the radius of the polygon is half the size of the canvas at first\n  // at each index we check if the text overlaps.\n  //\n  // Where it does, we store that angle and that index.\n  //\n  // After finding the largest index and angle we calculate how much we need to remove\n  // from the shape radius to move the point inwards by that x.\n  //\n  // We average the left and right distances to get the maximum shape radius that can fit in the box\n  // along with labels.\n  //\n  // Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n  // on each side, removing that from the size, halving it and adding the left x protrusion width.\n  //\n  // This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n  // and position it in the most space efficient manner\n  //\n  // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n  // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n  // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n  const orig = {\n    l: scale.left + scale._padding.left,\n    r: scale.right - scale._padding.right,\n    t: scale.top + scale._padding.top,\n    b: scale.bottom - scale._padding.bottom\n  };\n  const limits = Object.assign({}, orig);\n  const labelSizes = [];\n  const padding = [];\n  const valueCount = scale._pointLabels.length;\n  const pointLabelOpts = scale.options.pointLabels;\n  const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n\n  for (let i = 0; i < valueCount; i++) {\n    const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n    padding[i] = opts.padding;\n    const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n    const plFont = toFont(opts.font);\n    const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n    labelSizes[i] = textSize;\n\n    const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n    const angle = Math.round(toDegrees(angleRadians));\n    const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n    const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n    updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n  }\n\n  scale.setCenterPoint(\n    orig.l - limits.l,\n    limits.r - orig.r,\n    orig.t - limits.t,\n    limits.b - orig.b\n  );\n\n  // Now that text size is determined, compute the full positions\n  scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n  const sin = Math.abs(Math.sin(angle));\n  const cos = Math.abs(Math.cos(angle));\n  let x = 0;\n  let y = 0;\n  if (hLimits.start < orig.l) {\n    x = (orig.l - hLimits.start) / sin;\n    limits.l = Math.min(limits.l, orig.l - x);\n  } else if (hLimits.end > orig.r) {\n    x = (hLimits.end - orig.r) / sin;\n    limits.r = Math.max(limits.r, orig.r + x);\n  }\n  if (vLimits.start < orig.t) {\n    y = (orig.t - vLimits.start) / cos;\n    limits.t = Math.min(limits.t, orig.t - y);\n  } else if (vLimits.end > orig.b) {\n    y = (vLimits.end - orig.b) / cos;\n    limits.b = Math.max(limits.b, orig.b + y);\n  }\n}\n\nfunction createPointLabelItem(scale, index, itemOpts) {\n  const outerDistance = scale.drawingArea;\n  const {extra, additionalAngle, padding, size} = itemOpts;\n  const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n  const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n  const y = yForAngle(pointLabelPosition.y, size.h, angle);\n  const textAlign = getTextAlignForAngle(angle);\n  const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n  return {\n    // if to draw or overlapped\n    visible: true,\n\n    // Text position\n    x: pointLabelPosition.x,\n    y,\n\n    // Text rendering data\n    textAlign,\n\n    // Bounding box\n    left,\n    top: y,\n    right: left + size.w,\n    bottom: y + size.h\n  };\n}\n\nfunction isNotOverlapped(item, area) {\n  if (!area) {\n    return true;\n  }\n  const {left, top, right, bottom} = item;\n  const apexesInArea = _isPointInArea({x: left, y: top}, area) || _isPointInArea({x: left, y: bottom}, area) ||\n    _isPointInArea({x: right, y: top}, area) || _isPointInArea({x: right, y: bottom}, area);\n  return !apexesInArea;\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n  const items = [];\n  const valueCount = scale._pointLabels.length;\n  const opts = scale.options;\n  const {centerPointLabels, display} = opts.pointLabels;\n  const itemOpts = {\n    extra: getTickBackdropHeight(opts) / 2,\n    additionalAngle: centerPointLabels ? PI / valueCount : 0\n  };\n  let area;\n\n  for (let i = 0; i < valueCount; i++) {\n    itemOpts.padding = padding[i];\n    itemOpts.size = labelSizes[i];\n\n    const item = createPointLabelItem(scale, i, itemOpts);\n    items.push(item);\n    if (display === 'auto') {\n      item.visible = isNotOverlapped(item, area);\n      if (item.visible) {\n        area = item;\n      }\n    }\n  }\n  return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n  if (angle === 0 || angle === 180) {\n    return 'center';\n  } else if (angle < 180) {\n    return 'left';\n  }\n\n  return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n  if (align === 'right') {\n    x -= w;\n  } else if (align === 'center') {\n    x -= (w / 2);\n  }\n  return x;\n}\n\nfunction yForAngle(y, h, angle) {\n  if (angle === 90 || angle === 270) {\n    y -= (h / 2);\n  } else if (angle > 270 || angle < 90) {\n    y -= h;\n  }\n  return y;\n}\n\nfunction drawPointLabelBox(ctx, opts, item) {\n  const {left, top, right, bottom} = item;\n  const {backdropColor} = opts;\n\n  if (!isNullOrUndef(backdropColor)) {\n    const borderRadius = toTRBLCorners(opts.borderRadius);\n    const padding = toPadding(opts.backdropPadding);\n    ctx.fillStyle = backdropColor;\n\n    const backdropLeft = left - padding.left;\n    const backdropTop = top - padding.top;\n    const backdropWidth = right - left + padding.width;\n    const backdropHeight = bottom - top + padding.height;\n\n    if (Object.values(borderRadius).some(v => v !== 0)) {\n      ctx.beginPath();\n      addRoundedRectPath(ctx, {\n        x: backdropLeft,\n        y: backdropTop,\n        w: backdropWidth,\n        h: backdropHeight,\n        radius: borderRadius,\n      });\n      ctx.fill();\n    } else {\n      ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n    }\n  }\n}\n\nfunction drawPointLabels(scale, labelCount) {\n  const {ctx, options: {pointLabels}} = scale;\n\n  for (let i = labelCount - 1; i >= 0; i--) {\n    const item = scale._pointLabelItems[i];\n    if (!item.visible) {\n      // overlapping\n      continue;\n    }\n    const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n    drawPointLabelBox(ctx, optsAtIndex, item);\n    const plFont = toFont(optsAtIndex.font);\n    const {x, y, textAlign} = item;\n\n    renderText(\n      ctx,\n      scale._pointLabels[i],\n      x,\n      y + (plFont.lineHeight / 2),\n      plFont,\n      {\n        color: optsAtIndex.color,\n        textAlign: textAlign,\n        textBaseline: 'middle'\n      }\n    );\n  }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n  const {ctx} = scale;\n  if (circular) {\n    // Draw circular arcs between the points\n    ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n  } else {\n    // Draw straight lines connecting each index\n    let pointPosition = scale.getPointPosition(0, radius);\n    ctx.moveTo(pointPosition.x, pointPosition.y);\n\n    for (let i = 1; i < labelCount; i++) {\n      pointPosition = scale.getPointPosition(i, radius);\n      ctx.lineTo(pointPosition.x, pointPosition.y);\n    }\n  }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n  const ctx = scale.ctx;\n  const circular = gridLineOpts.circular;\n\n  const {color, lineWidth} = gridLineOpts;\n\n  if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n    return;\n  }\n\n  ctx.save();\n  ctx.strokeStyle = color;\n  ctx.lineWidth = lineWidth;\n  ctx.setLineDash(borderOpts.dash || []);\n  ctx.lineDashOffset = borderOpts.dashOffset;\n\n  ctx.beginPath();\n  pathRadiusLine(scale, radius, circular, labelCount);\n  ctx.closePath();\n  ctx.stroke();\n  ctx.restore();\n}\n\nfunction createPointLabelContext(parent, index, label) {\n  return createContext(parent, {\n    label,\n    index,\n    type: 'pointLabel'\n  });\n}\n\nexport default class RadialLinearScale extends LinearScaleBase {\n\n  static id = 'radialLinear';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    display: true,\n\n    // Boolean - Whether to animate scaling the chart from the centre\n    animate: true,\n    position: 'chartArea',\n\n    angleLines: {\n      display: true,\n      lineWidth: 1,\n      borderDash: [],\n      borderDashOffset: 0.0\n    },\n\n    grid: {\n      circular: false\n    },\n\n    startAngle: 0,\n\n    // label settings\n    ticks: {\n      // Boolean - Show a backdrop to the scale label\n      showLabelBackdrop: true,\n\n      callback: Ticks.formatters.numeric\n    },\n\n    pointLabels: {\n      backdropColor: undefined,\n\n      // Number - The backdrop padding above & below the label in pixels\n      backdropPadding: 2,\n\n      // Boolean - if true, show point labels\n      display: true,\n\n      // Number - Point label font size in pixels\n      font: {\n        size: 10\n      },\n\n      // Function - Used to convert point labels\n      callback(label) {\n        return label;\n      },\n\n      // Number - Additionl padding between scale and pointLabel\n      padding: 5,\n\n      // Boolean - if true, center point labels to slices in polar chart\n      centerPointLabels: false\n    }\n  };\n\n  static defaultRoutes = {\n    'angleLines.color': 'borderColor',\n    'pointLabels.color': 'color',\n    'ticks.color': 'color'\n  };\n\n  static descriptors = {\n    angleLines: {\n      _fallback: 'grid'\n    }\n  };\n\n  constructor(cfg) {\n    super(cfg);\n\n    /** @type {number} */\n    this.xCenter = undefined;\n    /** @type {number} */\n    this.yCenter = undefined;\n    /** @type {number} */\n    this.drawingArea = undefined;\n    /** @type {string[]} */\n    this._pointLabels = [];\n    this._pointLabelItems = [];\n  }\n\n  setDimensions() {\n    // Set the unconstrained dimension before label rotation\n    const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n    const w = this.width = this.maxWidth - padding.width;\n    const h = this.height = this.maxHeight - padding.height;\n    this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n    this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n    this.drawingArea = Math.floor(Math.min(w, h) / 2);\n  }\n\n  determineDataLimits() {\n    const {min, max} = this.getMinMax(false);\n\n    this.min = isFinite(min) && !isNaN(min) ? min : 0;\n    this.max = isFinite(max) && !isNaN(max) ? max : 0;\n\n    // Common base implementation to handle min, max, beginAtZero\n    this.handleTickRangeOptions();\n  }\n\n  /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n\t */\n  computeTickLimit() {\n    return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n  }\n\n  generateTickLabels(ticks) {\n    LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n\n    // Point labels\n    this._pointLabels = this.getLabels()\n      .map((value, index) => {\n        const label = callCallback(this.options.pointLabels.callback, [value, index], this);\n        return label || label === 0 ? label : '';\n      })\n      .filter((v, i) => this.chart.getDataVisibility(i));\n  }\n\n  fit() {\n    const opts = this.options;\n\n    if (opts.display && opts.pointLabels.display) {\n      fitWithPointLabels(this);\n    } else {\n      this.setCenterPoint(0, 0, 0, 0);\n    }\n  }\n\n  setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n    this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n    this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n    this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n  }\n\n  getIndexAngle(index) {\n    const angleMultiplier = TAU / (this._pointLabels.length || 1);\n    const startAngle = this.options.startAngle || 0;\n\n    return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n  }\n\n  getDistanceFromCenterForValue(value) {\n    if (isNullOrUndef(value)) {\n      return NaN;\n    }\n\n    // Take into account half font size + the yPadding of the top value\n    const scalingFactor = this.drawingArea / (this.max - this.min);\n    if (this.options.reverse) {\n      return (this.max - value) * scalingFactor;\n    }\n    return (value - this.min) * scalingFactor;\n  }\n\n  getValueForDistanceFromCenter(distance) {\n    if (isNullOrUndef(distance)) {\n      return NaN;\n    }\n\n    const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n    return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n  }\n\n  getPointLabelContext(index) {\n    const pointLabels = this._pointLabels || [];\n\n    if (index >= 0 && index < pointLabels.length) {\n      const pointLabel = pointLabels[index];\n      return createPointLabelContext(this.getContext(), index, pointLabel);\n    }\n  }\n\n  getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n    const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n    return {\n      x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n      y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n      angle\n    };\n  }\n\n  getPointPositionForValue(index, value) {\n    return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n  }\n\n  getBasePosition(index) {\n    return this.getPointPositionForValue(index || 0, this.getBaseValue());\n  }\n\n  getPointLabelPosition(index) {\n    const {left, top, right, bottom} = this._pointLabelItems[index];\n    return {\n      left,\n      top,\n      right,\n      bottom,\n    };\n  }\n\n  /**\n\t * @protected\n\t */\n  drawBackground() {\n    const {backgroundColor, grid: {circular}} = this.options;\n    if (backgroundColor) {\n      const ctx = this.ctx;\n      ctx.save();\n      ctx.beginPath();\n      pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n      ctx.closePath();\n      ctx.fillStyle = backgroundColor;\n      ctx.fill();\n      ctx.restore();\n    }\n  }\n\n  /**\n\t * @protected\n\t */\n  drawGrid() {\n    const ctx = this.ctx;\n    const opts = this.options;\n    const {angleLines, grid, border} = opts;\n    const labelCount = this._pointLabels.length;\n\n    let i, offset, position;\n\n    if (opts.pointLabels.display) {\n      drawPointLabels(this, labelCount);\n    }\n\n    if (grid.display) {\n      this.ticks.forEach((tick, index) => {\n        if (index !== 0 || (index === 0 && this.min < 0)) {\n          offset = this.getDistanceFromCenterForValue(tick.value);\n          const context = this.getContext(index);\n          const optsAtIndex = grid.setContext(context);\n          const optsAtIndexBorder = border.setContext(context);\n\n          drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n        }\n      });\n    }\n\n    if (angleLines.display) {\n      ctx.save();\n\n      for (i = labelCount - 1; i >= 0; i--) {\n        const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n        const {color, lineWidth} = optsAtIndex;\n\n        if (!lineWidth || !color) {\n          continue;\n        }\n\n        ctx.lineWidth = lineWidth;\n        ctx.strokeStyle = color;\n\n        ctx.setLineDash(optsAtIndex.borderDash);\n        ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n\n        offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n        position = this.getPointPosition(i, offset);\n        ctx.beginPath();\n        ctx.moveTo(this.xCenter, this.yCenter);\n        ctx.lineTo(position.x, position.y);\n        ctx.stroke();\n      }\n\n      ctx.restore();\n    }\n  }\n\n  /**\n\t * @protected\n\t */\n  drawBorder() {}\n\n  /**\n\t * @protected\n\t */\n  drawLabels() {\n    const ctx = this.ctx;\n    const opts = this.options;\n    const tickOpts = opts.ticks;\n\n    if (!tickOpts.display) {\n      return;\n    }\n\n    const startAngle = this.getIndexAngle(0);\n    let offset, width;\n\n    ctx.save();\n    ctx.translate(this.xCenter, this.yCenter);\n    ctx.rotate(startAngle);\n    ctx.textAlign = 'center';\n    ctx.textBaseline = 'middle';\n\n    this.ticks.forEach((tick, index) => {\n      if ((index === 0 && this.min >= 0) && !opts.reverse) {\n        return;\n      }\n\n      const optsAtIndex = tickOpts.setContext(this.getContext(index));\n      const tickFont = toFont(optsAtIndex.font);\n      offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n\n      if (optsAtIndex.showLabelBackdrop) {\n        ctx.font = tickFont.string;\n        width = ctx.measureText(tick.label).width;\n        ctx.fillStyle = optsAtIndex.backdropColor;\n\n        const padding = toPadding(optsAtIndex.backdropPadding);\n        ctx.fillRect(\n          -width / 2 - padding.left,\n          -offset - tickFont.size / 2 - padding.top,\n          width + padding.width,\n          tickFont.size + padding.height\n        );\n      }\n\n      renderText(ctx, tick.label, 0, -offset, tickFont, {\n        color: optsAtIndex.color,\n        strokeColor: optsAtIndex.textStrokeColor,\n        strokeWidth: optsAtIndex.textStrokeWidth,\n      });\n    });\n\n    ctx.restore();\n  }\n\n  /**\n\t * @protected\n\t */\n  drawTitle() {}\n}\n", "import adapters from '../core/core.adapters.js';\nimport {callback as call, isFinite, isNullOrUndef, mergeIf, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toRadians, isNumber, _limitValue} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {_arrayUnique, _filterBetween, _lookup} from '../helpers/helpers.collection.js';\n\n/**\n * @typedef { import('../core/core.adapters.js').TimeUnit } Unit\n * @typedef {{common: boolean, size: number, steps?: number}} Interval\n * @typedef { import('../core/core.adapters.js').DateAdapter } DateAdapter\n */\n\n/**\n * @type {Object<Unit, Interval>}\n */\nconst INTERVALS = {\n  millisecond: {common: true, size: 1, steps: 1000},\n  second: {common: true, size: 1000, steps: 60},\n  minute: {common: true, size: 60000, steps: 60},\n  hour: {common: true, size: 3600000, steps: 24},\n  day: {common: true, size: 86400000, steps: 30},\n  week: {common: false, size: 604800000, steps: 4},\n  month: {common: true, size: 2.628e9, steps: 12},\n  quarter: {common: false, size: 7.884e9, steps: 4},\n  year: {common: true, size: 3.154e10}\n};\n\n/**\n * @type {Unit[]}\n */\nconst UNITS = /** @type Unit[] */ /* #__PURE__ */ (Object.keys(INTERVALS));\n\n/**\n * @param {number} a\n * @param {number} b\n */\nfunction sorter(a, b) {\n  return a - b;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {*} input\n * @return {number}\n */\nfunction parse(scale, input) {\n  if (isNullOrUndef(input)) {\n    return null;\n  }\n\n  const adapter = scale._adapter;\n  const {parser, round, isoWeekday} = scale._parseOpts;\n  let value = input;\n\n  if (typeof parser === 'function') {\n    value = parser(value);\n  }\n\n  // Only parse if it's not a timestamp already\n  if (!isFinite(value)) {\n    value = typeof parser === 'string'\n      ? adapter.parse(value, parser)\n      : adapter.parse(value);\n  }\n\n  if (value === null) {\n    return null;\n  }\n\n  if (round) {\n    value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n      ? adapter.startOf(value, 'isoWeek', isoWeekday)\n      : adapter.startOf(value, round);\n  }\n\n  return +value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @param {number} capacity\n * @return {object}\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n  const ilen = UNITS.length;\n\n  for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n    const interval = INTERVALS[UNITS[i]];\n    const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n    if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n      return UNITS[i];\n    }\n  }\n\n  return UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n * @param {TimeScale} scale\n * @param {number} numTicks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @return {Unit}\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n  for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n    const unit = UNITS[i];\n    if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n      return unit;\n    }\n  }\n\n  return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\n/**\n * @param {Unit} unit\n * @return {object}\n */\nfunction determineMajorUnit(unit) {\n  for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n    if (INTERVALS[UNITS[i]].common) {\n      return UNITS[i];\n    }\n  }\n}\n\n/**\n * @param {object} ticks\n * @param {number} time\n * @param {number[]} [timestamps] - if defined, snap to these timestamps\n */\nfunction addTick(ticks, time, timestamps) {\n  if (!timestamps) {\n    ticks[time] = true;\n  } else if (timestamps.length) {\n    const {lo, hi} = _lookup(timestamps, time);\n    const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n    ticks[timestamp] = true;\n  }\n}\n\n/**\n * @param {TimeScale} scale\n * @param {object[]} ticks\n * @param {object} map\n * @param {Unit} majorUnit\n * @return {object[]}\n */\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n  const adapter = scale._adapter;\n  const first = +adapter.startOf(ticks[0].value, majorUnit);\n  const last = ticks[ticks.length - 1].value;\n  let major, index;\n\n  for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n    index = map[major];\n    if (index >= 0) {\n      ticks[index].major = true;\n    }\n  }\n  return ticks;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {number[]} values\n * @param {Unit|undefined} [majorUnit]\n * @return {object[]}\n */\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n  const ticks = [];\n  /** @type {Object<number,object>} */\n  const map = {};\n  const ilen = values.length;\n  let i, value;\n\n  for (i = 0; i < ilen; ++i) {\n    value = values[i];\n    map[value] = i;\n\n    ticks.push({\n      value,\n      major: false\n    });\n  }\n\n  // We set the major ticks separately from the above loop because calling startOf for every tick\n  // is expensive when there is a large number of ticks\n  return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nexport default class TimeScale extends Scale {\n\n  static id = 'time';\n\n  /**\n   * @type {any}\n   */\n  static defaults = {\n    /**\n     * Scale boundary strategy (bypassed by min/max time options)\n     * - `data`: make sure data are fully visible, ticks outside are removed\n     * - `ticks`: make sure ticks are fully visible, data outside are truncated\n     * @see https://github.com/chartjs/Chart.js/pull/4556\n     * @since 2.7.0\n     */\n    bounds: 'data',\n\n    adapters: {},\n    time: {\n      parser: false, // false == a pattern string from or a custom callback that converts its argument to a timestamp\n      unit: false, // false == automatic or override with week, month, year, etc.\n      round: false, // none, or override with week, month, year, etc.\n      isoWeekday: false, // override week start day\n      minUnit: 'millisecond',\n      displayFormats: {}\n    },\n    ticks: {\n      /**\n       * Ticks generation input values:\n       * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n       * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n       * - 'labels': generates ticks from user given `data.labels` values ONLY.\n       * @see https://github.com/chartjs/Chart.js/pull/4507\n       * @since 2.7.0\n       */\n      source: 'auto',\n\n      callback: false,\n\n      major: {\n        enabled: false\n      }\n    }\n  };\n\n  /**\n\t * @param {object} props\n\t */\n  constructor(props) {\n    super(props);\n\n    /** @type {{data: number[], labels: number[], all: number[]}} */\n    this._cache = {\n      data: [],\n      labels: [],\n      all: []\n    };\n\n    /** @type {Unit} */\n    this._unit = 'day';\n    /** @type {Unit=} */\n    this._majorUnit = undefined;\n    this._offsets = {};\n    this._normalized = false;\n    this._parseOpts = undefined;\n  }\n\n  init(scaleOpts, opts = {}) {\n    const time = scaleOpts.time || (scaleOpts.time = {});\n    /** @type {DateAdapter} */\n    const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n\n    adapter.init(opts);\n\n    // Backward compatibility: before introducing adapter, `displayFormats` was\n    // supposed to contain *all* unit/string pairs but this can't be resolved\n    // when loading the scale (adapters are loaded afterward), so let's populate\n    // missing formats on update\n    mergeIf(time.displayFormats, adapter.formats());\n\n    this._parseOpts = {\n      parser: time.parser,\n      round: time.round,\n      isoWeekday: time.isoWeekday\n    };\n\n    super.init(scaleOpts);\n\n    this._normalized = opts.normalized;\n  }\n\n  /**\n\t * @param {*} raw\n\t * @param {number?} [index]\n\t * @return {number}\n\t */\n  parse(raw, index) { // eslint-disable-line no-unused-vars\n    if (raw === undefined) {\n      return null;\n    }\n    return parse(this, raw);\n  }\n\n  beforeLayout() {\n    super.beforeLayout();\n    this._cache = {\n      data: [],\n      labels: [],\n      all: []\n    };\n  }\n\n  determineDataLimits() {\n    const options = this.options;\n    const adapter = this._adapter;\n    const unit = options.time.unit || 'day';\n    // eslint-disable-next-line prefer-const\n    let {min, max, minDefined, maxDefined} = this.getUserBounds();\n\n    /**\n\t\t * @param {object} bounds\n\t\t */\n    function _applyBounds(bounds) {\n      if (!minDefined && !isNaN(bounds.min)) {\n        min = Math.min(min, bounds.min);\n      }\n      if (!maxDefined && !isNaN(bounds.max)) {\n        max = Math.max(max, bounds.max);\n      }\n    }\n\n    // If we have user provided `min` and `max` labels / data bounds can be ignored\n    if (!minDefined || !maxDefined) {\n      // Labels are always considered, when user did not force bounds\n      _applyBounds(this._getLabelBounds());\n\n      // If `bounds` is `'ticks'` and `ticks.source` is `'labels'`,\n      // data bounds are ignored (and don't need to be determined)\n      if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n        _applyBounds(this.getMinMax(false));\n      }\n    }\n\n    min = isFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n    max = isFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n\n    // Make sure that max is strictly higher than min (required by the timeseries lookup table)\n    this.min = Math.min(min, max - 1);\n    this.max = Math.max(min + 1, max);\n  }\n\n  /**\n\t * @private\n\t */\n  _getLabelBounds() {\n    const arr = this.getLabelTimestamps();\n    let min = Number.POSITIVE_INFINITY;\n    let max = Number.NEGATIVE_INFINITY;\n\n    if (arr.length) {\n      min = arr[0];\n      max = arr[arr.length - 1];\n    }\n    return {min, max};\n  }\n\n  /**\n\t * @return {object[]}\n\t */\n  buildTicks() {\n    const options = this.options;\n    const timeOpts = options.time;\n    const tickOpts = options.ticks;\n    const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n    if (options.bounds === 'ticks' && timestamps.length) {\n      this.min = this._userMin || timestamps[0];\n      this.max = this._userMax || timestamps[timestamps.length - 1];\n    }\n\n    const min = this.min;\n    const max = this.max;\n\n    const ticks = _filterBetween(timestamps, min, max);\n\n    // PRIVATE\n    // determineUnitForFormatting relies on the number of ticks so we don't use it when\n    // autoSkip is enabled because we don't yet know what the final number of ticks will be\n    this._unit = timeOpts.unit || (tickOpts.autoSkip\n      ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n      : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n    this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n      : determineMajorUnit(this._unit);\n    this.initOffsets(timestamps);\n\n    if (options.reverse) {\n      ticks.reverse();\n    }\n\n    return ticksFromTimestamps(this, ticks, this._majorUnit);\n  }\n\n  afterAutoSkip() {\n    // Offsets for bar charts need to be handled with the auto skipped\n    // ticks. Once ticks have been skipped, we re-compute the offsets.\n    if (this.options.offsetAfterAutoskip) {\n      this.initOffsets(this.ticks.map(tick => +tick.value));\n    }\n  }\n\n  /**\n\t * Returns the start and end offsets from edges in the form of {start, end}\n\t * where each value is a relative width to the scale and ranges between 0 and 1.\n\t * They add extra margins on the both sides by scaling down the original scale.\n\t * Offsets are added when the `offset` option is true.\n\t * @param {number[]} timestamps\n\t * @protected\n\t */\n  initOffsets(timestamps = []) {\n    let start = 0;\n    let end = 0;\n    let first, last;\n\n    if (this.options.offset && timestamps.length) {\n      first = this.getDecimalForValue(timestamps[0]);\n      if (timestamps.length === 1) {\n        start = 1 - first;\n      } else {\n        start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n      }\n      last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n      if (timestamps.length === 1) {\n        end = last;\n      } else {\n        end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n      }\n    }\n    const limit = timestamps.length < 3 ? 0.5 : 0.25;\n    start = _limitValue(start, 0, limit);\n    end = _limitValue(end, 0, limit);\n\n    this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n  }\n\n  /**\n\t * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n\t * `minor` unit using the given scale time `options`.\n\t * Important: this method can return ticks outside the min and max range, it's the\n\t * responsibility of the calling code to clamp values if needed.\n\t * @protected\n\t */\n  _generate() {\n    const adapter = this._adapter;\n    const min = this.min;\n    const max = this.max;\n    const options = this.options;\n    const timeOpts = options.time;\n    // @ts-ignore\n    const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n    const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n    const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n    const hasWeekday = isNumber(weekday) || weekday === true;\n    const ticks = {};\n    let first = min;\n    let time, count;\n\n    // For 'week' unit, handle the first day of week option\n    if (hasWeekday) {\n      first = +adapter.startOf(first, 'isoWeek', weekday);\n    }\n\n    // Align first ticks on unit\n    first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n    // Prevent browser from freezing in case user options request millions of milliseconds\n    if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n      throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n    }\n\n    const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n    for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n      addTick(ticks, time, timestamps);\n    }\n\n    if (time === max || options.bounds === 'ticks' || count === 1) {\n      addTick(ticks, time, timestamps);\n    }\n\n    // @ts-ignore\n    return Object.keys(ticks).sort(sorter).map(x => +x);\n  }\n\n  /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n  getLabelForValue(value) {\n    const adapter = this._adapter;\n    const timeOpts = this.options.time;\n\n    if (timeOpts.tooltipFormat) {\n      return adapter.format(value, timeOpts.tooltipFormat);\n    }\n    return adapter.format(value, timeOpts.displayFormats.datetime);\n  }\n\n  /**\n\t * @param {number} value\n\t * @param {string|undefined} format\n\t * @return {string}\n\t */\n  format(value, format) {\n    const options = this.options;\n    const formats = options.time.displayFormats;\n    const unit = this._unit;\n    const fmt = format || formats[unit];\n    return this._adapter.format(value, fmt);\n  }\n\n  /**\n\t * Function to format an individual tick mark\n\t * @param {number} time\n\t * @param {number} index\n\t * @param {object[]} ticks\n\t * @param {string|undefined} [format]\n\t * @return {string}\n\t * @private\n\t */\n  _tickFormatFunction(time, index, ticks, format) {\n    const options = this.options;\n    const formatter = options.ticks.callback;\n\n    if (formatter) {\n      return call(formatter, [time, index, ticks], this);\n    }\n\n    const formats = options.time.displayFormats;\n    const unit = this._unit;\n    const majorUnit = this._majorUnit;\n    const minorFormat = unit && formats[unit];\n    const majorFormat = majorUnit && formats[majorUnit];\n    const tick = ticks[index];\n    const major = majorUnit && majorFormat && tick && tick.major;\n\n    return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n  }\n\n  /**\n\t * @param {object[]} ticks\n\t */\n  generateTickLabels(ticks) {\n    let i, ilen, tick;\n\n    for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n      tick = ticks[i];\n      tick.label = this._tickFormatFunction(tick.value, i, ticks);\n    }\n  }\n\n  /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n  getDecimalForValue(value) {\n    return value === null ? NaN : (value - this.min) / (this.max - this.min);\n  }\n\n  /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n  getPixelForValue(value) {\n    const offsets = this._offsets;\n    const pos = this.getDecimalForValue(value);\n    return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n  }\n\n  /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n  getValueForPixel(pixel) {\n    const offsets = this._offsets;\n    const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n    return this.min + pos * (this.max - this.min);\n  }\n\n  /**\n\t * @param {string} label\n\t * @return {{w:number, h:number}}\n\t * @private\n\t */\n  _getLabelSize(label) {\n    const ticksOpts = this.options.ticks;\n    const tickLabelWidth = this.ctx.measureText(label).width;\n    const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n    const cosRotation = Math.cos(angle);\n    const sinRotation = Math.sin(angle);\n    const tickFontSize = this._resolveTickFontOptions(0).size;\n\n    return {\n      w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n      h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n    };\n  }\n\n  /**\n\t * @param {number} exampleTime\n\t * @return {number}\n\t * @private\n\t */\n  _getLabelCapacity(exampleTime) {\n    const timeOpts = this.options.time;\n    const displayFormats = timeOpts.displayFormats;\n\n    // pick the longest format (milliseconds) for guesstimation\n    const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n    const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n    const size = this._getLabelSize(exampleLabel);\n    // subtract 1 - if offset then there's one less label than tick\n    // if not offset then one half label padding is added to each end leaving room for one less label\n    const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n    return capacity > 0 ? capacity : 1;\n  }\n\n  /**\n\t * @protected\n\t */\n  getDataTimestamps() {\n    let timestamps = this._cache.data || [];\n    let i, ilen;\n\n    if (timestamps.length) {\n      return timestamps;\n    }\n\n    const metas = this.getMatchingVisibleMetas();\n\n    if (this._normalized && metas.length) {\n      return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n    }\n\n    for (i = 0, ilen = metas.length; i < ilen; ++i) {\n      timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n    }\n\n    return (this._cache.data = this.normalize(timestamps));\n  }\n\n  /**\n\t * @protected\n\t */\n  getLabelTimestamps() {\n    const timestamps = this._cache.labels || [];\n    let i, ilen;\n\n    if (timestamps.length) {\n      return timestamps;\n    }\n\n    const labels = this.getLabels();\n    for (i = 0, ilen = labels.length; i < ilen; ++i) {\n      timestamps.push(parse(this, labels[i]));\n    }\n\n    return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n  }\n\n  /**\n\t * @param {number[]} values\n\t * @protected\n\t */\n  normalize(values) {\n    // It seems to be somewhat faster to do sorting first\n    return _arrayUnique(values.sort(sorter));\n  }\n}\n", "import TimeScale from './scale.time.js';\nimport {_lookupByKey} from '../helpers/helpers.collection.js';\n\n/**\n * Linearly interpolates the given source `val` using the table. If value is out of bounds, values\n * at edges are used for the interpolation.\n * @param {object} table\n * @param {number} val\n * @param {boolean} [reverse] lookup time based on position instead of vice versa\n * @return {object}\n */\nfunction interpolate(table, val, reverse) {\n  let lo = 0;\n  let hi = table.length - 1;\n  let prevSource, nextSource, prevTarget, nextTarget;\n  if (reverse) {\n    if (val >= table[lo].pos && val <= table[hi].pos) {\n      ({lo, hi} = _lookupByKey(table, 'pos', val));\n    }\n    ({pos: prevSource, time: prevTarget} = table[lo]);\n    ({pos: nextSource, time: nextTarget} = table[hi]);\n  } else {\n    if (val >= table[lo].time && val <= table[hi].time) {\n      ({lo, hi} = _lookupByKey(table, 'time', val));\n    }\n    ({time: prevSource, pos: prevTarget} = table[lo]);\n    ({time: nextSource, pos: nextTarget} = table[hi]);\n  }\n\n  const span = nextSource - prevSource;\n  return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nclass TimeSeriesScale extends TimeScale {\n\n  static id = 'timeseries';\n\n  /**\n   * @type {any}\n   */\n  static defaults = TimeScale.defaults;\n\n  /**\n\t * @param {object} props\n\t */\n  constructor(props) {\n    super(props);\n\n    /** @type {object[]} */\n    this._table = [];\n    /** @type {number} */\n    this._minPos = undefined;\n    /** @type {number} */\n    this._tableRange = undefined;\n  }\n\n  /**\n\t * @protected\n\t */\n  initOffsets() {\n    const timestamps = this._getTimestampsForTable();\n    const table = this._table = this.buildLookupTable(timestamps);\n    this._minPos = interpolate(table, this.min);\n    this._tableRange = interpolate(table, this.max) - this._minPos;\n    super.initOffsets(timestamps);\n  }\n\n  /**\n\t * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n\t * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n\t * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n\t * extremity (left + width or top + height). Note that it would be more optimized to directly\n\t * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n\t * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n\t * @param {number[]} timestamps\n\t * @return {object[]}\n\t * @protected\n\t */\n  buildLookupTable(timestamps) {\n    const {min, max} = this;\n    const items = [];\n    const table = [];\n    let i, ilen, prev, curr, next;\n\n    for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n      curr = timestamps[i];\n      if (curr >= min && curr <= max) {\n        items.push(curr);\n      }\n    }\n\n    if (items.length < 2) {\n      // In case there is less that 2 timestamps between min and max, the scale is defined by min and max\n      return [\n        {time: min, pos: 0},\n        {time: max, pos: 1}\n      ];\n    }\n\n    for (i = 0, ilen = items.length; i < ilen; ++i) {\n      next = items[i + 1];\n      prev = items[i - 1];\n      curr = items[i];\n\n      // only add points that breaks the scale linearity\n      if (Math.round((next + prev) / 2) !== curr) {\n        table.push({time: curr, pos: i / (ilen - 1)});\n      }\n    }\n    return table;\n  }\n\n  /**\n    * Generates all timestamps defined in the data.\n    * Important: this method can return ticks outside the min and max range, it's the\n    * responsibility of the calling code to clamp values if needed.\n    * @protected\n    */\n  _generate() {\n    const min = this.min;\n    const max = this.max;\n    let timestamps = super.getDataTimestamps();\n    if (!timestamps.includes(min) || !timestamps.length) {\n      timestamps.splice(0, 0, min);\n    }\n    if (!timestamps.includes(max) || timestamps.length === 1) {\n      timestamps.push(max);\n    }\n    return timestamps.sort((a, b) => a - b);\n  }\n\n  /**\n\t * Returns all timestamps\n\t * @return {number[]}\n\t * @private\n\t */\n  _getTimestampsForTable() {\n    let timestamps = this._cache.all || [];\n\n    if (timestamps.length) {\n      return timestamps;\n    }\n\n    const data = this.getDataTimestamps();\n    const label = this.getLabelTimestamps();\n    if (data.length && label.length) {\n      // If combining labels and data (data might not contain all labels),\n      // we need to recheck uniqueness and sort\n      timestamps = this.normalize(data.concat(label));\n    } else {\n      timestamps = data.length ? data : label;\n    }\n    timestamps = this._cache.all = timestamps;\n\n    return timestamps;\n  }\n\n  /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n  getDecimalForValue(value) {\n    return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n  }\n\n  /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n  getValueForPixel(pixel) {\n    const offsets = this._offsets;\n    const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n    return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n  }\n}\n\nexport default TimeSeriesScale;\n", "export * from './controllers/index.js';\nexport * from './core/index.js';\nexport * from './elements/index.js';\nexport * from './platform/index.js';\nexport * from './plugins/index.js';\nexport * from './scales/index.js';\n\nimport * as controllers from './controllers/index.js';\nimport * as elements from './elements/index.js';\nimport * as plugins from './plugins/index.js';\nimport * as scales from './scales/index.js';\n\nexport {\n  controllers,\n  elements,\n  plugins,\n  scales,\n};\n\nexport const registerables = [\n  controllers,\n  elements,\n  plugins,\n  scales,\n];\n", "/*!\n* chartjs-plugin-annotation v3.1.0\n* https://www.chartjs.org/chartjs-plugin-annotation/index\n * (c) 2024 chartjs-plugin-annotation Contributors\n * Released under the MIT License\n */\nimport { Element, DoughnutController, defaults, Animations, Chart } from 'chart.js';\nimport { distanceBetweenPoints, toRadians, isObject, valueOrDefault, defined, isFunction, callback, isArray, toFont, addRoundedRectPath, toTRBLCorners, QUARTER_PI, PI, HALF_PI, TWO_THIRDS_PI, TAU, isNumber, RAD_PER_DEG, toPadding, isFinite, getAngleFromPoint, toDegrees, clipArea, unclipArea } from 'chart.js/helpers';\n\n/**\n * @typedef { import(\"chart.js\").ChartEvent } ChartEvent\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n */\n\nconst interaction = {\n  modes: {\n    /**\n     * Point mode returns all elements that hit test based on the event position\n     * @param {AnnotationElement[]} visibleElements - annotation elements which are visible\n     * @param {ChartEvent} event - the event we are find things at\n     * @return {AnnotationElement[]} - elements that are found\n     */\n    point(visibleElements, event) {\n      return filterElements(visibleElements, event, {intersect: true});\n    },\n\n    /**\n     * Nearest mode returns the element closest to the event position\n     * @param {AnnotationElement[]} visibleElements - annotation elements which are visible\n     * @param {ChartEvent} event - the event we are find things at\n     * @param {Object} options - interaction options to use\n     * @return {AnnotationElement[]} - elements that are found (only 1 element)\n     */\n    nearest(visibleElements, event, options) {\n      return getNearestItem(visibleElements, event, options);\n    },\n    /**\n     * x mode returns the elements that hit-test at the current x coordinate\n     * @param {AnnotationElement[]} visibleElements - annotation elements which are visible\n     * @param {ChartEvent} event - the event we are find things at\n     * @param {Object} options - interaction options to use\n     * @return {AnnotationElement[]} - elements that are found\n     */\n    x(visibleElements, event, options) {\n      return filterElements(visibleElements, event, {intersect: options.intersect, axis: 'x'});\n    },\n\n    /**\n     * y mode returns the elements that hit-test at the current y coordinate\n     * @param {AnnotationElement[]} visibleElements - annotation elements which are visible\n     * @param {ChartEvent} event - the event we are find things at\n     * @param {Object} options - interaction options to use\n     * @return {AnnotationElement[]} - elements that are found\n     */\n    y(visibleElements, event, options) {\n      return filterElements(visibleElements, event, {intersect: options.intersect, axis: 'y'});\n    }\n  }\n};\n\n/**\n * Returns all elements that hit test based on the event position\n * @param {AnnotationElement[]} visibleElements - annotation elements which are visible\n * @param {ChartEvent} event - the event we are find things at\n * @param {Object} options - interaction options to use\n * @return {AnnotationElement[]} - elements that are found\n */\nfunction getElements(visibleElements, event, options) {\n  const mode = interaction.modes[options.mode] || interaction.modes.nearest;\n  return mode(visibleElements, event, options);\n}\n\nfunction inRangeByAxis(element, event, axis) {\n  if (axis !== 'x' && axis !== 'y') {\n    return element.inRange(event.x, event.y, 'x', true) || element.inRange(event.x, event.y, 'y', true);\n  }\n  return element.inRange(event.x, event.y, axis, true);\n}\n\nfunction getPointByAxis(event, center, axis) {\n  if (axis === 'x') {\n    return {x: event.x, y: center.y};\n  } else if (axis === 'y') {\n    return {x: center.x, y: event.y};\n  }\n  return center;\n}\n\nfunction filterElements(visibleElements, event, options) {\n  return visibleElements.filter((element) => options.intersect ? element.inRange(event.x, event.y) : inRangeByAxis(element, event, options.axis));\n}\n\nfunction getNearestItem(visibleElements, event, options) {\n  let minDistance = Number.POSITIVE_INFINITY;\n\n  return filterElements(visibleElements, event, options)\n    .reduce((nearestItems, element) => {\n      const center = element.getCenterPoint();\n      const evenPoint = getPointByAxis(event, center, options.axis);\n      const distance = distanceBetweenPoints(event, evenPoint);\n      if (distance < minDistance) {\n        nearestItems = [element];\n        minDistance = distance;\n      } else if (distance === minDistance) {\n        // Can have multiple items at the same distance in which case we sort by size\n        nearestItems.push(element);\n      }\n\n      return nearestItems;\n    }, [])\n    .sort((a, b) => a._index - b._index)\n    .slice(0, 1); // return only the top item;\n}\n\n/**\n * @typedef {import('chart.js').Point} Point\n */\n\n/**\n * Rotate a `point` relative to `center` point by `angle`\n * @param {Point} point - the point to rotate\n * @param {Point} center - center point for rotation\n * @param {number} angle - angle for rotation, in radians\n * @returns {Point} rotated point\n */\nfunction rotated(point, center, angle) {\n  const cos = Math.cos(angle);\n  const sin = Math.sin(angle);\n  const cx = center.x;\n  const cy = center.y;\n\n  return {\n    x: cx + cos * (point.x - cx) - sin * (point.y - cy),\n    y: cy + sin * (point.x - cx) + cos * (point.y - cy)\n  };\n}\n\nconst isOlderPart = (act, req) => req > act || (act.length > req.length && act.slice(0, req.length) === req);\n\n/**\n * @typedef { import('chart.js').Point } Point\n * @typedef { import('chart.js').InteractionAxis } InteractionAxis\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n */\n\nconst EPSILON = 0.001;\nconst clamp = (x, from, to) => Math.min(to, Math.max(from, x));\n\n/**\n * @param {{value: number, start: number, end: number}} limit\n * @param {number} hitSize\n * @returns {boolean}\n */\nconst inLimit = (limit, hitSize) => limit.value >= limit.start - hitSize && limit.value <= limit.end + hitSize;\n\n/**\n * @param {Object} obj\n * @param {number} from\n * @param {number} to\n * @returns {Object}\n */\nfunction clampAll(obj, from, to) {\n  for (const key of Object.keys(obj)) {\n    obj[key] = clamp(obj[key], from, to);\n  }\n  return obj;\n}\n\n/**\n * @param {Point} point\n * @param {Point} center\n * @param {number} radius\n * @param {number} hitSize\n * @returns {boolean}\n */\nfunction inPointRange(point, center, radius, hitSize) {\n  if (!point || !center || radius <= 0) {\n    return false;\n  }\n  return (Math.pow(point.x - center.x, 2) + Math.pow(point.y - center.y, 2)) <= Math.pow(radius + hitSize, 2);\n}\n\n/**\n * @param {Point} point\n * @param {{x: number, y: number, x2: number, y2: number}} rect\n * @param {InteractionAxis} axis\n * @param {{borderWidth: number, hitTolerance: number}} hitsize\n * @returns {boolean}\n */\nfunction inBoxRange(point, {x, y, x2, y2}, axis, {borderWidth, hitTolerance}) {\n  const hitSize = (borderWidth + hitTolerance) / 2;\n  const inRangeX = point.x >= x - hitSize - EPSILON && point.x <= x2 + hitSize + EPSILON;\n  const inRangeY = point.y >= y - hitSize - EPSILON && point.y <= y2 + hitSize + EPSILON;\n  if (axis === 'x') {\n    return inRangeX;\n  } else if (axis === 'y') {\n    return inRangeY;\n  }\n  return inRangeX && inRangeY;\n}\n\n/**\n * @param {Point} point\n * @param {rect: {x: number, y: number, x2: number, y2: number}, center: {x: number, y: number}} element\n * @param {InteractionAxis} axis\n * @param {{rotation: number, borderWidth: number, hitTolerance: number}}\n * @returns {boolean}\n */\nfunction inLabelRange(point, {rect, center}, axis, {rotation, borderWidth, hitTolerance}) {\n  const rotPoint = rotated(point, center, toRadians(-rotation));\n  return inBoxRange(rotPoint, rect, axis, {borderWidth, hitTolerance});\n}\n\n/**\n * @param {AnnotationElement} element\n * @param {boolean} useFinalPosition\n * @returns {Point}\n */\nfunction getElementCenterPoint(element, useFinalPosition) {\n  const {centerX, centerY} = element.getProps(['centerX', 'centerY'], useFinalPosition);\n  return {x: centerX, y: centerY};\n}\n\n/**\n * @param {string} pkg\n * @param {string} min\n * @param {string} ver\n * @param {boolean} [strict=true]\n * @returns {boolean}\n */\nfunction requireVersion(pkg, min, ver, strict = true) {\n  const parts = ver.split('.');\n  let i = 0;\n  for (const req of min.split('.')) {\n    const act = parts[i++];\n    if (parseInt(req, 10) < parseInt(act, 10)) {\n      break;\n    }\n    if (isOlderPart(act, req)) {\n      if (strict) {\n        throw new Error(`${pkg} v${ver} is not supported. v${min} or newer is required.`);\n      } else {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nconst isPercentString = (s) => typeof s === 'string' && s.endsWith('%');\nconst toPercent = (s) => parseFloat(s) / 100;\nconst toPositivePercent = (s) => clamp(toPercent(s), 0, 1);\n\nconst boxAppering = (x, y) => ({x, y, x2: x, y2: y, width: 0, height: 0});\nconst defaultInitAnimation = {\n  box: (properties) => boxAppering(properties.centerX, properties.centerY),\n  doughnutLabel: (properties) => boxAppering(properties.centerX, properties.centerY),\n  ellipse: (properties) => ({centerX: properties.centerX, centerY: properties.centerX, radius: 0, width: 0, height: 0}),\n  label: (properties) => boxAppering(properties.centerX, properties.centerY),\n  line: (properties) => boxAppering(properties.x, properties.y),\n  point: (properties) => ({centerX: properties.centerX, centerY: properties.centerY, radius: 0, width: 0, height: 0}),\n  polygon: (properties) => boxAppering(properties.centerX, properties.centerY)\n};\n\n/**\n * @typedef { import('chart.js').FontSpec } FontSpec\n * @typedef { import('chart.js').Point } Point\n * @typedef { import('chart.js').Padding } Padding\n * @typedef { import('../../types/element').AnnotationBoxModel } AnnotationBoxModel\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n * @typedef { import('../../types/options').AnnotationPointCoordinates } AnnotationPointCoordinates\n * @typedef { import('../../types/label').CoreLabelOptions } CoreLabelOptions\n * @typedef { import('../../types/label').LabelPositionObject } LabelPositionObject\n */\n\n/**\n * @param {number} size\n * @param {number|string} position\n * @returns {number}\n */\nfunction getRelativePosition(size, position) {\n  if (position === 'start') {\n    return 0;\n  }\n  if (position === 'end') {\n    return size;\n  }\n  if (isPercentString(position)) {\n    return toPositivePercent(position) * size;\n  }\n  return size / 2;\n}\n\n/**\n * @param {number} size\n * @param {number|string} value\n * @param {boolean} [positivePercent=true]\n * @returns {number}\n */\nfunction getSize(size, value, positivePercent = true) {\n  if (typeof value === 'number') {\n    return value;\n  } else if (isPercentString(value)) {\n    return (positivePercent ? toPositivePercent(value) : toPercent(value)) * size;\n  }\n  return size;\n}\n\n/**\n * @param {{x: number, width: number}} size\n * @param {CoreLabelOptions} options\n * @returns {number}\n */\nfunction calculateTextAlignment(size, options) {\n  const {x, width} = size;\n  const textAlign = options.textAlign;\n  if (textAlign === 'center') {\n    return x + width / 2;\n  } else if (textAlign === 'end' || textAlign === 'right') {\n    return x + width;\n  }\n  return x;\n}\n\n/**\n * @param {Point} point\n * @param {{height: number, width: number}} labelSize\n * @param {{borderWidth: number, position: {LabelPositionObject|string}, xAdjust: number, yAdjust: number}} options\n * @param {Padding|undefined} padding\n * @returns {{x: number, y: number, x2: number, y2: number, height: number, width: number, centerX: number, centerY: number}}\n */\nfunction measureLabelRectangle(point, labelSize, {borderWidth, position, xAdjust, yAdjust}, padding) {\n  const hasPadding = isObject(padding);\n  const width = labelSize.width + (hasPadding ? padding.width : 0) + borderWidth;\n  const height = labelSize.height + (hasPadding ? padding.height : 0) + borderWidth;\n  const positionObj = toPosition(position);\n  const x = calculateLabelPosition$1(point.x, width, xAdjust, positionObj.x);\n  const y = calculateLabelPosition$1(point.y, height, yAdjust, positionObj.y);\n\n  return {\n    x,\n    y,\n    x2: x + width,\n    y2: y + height,\n    width,\n    height,\n    centerX: x + width / 2,\n    centerY: y + height / 2\n  };\n}\n\n/**\n * @param {LabelPositionObject|string} value\n * @param {string|number} defaultValue\n * @returns {LabelPositionObject}\n */\nfunction toPosition(value, defaultValue = 'center') {\n  if (isObject(value)) {\n    return {\n      x: valueOrDefault(value.x, defaultValue),\n      y: valueOrDefault(value.y, defaultValue),\n    };\n  }\n  value = valueOrDefault(value, defaultValue);\n  return {\n    x: value,\n    y: value\n  };\n}\n\n/**\n * @param {CoreLabelOptions} options\n * @param {number} fitRatio\n * @returns {boolean}\n */\nconst shouldFit = (options, fitRatio) => options && options.autoFit && fitRatio < 1;\n\n/**\n * @param {CoreLabelOptions} options\n * @param {number} fitRatio\n * @returns {FontSpec[]}\n */\nfunction toFonts(options, fitRatio) {\n  const optFont = options.font;\n  const fonts = isArray(optFont) ? optFont : [optFont];\n  if (shouldFit(options, fitRatio)) {\n    return fonts.map(function(f) {\n      const font = toFont(f);\n      font.size = Math.floor(f.size * fitRatio);\n      font.lineHeight = f.lineHeight;\n      return toFont(font);\n    });\n  }\n  return fonts.map(f => toFont(f));\n}\n\n/**\n * @param {AnnotationPointCoordinates} options\n * @returns {boolean}\n */\nfunction isBoundToPoint(options) {\n  return options && (defined(options.xValue) || defined(options.yValue));\n}\n\nfunction calculateLabelPosition$1(start, size, adjust = 0, position) {\n  return start - getRelativePosition(size, position) + adjust;\n}\n\n/**\n * @param {Chart} chart\n * @param {AnnotationBoxModel} properties\n * @param {CoreAnnotationOptions} options\n * @returns {AnnotationElement}\n */\nfunction initAnimationProperties(chart, properties, options) {\n  const initAnim = options.init;\n  if (!initAnim) {\n    return;\n  } else if (initAnim === true) {\n    return applyDefault(properties, options);\n  }\n  return execCallback(chart, properties, options);\n}\n\n/**\n * @param {Object} options\n * @param {Array} hooks\n * @param {Object} hooksContainer\n * @returns {boolean}\n */\nfunction loadHooks(options, hooks, hooksContainer) {\n  let activated = false;\n  hooks.forEach(hook => {\n    if (isFunction(options[hook])) {\n      activated = true;\n      hooksContainer[hook] = options[hook];\n    } else if (defined(hooksContainer[hook])) {\n      delete hooksContainer[hook];\n    }\n  });\n  return activated;\n}\n\nfunction applyDefault(properties, options) {\n  const type = options.type || 'line';\n  return defaultInitAnimation[type](properties);\n}\n\nfunction execCallback(chart, properties, options) {\n  const result = callback(options.init, [{chart, properties, options}]);\n  if (result === true) {\n    return applyDefault(properties, options);\n  } else if (isObject(result)) {\n    return result;\n  }\n}\n\nconst widthCache = new Map();\nconst notRadius = (radius) => isNaN(radius) || radius <= 0;\nconst fontsKey = (fonts) => fonts.reduce(function(prev, item) {\n  prev += item.string;\n  return prev;\n}, '');\n\n/**\n * @typedef { import('chart.js').Point } Point\n * @typedef { import('../../types/label').CoreLabelOptions } CoreLabelOptions\n * @typedef { import('../../types/options').PointAnnotationOptions } PointAnnotationOptions\n */\n\n/**\n * Determine if content is an image or a canvas.\n * @param {*} content\n * @returns boolean|undefined\n * @todo move this function to chart.js helpers\n */\nfunction isImageOrCanvas(content) {\n  if (content && typeof content === 'object') {\n    const type = content.toString();\n    return (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]');\n  }\n}\n\n/**\n * Set the translation on the canvas if the rotation must be applied.\n * @param {CanvasRenderingContext2D} ctx - chart canvas context\n * @param {Point} point - the point of translation\n * @param {number} rotation - rotation (in degrees) to apply\n */\nfunction translate(ctx, {x, y}, rotation) {\n  if (rotation) {\n    ctx.translate(x, y);\n    ctx.rotate(toRadians(rotation));\n    ctx.translate(-x, -y);\n  }\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {Object} options\n * @returns {boolean|undefined}\n */\nfunction setBorderStyle(ctx, options) {\n  if (options && options.borderWidth) {\n    ctx.lineCap = options.borderCapStyle || 'butt';\n    ctx.setLineDash(options.borderDash);\n    ctx.lineDashOffset = options.borderDashOffset;\n    ctx.lineJoin = options.borderJoinStyle || 'miter';\n    ctx.lineWidth = options.borderWidth;\n    ctx.strokeStyle = options.borderColor;\n    return true;\n  }\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {Object} options\n */\nfunction setShadowStyle(ctx, options) {\n  ctx.shadowColor = options.backgroundShadowColor;\n  ctx.shadowBlur = options.shadowBlur;\n  ctx.shadowOffsetX = options.shadowOffsetX;\n  ctx.shadowOffsetY = options.shadowOffsetY;\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {CoreLabelOptions} options\n * @returns {{width: number, height: number}}\n */\nfunction measureLabelSize(ctx, options) {\n  const content = options.content;\n  if (isImageOrCanvas(content)) {\n    const size = {\n      width: getSize(content.width, options.width),\n      height: getSize(content.height, options.height)\n    };\n    return size;\n  }\n  const fonts = toFonts(options);\n  const strokeWidth = options.textStrokeWidth;\n  const lines = isArray(content) ? content : [content];\n  const mapKey = lines.join() + fontsKey(fonts) + strokeWidth + (ctx._measureText ? '-spriting' : '');\n  if (!widthCache.has(mapKey)) {\n    widthCache.set(mapKey, calculateLabelSize(ctx, lines, fonts, strokeWidth));\n  }\n  return widthCache.get(mapKey);\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {{x: number, y: number, width: number, height: number}} rect\n * @param {Object} options\n */\nfunction drawBox(ctx, rect, options) {\n  const {x, y, width, height} = rect;\n  ctx.save();\n  setShadowStyle(ctx, options);\n  const stroke = setBorderStyle(ctx, options);\n  ctx.fillStyle = options.backgroundColor;\n  ctx.beginPath();\n  addRoundedRectPath(ctx, {\n    x, y, w: width, h: height,\n    radius: clampAll(toTRBLCorners(options.borderRadius), 0, Math.min(width, height) / 2)\n  });\n  ctx.closePath();\n  ctx.fill();\n  if (stroke) {\n    ctx.shadowColor = options.borderShadowColor;\n    ctx.stroke();\n  }\n  ctx.restore();\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {{x: number, y: number, width: number, height: number}} rect\n * @param {CoreLabelOptions} options\n * @param {number} fitRatio\n */\nfunction drawLabel(ctx, rect, options, fitRatio) {\n  const content = options.content;\n  if (isImageOrCanvas(content)) {\n    ctx.save();\n    ctx.globalAlpha = getOpacity(options.opacity, content.style.opacity);\n    ctx.drawImage(content, rect.x, rect.y, rect.width, rect.height);\n    ctx.restore();\n    return;\n  }\n  const labels = isArray(content) ? content : [content];\n  const fonts = toFonts(options, fitRatio);\n  const optColor = options.color;\n  const colors = isArray(optColor) ? optColor : [optColor];\n  const x = calculateTextAlignment(rect, options);\n  const y = rect.y + options.textStrokeWidth / 2;\n  ctx.save();\n  ctx.textBaseline = 'middle';\n  ctx.textAlign = options.textAlign;\n  if (setTextStrokeStyle(ctx, options)) {\n    applyLabelDecoration(ctx, {x, y}, labels, fonts);\n  }\n  applyLabelContent(ctx, {x, y}, labels, {fonts, colors});\n  ctx.restore();\n}\n\nfunction setTextStrokeStyle(ctx, options) {\n  if (options.textStrokeWidth > 0) {\n    // https://stackoverflow.com/questions/13627111/drawing-text-with-an-outer-stroke-with-html5s-canvas\n    ctx.lineJoin = 'round';\n    ctx.miterLimit = 2;\n    ctx.lineWidth = options.textStrokeWidth;\n    ctx.strokeStyle = options.textStrokeColor;\n    return true;\n  }\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {{radius: number, options: PointAnnotationOptions}} element\n * @param {number} x\n * @param {number} y\n */\nfunction drawPoint(ctx, element, x, y) {\n  const {radius, options} = element;\n  const style = options.pointStyle;\n  const rotation = options.rotation;\n  let rad = (rotation || 0) * RAD_PER_DEG;\n\n  if (isImageOrCanvas(style)) {\n    ctx.save();\n    ctx.translate(x, y);\n    ctx.rotate(rad);\n    ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n    ctx.restore();\n    return;\n  }\n  if (notRadius(radius)) {\n    return;\n  }\n  drawPointStyle(ctx, {x, y, radius, rotation, style, rad});\n}\n\nfunction drawPointStyle(ctx, {x, y, radius, rotation, style, rad}) {\n  let xOffset, yOffset, size, cornerRadius;\n  ctx.beginPath();\n\n  switch (style) {\n  // Default includes circle\n  default:\n    ctx.arc(x, y, radius, 0, TAU);\n    ctx.closePath();\n    break;\n  case 'triangle':\n    ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n    rad += TWO_THIRDS_PI;\n    ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n    rad += TWO_THIRDS_PI;\n    ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n    ctx.closePath();\n    break;\n  case 'rectRounded':\n    // NOTE: the rounded rect implementation changed to use `arc` instead of\n    // `quadraticCurveTo` since it generates better results when rect is\n    // almost a circle. 0.516 (instead of 0.5) produces results with visually\n    // closer proportion to the previous impl and it is inscribed in the\n    // circle with `radius`. For more details, see the following PRs:\n    // https://github.com/chartjs/Chart.js/issues/5597\n    // https://github.com/chartjs/Chart.js/issues/5858\n    cornerRadius = radius * 0.516;\n    size = radius - cornerRadius;\n    xOffset = Math.cos(rad + QUARTER_PI) * size;\n    yOffset = Math.sin(rad + QUARTER_PI) * size;\n    ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n    ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n    ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n    ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n    ctx.closePath();\n    break;\n  case 'rect':\n    if (!rotation) {\n      size = Math.SQRT1_2 * radius;\n      ctx.rect(x - size, y - size, 2 * size, 2 * size);\n      break;\n    }\n    rad += QUARTER_PI;\n    /* falls through */\n  case 'rectRot':\n    xOffset = Math.cos(rad) * radius;\n    yOffset = Math.sin(rad) * radius;\n    ctx.moveTo(x - xOffset, y - yOffset);\n    ctx.lineTo(x + yOffset, y - xOffset);\n    ctx.lineTo(x + xOffset, y + yOffset);\n    ctx.lineTo(x - yOffset, y + xOffset);\n    ctx.closePath();\n    break;\n  case 'crossRot':\n    rad += QUARTER_PI;\n    /* falls through */\n  case 'cross':\n    xOffset = Math.cos(rad) * radius;\n    yOffset = Math.sin(rad) * radius;\n    ctx.moveTo(x - xOffset, y - yOffset);\n    ctx.lineTo(x + xOffset, y + yOffset);\n    ctx.moveTo(x + yOffset, y - xOffset);\n    ctx.lineTo(x - yOffset, y + xOffset);\n    break;\n  case 'star':\n    xOffset = Math.cos(rad) * radius;\n    yOffset = Math.sin(rad) * radius;\n    ctx.moveTo(x - xOffset, y - yOffset);\n    ctx.lineTo(x + xOffset, y + yOffset);\n    ctx.moveTo(x + yOffset, y - xOffset);\n    ctx.lineTo(x - yOffset, y + xOffset);\n    rad += QUARTER_PI;\n    xOffset = Math.cos(rad) * radius;\n    yOffset = Math.sin(rad) * radius;\n    ctx.moveTo(x - xOffset, y - yOffset);\n    ctx.lineTo(x + xOffset, y + yOffset);\n    ctx.moveTo(x + yOffset, y - xOffset);\n    ctx.lineTo(x - yOffset, y + xOffset);\n    break;\n  case 'line':\n    xOffset = Math.cos(rad) * radius;\n    yOffset = Math.sin(rad) * radius;\n    ctx.moveTo(x - xOffset, y - yOffset);\n    ctx.lineTo(x + xOffset, y + yOffset);\n    break;\n  case 'dash':\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n    break;\n  }\n\n  ctx.fill();\n}\n\nfunction calculateLabelSize(ctx, lines, fonts, strokeWidth) {\n  ctx.save();\n  const count = lines.length;\n  let width = 0;\n  let height = strokeWidth;\n  for (let i = 0; i < count; i++) {\n    const font = fonts[Math.min(i, fonts.length - 1)];\n    ctx.font = font.string;\n    const text = lines[i];\n    width = Math.max(width, ctx.measureText(text).width + strokeWidth);\n    height += font.lineHeight;\n  }\n  ctx.restore();\n  return {width, height};\n}\n\nfunction applyLabelDecoration(ctx, {x, y}, labels, fonts) {\n  ctx.beginPath();\n  let lhs = 0;\n  labels.forEach(function(l, i) {\n    const f = fonts[Math.min(i, fonts.length - 1)];\n    const lh = f.lineHeight;\n    ctx.font = f.string;\n    ctx.strokeText(l, x, y + lh / 2 + lhs);\n    lhs += lh;\n  });\n  ctx.stroke();\n}\n\nfunction applyLabelContent(ctx, {x, y}, labels, {fonts, colors}) {\n  let lhs = 0;\n  labels.forEach(function(l, i) {\n    const c = colors[Math.min(i, colors.length - 1)];\n    const f = fonts[Math.min(i, fonts.length - 1)];\n    const lh = f.lineHeight;\n    ctx.beginPath();\n    ctx.font = f.string;\n    ctx.fillStyle = c;\n    ctx.fillText(l, x, y + lh / 2 + lhs);\n    lhs += lh;\n    ctx.fill();\n  });\n}\n\nfunction getOpacity(value, elementValue) {\n  const opacity = isNumber(value) ? value : elementValue;\n  return isNumber(opacity) ? clamp(opacity, 0, 1) : 1;\n}\n\nconst positions = ['left', 'bottom', 'top', 'right'];\n\n/**\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n */\n\n/**\n * Drawa the callout component for labels.\n * @param {CanvasRenderingContext2D} ctx - chart canvas context\n * @param {AnnotationElement} element - the label element\n */\nfunction drawCallout(ctx, element) {\n  const {pointX, pointY, options} = element;\n  const callout = options.callout;\n  const calloutPosition = callout && callout.display && resolveCalloutPosition(element, callout);\n  if (!calloutPosition || isPointInRange(element, callout, calloutPosition)) {\n    return;\n  }\n\n  ctx.save();\n  ctx.beginPath();\n  const stroke = setBorderStyle(ctx, callout);\n  if (!stroke) {\n    return ctx.restore();\n  }\n  const {separatorStart, separatorEnd} = getCalloutSeparatorCoord(element, calloutPosition);\n  const {sideStart, sideEnd} = getCalloutSideCoord(element, calloutPosition, separatorStart);\n  if (callout.margin > 0 || options.borderWidth === 0) {\n    ctx.moveTo(separatorStart.x, separatorStart.y);\n    ctx.lineTo(separatorEnd.x, separatorEnd.y);\n  }\n  ctx.moveTo(sideStart.x, sideStart.y);\n  ctx.lineTo(sideEnd.x, sideEnd.y);\n  const rotatedPoint = rotated({x: pointX, y: pointY}, element.getCenterPoint(), toRadians(-element.rotation));\n  ctx.lineTo(rotatedPoint.x, rotatedPoint.y);\n  ctx.stroke();\n  ctx.restore();\n}\n\nfunction getCalloutSeparatorCoord(element, position) {\n  const {x, y, x2, y2} = element;\n  const adjust = getCalloutSeparatorAdjust(element, position);\n  let separatorStart, separatorEnd;\n  if (position === 'left' || position === 'right') {\n    separatorStart = {x: x + adjust, y};\n    separatorEnd = {x: separatorStart.x, y: y2};\n  } else {\n    //  position 'top' or 'bottom'\n    separatorStart = {x, y: y + adjust};\n    separatorEnd = {x: x2, y: separatorStart.y};\n  }\n  return {separatorStart, separatorEnd};\n}\n\nfunction getCalloutSeparatorAdjust(element, position) {\n  const {width, height, options} = element;\n  const adjust = options.callout.margin + options.borderWidth / 2;\n  if (position === 'right') {\n    return width + adjust;\n  } else if (position === 'bottom') {\n    return height + adjust;\n  }\n  return -adjust;\n}\n\nfunction getCalloutSideCoord(element, position, separatorStart) {\n  const {y, width, height, options} = element;\n  const start = options.callout.start;\n  const side = getCalloutSideAdjust(position, options.callout);\n  let sideStart, sideEnd;\n  if (position === 'left' || position === 'right') {\n    sideStart = {x: separatorStart.x, y: y + getSize(height, start)};\n    sideEnd = {x: sideStart.x + side, y: sideStart.y};\n  } else {\n    //  position 'top' or 'bottom'\n    sideStart = {x: separatorStart.x + getSize(width, start), y: separatorStart.y};\n    sideEnd = {x: sideStart.x, y: sideStart.y + side};\n  }\n  return {sideStart, sideEnd};\n}\n\nfunction getCalloutSideAdjust(position, options) {\n  const side = options.side;\n  if (position === 'left' || position === 'top') {\n    return -side;\n  }\n  return side;\n}\n\nfunction resolveCalloutPosition(element, options) {\n  const position = options.position;\n  if (positions.includes(position)) {\n    return position;\n  }\n  return resolveCalloutAutoPosition(element, options);\n}\n\nfunction resolveCalloutAutoPosition(element, options) {\n  const {x, y, x2, y2, width, height, pointX, pointY, centerX, centerY, rotation} = element;\n  const center = {x: centerX, y: centerY};\n  const start = options.start;\n  const xAdjust = getSize(width, start);\n  const yAdjust = getSize(height, start);\n  const xPoints = [x, x + xAdjust, x + xAdjust, x2];\n  const yPoints = [y + yAdjust, y2, y, y2];\n  const result = [];\n  for (let index = 0; index < 4; index++) {\n    const rotatedPoint = rotated({x: xPoints[index], y: yPoints[index]}, center, toRadians(rotation));\n    result.push({\n      position: positions[index],\n      distance: distanceBetweenPoints(rotatedPoint, {x: pointX, y: pointY})\n    });\n  }\n  return result.sort((a, b) => a.distance - b.distance)[0].position;\n}\n\nfunction isPointInRange(element, callout, position) {\n  const {pointX, pointY} = element;\n  const margin = callout.margin;\n  let x = pointX;\n  let y = pointY;\n  if (position === 'left') {\n    x += margin;\n  } else if (position === 'right') {\n    x -= margin;\n  } else if (position === 'top') {\n    y += margin;\n  } else if (position === 'bottom') {\n    y -= margin;\n  }\n  return element.inRange(x, y);\n}\n\nconst limitedLineScale = {\n  xScaleID: {min: 'xMin', max: 'xMax', start: 'left', end: 'right', startProp: 'x', endProp: 'x2'},\n  yScaleID: {min: 'yMin', max: 'yMax', start: 'bottom', end: 'top', startProp: 'y', endProp: 'y2'}\n};\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import(\"chart.js\").Scale } Scale\n * @typedef { import(\"chart.js\").Point } Point\n * @typedef { import('../../types/element').AnnotationBoxModel } AnnotationBoxModel\n * @typedef { import('../../types/options').CoreAnnotationOptions } CoreAnnotationOptions\n * @typedef { import('../../types/options').LineAnnotationOptions } LineAnnotationOptions\n * @typedef { import('../../types/options').PointAnnotationOptions } PointAnnotationOptions\n * @typedef { import('../../types/options').PolygonAnnotationOptions } PolygonAnnotationOptions\n */\n\n/**\n * @param {Scale} scale\n * @param {number|string} value\n * @param {number} fallback\n * @returns {number}\n */\nfunction scaleValue(scale, value, fallback) {\n  value = typeof value === 'number' ? value : scale.parse(value);\n  return isFinite(value) ? scale.getPixelForValue(value) : fallback;\n}\n\n/**\n * Search the scale defined in chartjs by the axis related to the annotation options key.\n * @param {{ [key: string]: Scale }} scales\n * @param {CoreAnnotationOptions} options\n * @param {string} key\n * @returns {string}\n */\nfunction retrieveScaleID(scales, options, key) {\n  const scaleID = options[key];\n  if (scaleID || key === 'scaleID') {\n    return scaleID;\n  }\n  const axis = key.charAt(0);\n  const axes = Object.values(scales).filter((scale) => scale.axis && scale.axis === axis);\n  if (axes.length) {\n    return axes[0].id;\n  }\n  return axis;\n}\n\n/**\n * @param {Scale} scale\n * @param {{min: number, max: number, start: number, end: number}} options\n * @returns {{start: number, end: number}|undefined}\n */\nfunction getDimensionByScale(scale, options) {\n  if (scale) {\n    const reverse = scale.options.reverse;\n    const start = scaleValue(scale, options.min, reverse ? options.end : options.start);\n    const end = scaleValue(scale, options.max, reverse ? options.start : options.end);\n    return {\n      start,\n      end\n    };\n  }\n}\n\n/**\n * @param {Chart} chart\n * @param {CoreAnnotationOptions} options\n * @returns {Point}\n */\nfunction getChartPoint(chart, options) {\n  const {chartArea, scales} = chart;\n  const xScale = scales[retrieveScaleID(scales, options, 'xScaleID')];\n  const yScale = scales[retrieveScaleID(scales, options, 'yScaleID')];\n  let x = chartArea.width / 2;\n  let y = chartArea.height / 2;\n\n  if (xScale) {\n    x = scaleValue(xScale, options.xValue, xScale.left + xScale.width / 2);\n  }\n\n  if (yScale) {\n    y = scaleValue(yScale, options.yValue, yScale.top + yScale.height / 2);\n  }\n  return {x, y};\n}\n\n/**\n * @param {Chart} chart\n * @param {CoreAnnotationOptions} options\n * @returns {AnnotationBoxModel}\n */\nfunction resolveBoxProperties(chart, options) {\n  const scales = chart.scales;\n  const xScale = scales[retrieveScaleID(scales, options, 'xScaleID')];\n  const yScale = scales[retrieveScaleID(scales, options, 'yScaleID')];\n\n  if (!xScale && !yScale) {\n    return {};\n  }\n\n  let {left: x, right: x2} = xScale || chart.chartArea;\n  let {top: y, bottom: y2} = yScale || chart.chartArea;\n  const xDim = getChartDimensionByScale(xScale, {min: options.xMin, max: options.xMax, start: x, end: x2});\n  x = xDim.start;\n  x2 = xDim.end;\n  const yDim = getChartDimensionByScale(yScale, {min: options.yMin, max: options.yMax, start: y2, end: y});\n  y = yDim.start;\n  y2 = yDim.end;\n\n  return {\n    x,\n    y,\n    x2,\n    y2,\n    width: x2 - x,\n    height: y2 - y,\n    centerX: x + (x2 - x) / 2,\n    centerY: y + (y2 - y) / 2\n  };\n}\n\n/**\n * @param {Chart} chart\n * @param {PointAnnotationOptions|PolygonAnnotationOptions} options\n * @returns {AnnotationBoxModel}\n */\nfunction resolvePointProperties(chart, options) {\n  if (!isBoundToPoint(options)) {\n    const box = resolveBoxProperties(chart, options);\n    let radius = options.radius;\n    if (!radius || isNaN(radius)) {\n      radius = Math.min(box.width, box.height) / 2;\n      options.radius = radius;\n    }\n    const size = radius * 2;\n    const adjustCenterX = box.centerX + options.xAdjust;\n    const adjustCenterY = box.centerY + options.yAdjust;\n    return {\n      x: adjustCenterX - radius,\n      y: adjustCenterY - radius,\n      x2: adjustCenterX + radius,\n      y2: adjustCenterY + radius,\n      centerX: adjustCenterX,\n      centerY: adjustCenterY,\n      width: size,\n      height: size,\n      radius\n    };\n  }\n  return getChartCircle(chart, options);\n}\n/**\n * @param {Chart} chart\n * @param {LineAnnotationOptions} options\n * @returns {AnnotationBoxModel}\n */\nfunction resolveLineProperties(chart, options) {\n  const {scales, chartArea} = chart;\n  const scale = scales[options.scaleID];\n  const area = {x: chartArea.left, y: chartArea.top, x2: chartArea.right, y2: chartArea.bottom};\n\n  if (scale) {\n    resolveFullLineProperties(scale, area, options);\n  } else {\n    resolveLimitedLineProperties(scales, area, options);\n  }\n  return area;\n}\n\n/**\n * @param {Chart} chart\n * @param {CoreAnnotationOptions} options\n * @param {boolean} [centerBased=false]\n * @returns {AnnotationBoxModel}\n */\nfunction resolveBoxAndLabelProperties(chart, options) {\n  const properties = resolveBoxProperties(chart, options);\n  properties.initProperties = initAnimationProperties(chart, properties, options);\n  properties.elements = [{\n    type: 'label',\n    optionScope: 'label',\n    properties: resolveLabelElementProperties$1(chart, properties, options),\n    initProperties: properties.initProperties\n  }];\n  return properties;\n}\n\nfunction getChartCircle(chart, options) {\n  const point = getChartPoint(chart, options);\n  const size = options.radius * 2;\n  return {\n    x: point.x - options.radius + options.xAdjust,\n    y: point.y - options.radius + options.yAdjust,\n    x2: point.x + options.radius + options.xAdjust,\n    y2: point.y + options.radius + options.yAdjust,\n    centerX: point.x + options.xAdjust,\n    centerY: point.y + options.yAdjust,\n    radius: options.radius,\n    width: size,\n    height: size\n  };\n}\n\nfunction getChartDimensionByScale(scale, options) {\n  const result = getDimensionByScale(scale, options) || options;\n  return {\n    start: Math.min(result.start, result.end),\n    end: Math.max(result.start, result.end)\n  };\n}\n\nfunction resolveFullLineProperties(scale, area, options) {\n  const min = scaleValue(scale, options.value, NaN);\n  const max = scaleValue(scale, options.endValue, min);\n  if (scale.isHorizontal()) {\n    area.x = min;\n    area.x2 = max;\n  } else {\n    area.y = min;\n    area.y2 = max;\n  }\n}\n\nfunction resolveLimitedLineProperties(scales, area, options) {\n  for (const scaleId of Object.keys(limitedLineScale)) {\n    const scale = scales[retrieveScaleID(scales, options, scaleId)];\n    if (scale) {\n      const {min, max, start, end, startProp, endProp} = limitedLineScale[scaleId];\n      const dim = getDimensionByScale(scale, {min: options[min], max: options[max], start: scale[start], end: scale[end]});\n      area[startProp] = dim.start;\n      area[endProp] = dim.end;\n    }\n  }\n}\n\nfunction calculateX({properties, options}, labelSize, position, padding) {\n  const {x: start, x2: end, width: size} = properties;\n  return calculatePosition({start, end, size, borderWidth: options.borderWidth}, {\n    position: position.x,\n    padding: {start: padding.left, end: padding.right},\n    adjust: options.label.xAdjust,\n    size: labelSize.width\n  });\n}\n\nfunction calculateY({properties, options}, labelSize, position, padding) {\n  const {y: start, y2: end, height: size} = properties;\n  return calculatePosition({start, end, size, borderWidth: options.borderWidth}, {\n    position: position.y,\n    padding: {start: padding.top, end: padding.bottom},\n    adjust: options.label.yAdjust,\n    size: labelSize.height\n  });\n}\n\nfunction calculatePosition(boxOpts, labelOpts) {\n  const {start, end, borderWidth} = boxOpts;\n  const {position, padding: {start: padStart, end: padEnd}, adjust} = labelOpts;\n  const availableSize = end - borderWidth - start - padStart - padEnd - labelOpts.size;\n  return start + borderWidth / 2 + adjust + getRelativePosition(availableSize, position);\n}\n\nfunction resolveLabelElementProperties$1(chart, properties, options) {\n  const label = options.label;\n  label.backgroundColor = 'transparent';\n  label.callout.display = false;\n  const position = toPosition(label.position);\n  const padding = toPadding(label.padding);\n  const labelSize = measureLabelSize(chart.ctx, label);\n  const x = calculateX({properties, options}, labelSize, position, padding);\n  const y = calculateY({properties, options}, labelSize, position, padding);\n  const width = labelSize.width + padding.width;\n  const height = labelSize.height + padding.height;\n  return {\n    x,\n    y,\n    x2: x + width,\n    y2: y + height,\n    width,\n    height,\n    centerX: x + width / 2,\n    centerY: y + height / 2,\n    rotation: label.rotation\n  };\n\n}\n\nconst moveHooks = ['enter', 'leave'];\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import('../../types/options').AnnotationPluginOptions } AnnotationPluginOptions\n */\n\nconst eventHooks = moveHooks.concat('click');\n\n/**\n * @param {Chart} chart\n * @param {Object} state\n * @param {AnnotationPluginOptions} options\n */\nfunction updateListeners(chart, state, options) {\n  state.listened = loadHooks(options, eventHooks, state.listeners);\n  state.moveListened = false;\n\n  moveHooks.forEach(hook => {\n    if (isFunction(options[hook])) {\n      state.moveListened = true;\n    }\n  });\n\n  if (!state.listened || !state.moveListened) {\n    state.annotations.forEach(scope => {\n      if (!state.listened && isFunction(scope.click)) {\n        state.listened = true;\n      }\n      if (!state.moveListened) {\n        moveHooks.forEach(hook => {\n          if (isFunction(scope[hook])) {\n            state.listened = true;\n            state.moveListened = true;\n          }\n        });\n      }\n    });\n  }\n}\n\n/**\n * @param {Object} state\n * @param {ChartEvent} event\n * @param {AnnotationPluginOptions} options\n * @return {boolean|undefined}\n */\nfunction handleEvent(state, event, options) {\n  if (state.listened) {\n    switch (event.type) {\n    case 'mousemove':\n    case 'mouseout':\n      return handleMoveEvents(state, event, options);\n    case 'click':\n      return handleClickEvents(state, event, options);\n    }\n  }\n}\n\nfunction handleMoveEvents(state, event, options) {\n  if (!state.moveListened) {\n    return;\n  }\n\n  let elements;\n\n  if (event.type === 'mousemove') {\n    elements = getElements(state.visibleElements, event, options.interaction);\n  } else {\n    elements = [];\n  }\n\n  const previous = state.hovered;\n  state.hovered = elements;\n\n  const context = {state, event};\n  let changed = dispatchMoveEvents(context, 'leave', previous, elements);\n  return dispatchMoveEvents(context, 'enter', elements, previous) || changed;\n}\n\nfunction dispatchMoveEvents({state, event}, hook, elements, checkElements) {\n  let changed;\n  for (const element of elements) {\n    if (checkElements.indexOf(element) < 0) {\n      changed = dispatchEvent(element.options[hook] || state.listeners[hook], element, event) || changed;\n    }\n  }\n  return changed;\n}\n\nfunction handleClickEvents(state, event, options) {\n  const listeners = state.listeners;\n  const elements = getElements(state.visibleElements, event, options.interaction);\n  let changed;\n  for (const element of elements) {\n    changed = dispatchEvent(element.options.click || listeners.click, element, event) || changed;\n  }\n  return changed;\n}\n\nfunction dispatchEvent(handler, element, event) {\n  return callback(handler, [element.$context, event]) === true;\n}\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import('../../types/options').AnnotationPluginOptions } AnnotationPluginOptions\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n */\n\nconst elementHooks = ['afterDraw', 'beforeDraw'];\n\n/**\n * @param {Chart} chart\n * @param {Object} state\n * @param {AnnotationPluginOptions} options\n */\nfunction updateHooks(chart, state, options) {\n  const visibleElements = state.visibleElements;\n  state.hooked = loadHooks(options, elementHooks, state.hooks);\n\n  if (!state.hooked) {\n    visibleElements.forEach(scope => {\n      if (!state.hooked) {\n        elementHooks.forEach(hook => {\n          if (isFunction(scope.options[hook])) {\n            state.hooked = true;\n          }\n        });\n      }\n    });\n  }\n}\n\n/**\n * @param {Object} state\n * @param {AnnotationElement} element\n * @param {string} hook\n */\nfunction invokeHook(state, element, hook) {\n  if (state.hooked) {\n    const callbackHook = element.options[hook] || state.hooks[hook];\n    return callback(callbackHook, [element.$context]);\n  }\n}\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import(\"chart.js\").Scale } Scale\n * @typedef { import('../../types/options').CoreAnnotationOptions } CoreAnnotationOptions\n */\n\n/**\n * @param {Chart} chart\n * @param {Scale} scale\n * @param {CoreAnnotationOptions[]} annotations\n */\nfunction adjustScaleRange(chart, scale, annotations) {\n  const range = getScaleLimits(chart.scales, scale, annotations);\n  let changed = changeScaleLimit(scale, range, 'min', 'suggestedMin');\n  changed = changeScaleLimit(scale, range, 'max', 'suggestedMax') || changed;\n  if (changed && isFunction(scale.handleTickRangeOptions)) {\n    scale.handleTickRangeOptions();\n  }\n}\n\n/**\n * @param {CoreAnnotationOptions[]} annotations\n * @param {{ [key: string]: Scale }} scales\n */\nfunction verifyScaleOptions(annotations, scales) {\n  for (const annotation of annotations) {\n    verifyScaleIDs(annotation, scales);\n  }\n}\n\nfunction changeScaleLimit(scale, range, limit, suggestedLimit) {\n  if (isFinite(range[limit]) && !scaleLimitDefined(scale.options, limit, suggestedLimit)) {\n    const changed = scale[limit] !== range[limit];\n    scale[limit] = range[limit];\n    return changed;\n  }\n}\n\nfunction scaleLimitDefined(scaleOptions, limit, suggestedLimit) {\n  return defined(scaleOptions[limit]) || defined(scaleOptions[suggestedLimit]);\n}\n\nfunction verifyScaleIDs(annotation, scales) {\n  for (const key of ['scaleID', 'xScaleID', 'yScaleID']) {\n    const scaleID = retrieveScaleID(scales, annotation, key);\n    if (scaleID && !scales[scaleID] && verifyProperties(annotation, key)) {\n      console.warn(`No scale found with id '${scaleID}' for annotation '${annotation.id}'`);\n    }\n  }\n}\n\nfunction verifyProperties(annotation, key) {\n  if (key === 'scaleID') {\n    return true;\n  }\n  const axis = key.charAt(0);\n  for (const prop of ['Min', 'Max', 'Value']) {\n    if (defined(annotation[axis + prop])) {\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction getScaleLimits(scales, scale, annotations) {\n  const axis = scale.axis;\n  const scaleID = scale.id;\n  const scaleIDOption = axis + 'ScaleID';\n  const limits = {\n    min: valueOrDefault(scale.min, Number.NEGATIVE_INFINITY),\n    max: valueOrDefault(scale.max, Number.POSITIVE_INFINITY)\n  };\n  for (const annotation of annotations) {\n    if (annotation.scaleID === scaleID) {\n      updateLimits(annotation, scale, ['value', 'endValue'], limits);\n    } else if (retrieveScaleID(scales, annotation, scaleIDOption) === scaleID) {\n      updateLimits(annotation, scale, [axis + 'Min', axis + 'Max', axis + 'Value'], limits);\n    }\n  }\n  return limits;\n}\n\nfunction updateLimits(annotation, scale, props, limits) {\n  for (const prop of props) {\n    const raw = annotation[prop];\n    if (defined(raw)) {\n      const value = scale.parse(raw);\n      limits.min = Math.min(limits.min, value);\n      limits.max = Math.max(limits.max, value);\n    }\n  }\n}\n\nclass BoxAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    const {x, y} = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-this.options.rotation));\n    return inBoxRange({x, y}, this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), axis, this.options);\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    ctx.save();\n    translate(ctx, this.getCenterPoint(), this.options.rotation);\n    drawBox(ctx, this, this.options);\n    ctx.restore();\n  }\n\n  get label() {\n    return this.elements && this.elements[0];\n  }\n\n  resolveElementProperties(chart, options) {\n    return resolveBoxAndLabelProperties(chart, options);\n  }\n}\n\nBoxAnnotation.id = 'boxAnnotation';\n\nBoxAnnotation.defaults = {\n  adjustScaleRange: true,\n  backgroundShadowColor: 'transparent',\n  borderCapStyle: 'butt',\n  borderDash: [],\n  borderDashOffset: 0,\n  borderJoinStyle: 'miter',\n  borderRadius: 0,\n  borderShadowColor: 'transparent',\n  borderWidth: 1,\n  display: true,\n  init: undefined,\n  hitTolerance: 0,\n  label: {\n    backgroundColor: 'transparent',\n    borderWidth: 0,\n    callout: {\n      display: false\n    },\n    color: 'black',\n    content: null,\n    display: false,\n    drawTime: undefined,\n    font: {\n      family: undefined,\n      lineHeight: undefined,\n      size: undefined,\n      style: undefined,\n      weight: 'bold'\n    },\n    height: undefined,\n    hitTolerance: undefined,\n    opacity: undefined,\n    padding: 6,\n    position: 'center',\n    rotation: undefined,\n    textAlign: 'start',\n    textStrokeColor: undefined,\n    textStrokeWidth: 0,\n    width: undefined,\n    xAdjust: 0,\n    yAdjust: 0,\n    z: undefined\n  },\n  rotation: 0,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  xMax: undefined,\n  xMin: undefined,\n  xScaleID: undefined,\n  yMax: undefined,\n  yMin: undefined,\n  yScaleID: undefined,\n  z: 0\n};\n\nBoxAnnotation.defaultRoutes = {\n  borderColor: 'color',\n  backgroundColor: 'color'\n};\n\nBoxAnnotation.descriptors = {\n  label: {\n    _fallback: true\n  }\n};\n\nclass DoughnutLabelAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    return inLabelRange(\n      {x: mouseX, y: mouseY},\n      {rect: this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), center: this.getCenterPoint(useFinalPosition)},\n      axis,\n      {rotation: this.rotation, borderWidth: 0, hitTolerance: this.options.hitTolerance}\n    );\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    const options = this.options;\n    if (!options.display || !options.content) {\n      return;\n    }\n    drawBackground(ctx, this);\n    ctx.save();\n    translate(ctx, this.getCenterPoint(), this.rotation);\n    drawLabel(ctx, this, options, this._fitRatio);\n    ctx.restore();\n  }\n\n  resolveElementProperties(chart, options) {\n    const meta = getDatasetMeta(chart, options);\n    if (!meta) {\n      return {};\n    }\n    const {controllerMeta, point, radius} = getControllerMeta(chart, options, meta);\n    let labelSize = measureLabelSize(chart.ctx, options);\n    const _fitRatio = getFitRatio(labelSize, radius);\n    if (shouldFit(options, _fitRatio)) {\n      labelSize = {width: labelSize.width * _fitRatio, height: labelSize.height * _fitRatio};\n    }\n    const {position, xAdjust, yAdjust} = options;\n    const boxSize = measureLabelRectangle(point, labelSize, {borderWidth: 0, position, xAdjust, yAdjust});\n    return {\n      initProperties: initAnimationProperties(chart, boxSize, options),\n      ...boxSize,\n      ...controllerMeta,\n      rotation: options.rotation,\n      _fitRatio\n    };\n  }\n}\n\nDoughnutLabelAnnotation.id = 'doughnutLabelAnnotation';\n\nDoughnutLabelAnnotation.defaults = {\n  autoFit: true,\n  autoHide: true,\n  backgroundColor: 'transparent',\n  backgroundShadowColor: 'transparent',\n  borderColor: 'transparent',\n  borderDash: [],\n  borderDashOffset: 0,\n  borderJoinStyle: 'miter',\n  borderShadowColor: 'transparent',\n  borderWidth: 0,\n  color: 'black',\n  content: null,\n  display: true,\n  font: {\n    family: undefined,\n    lineHeight: undefined,\n    size: undefined,\n    style: undefined,\n    weight: undefined\n  },\n  height: undefined,\n  hitTolerance: 0,\n  init: undefined,\n  opacity: undefined,\n  position: 'center',\n  rotation: 0,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  spacing: 1,\n  textAlign: 'center',\n  textStrokeColor: undefined,\n  textStrokeWidth: 0,\n  width: undefined,\n  xAdjust: 0,\n  yAdjust: 0\n};\n\nDoughnutLabelAnnotation.defaultRoutes = {\n};\n\nfunction getDatasetMeta(chart, options) {\n  return chart.getSortedVisibleDatasetMetas().reduce(function(result, value) {\n    const controller = value.controller;\n    if (controller instanceof DoughnutController &&\n      isControllerVisible(chart, options, value.data) &&\n      (!result || controller.innerRadius < result.controller.innerRadius) &&\n      controller.options.circumference >= 90) {\n      return value;\n    }\n    return result;\n  }, undefined);\n}\n\nfunction isControllerVisible(chart, options, elements) {\n  if (!options.autoHide) {\n    return true;\n  }\n  for (let i = 0; i < elements.length; i++) {\n    if (!elements[i].hidden && chart.getDataVisibility(i)) {\n      return true;\n    }\n  }\n}\n\nfunction getControllerMeta({chartArea}, options, meta) {\n  const {left, top, right, bottom} = chartArea;\n  const {innerRadius, offsetX, offsetY} = meta.controller;\n  const x = (left + right) / 2 + offsetX;\n  const y = (top + bottom) / 2 + offsetY;\n  const square = {\n    left: Math.max(x - innerRadius, left),\n    right: Math.min(x + innerRadius, right),\n    top: Math.max(y - innerRadius, top),\n    bottom: Math.min(y + innerRadius, bottom)\n  };\n  const point = {\n    x: (square.left + square.right) / 2,\n    y: (square.top + square.bottom) / 2\n  };\n  const space = options.spacing + options.borderWidth / 2;\n  const _radius = innerRadius - space;\n  const _counterclockwise = point.y > y;\n  const side = _counterclockwise ? top + space : bottom - space;\n  const angles = getAngles(side, x, y, _radius);\n  const controllerMeta = {\n    _centerX: x,\n    _centerY: y,\n    _radius,\n    _counterclockwise,\n    ...angles\n  };\n  return {\n    controllerMeta,\n    point,\n    radius: Math.min(innerRadius, Math.min(square.right - square.left, square.bottom - square.top) / 2)\n  };\n}\n\nfunction getFitRatio({width, height}, radius) {\n  const hypo = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n  return (radius * 2) / hypo;\n}\n\nfunction getAngles(y, centerX, centerY, radius) {\n  const yk2 = Math.pow(centerY - y, 2);\n  const r2 = Math.pow(radius, 2);\n  const b = centerX * -2;\n  const c = Math.pow(centerX, 2) + yk2 - r2;\n  const delta = Math.pow(b, 2) - (4 * c);\n  if (delta <= 0) {\n    return {\n      _startAngle: 0,\n      _endAngle: TAU\n    };\n  }\n  const start = (-b - Math.sqrt(delta)) / 2;\n  const end = (-b + Math.sqrt(delta)) / 2;\n  return {\n    _startAngle: getAngleFromPoint({x: centerX, y: centerY}, {x: start, y}).angle,\n    _endAngle: getAngleFromPoint({x: centerX, y: centerY}, {x: end, y}).angle\n  };\n}\n\nfunction drawBackground(ctx, element) {\n  const {_centerX, _centerY, _radius, _startAngle, _endAngle, _counterclockwise, options} = element;\n  ctx.save();\n  const stroke = setBorderStyle(ctx, options);\n  ctx.fillStyle = options.backgroundColor;\n  ctx.beginPath();\n  ctx.arc(_centerX, _centerY, _radius, _startAngle, _endAngle, _counterclockwise);\n  ctx.closePath();\n  ctx.fill();\n  if (stroke) {\n    ctx.stroke();\n  }\n  ctx.restore();\n}\n\nclass LabelAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    return inLabelRange(\n      {x: mouseX, y: mouseY},\n      {rect: this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), center: this.getCenterPoint(useFinalPosition)},\n      axis,\n      {rotation: this.rotation, borderWidth: this.options.borderWidth, hitTolerance: this.options.hitTolerance}\n    );\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    const options = this.options;\n    const visible = !defined(this._visible) || this._visible;\n    if (!options.display || !options.content || !visible) {\n      return;\n    }\n    ctx.save();\n    translate(ctx, this.getCenterPoint(), this.rotation);\n    drawCallout(ctx, this);\n    drawBox(ctx, this, options);\n    drawLabel(ctx, getLabelSize(this), options);\n    ctx.restore();\n  }\n\n  resolveElementProperties(chart, options) {\n    let point;\n    if (!isBoundToPoint(options)) {\n      const {centerX, centerY} = resolveBoxProperties(chart, options);\n      point = {x: centerX, y: centerY};\n    } else {\n      point = getChartPoint(chart, options);\n    }\n    const padding = toPadding(options.padding);\n    const labelSize = measureLabelSize(chart.ctx, options);\n    const boxSize = measureLabelRectangle(point, labelSize, options, padding);\n    return {\n      initProperties: initAnimationProperties(chart, boxSize, options),\n      pointX: point.x,\n      pointY: point.y,\n      ...boxSize,\n      rotation: options.rotation\n    };\n  }\n}\n\nLabelAnnotation.id = 'labelAnnotation';\n\nLabelAnnotation.defaults = {\n  adjustScaleRange: true,\n  backgroundColor: 'transparent',\n  backgroundShadowColor: 'transparent',\n  borderCapStyle: 'butt',\n  borderDash: [],\n  borderDashOffset: 0,\n  borderJoinStyle: 'miter',\n  borderRadius: 0,\n  borderShadowColor: 'transparent',\n  borderWidth: 0,\n  callout: {\n    borderCapStyle: 'butt',\n    borderColor: undefined,\n    borderDash: [],\n    borderDashOffset: 0,\n    borderJoinStyle: 'miter',\n    borderWidth: 1,\n    display: false,\n    margin: 5,\n    position: 'auto',\n    side: 5,\n    start: '50%',\n  },\n  color: 'black',\n  content: null,\n  display: true,\n  font: {\n    family: undefined,\n    lineHeight: undefined,\n    size: undefined,\n    style: undefined,\n    weight: undefined\n  },\n  height: undefined,\n  hitTolerance: 0,\n  init: undefined,\n  opacity: undefined,\n  padding: 6,\n  position: 'center',\n  rotation: 0,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  textAlign: 'center',\n  textStrokeColor: undefined,\n  textStrokeWidth: 0,\n  width: undefined,\n  xAdjust: 0,\n  xMax: undefined,\n  xMin: undefined,\n  xScaleID: undefined,\n  xValue: undefined,\n  yAdjust: 0,\n  yMax: undefined,\n  yMin: undefined,\n  yScaleID: undefined,\n  yValue: undefined,\n  z: 0\n};\n\nLabelAnnotation.defaultRoutes = {\n  borderColor: 'color'\n};\n\nfunction getLabelSize({x, y, width, height, options}) {\n  const hBorderWidth = options.borderWidth / 2;\n  const padding = toPadding(options.padding);\n  return {\n    x: x + padding.left + hBorderWidth,\n    y: y + padding.top + hBorderWidth,\n    width: width - padding.left - padding.right - options.borderWidth,\n    height: height - padding.top - padding.bottom - options.borderWidth\n  };\n}\n\nconst pointInLine = (p1, p2, t) => ({x: p1.x + t * (p2.x - p1.x), y: p1.y + t * (p2.y - p1.y)});\nconst interpolateX = (y, p1, p2) => pointInLine(p1, p2, Math.abs((y - p1.y) / (p2.y - p1.y))).x;\nconst interpolateY = (x, p1, p2) => pointInLine(p1, p2, Math.abs((x - p1.x) / (p2.x - p1.x))).y;\nconst sqr = v => v * v;\nconst rangeLimit = (mouseX, mouseY, {x, y, x2, y2}, axis) => axis === 'y' ? {start: Math.min(y, y2), end: Math.max(y, y2), value: mouseY} : {start: Math.min(x, x2), end: Math.max(x, x2), value: mouseX};\n// http://www.independent-software.com/determining-coordinates-on-a-html-canvas-bezier-curve.html\nconst coordInCurve = (start, cp, end, t) => (1 - t) * (1 - t) * start + 2 * (1 - t) * t * cp + t * t * end;\nconst pointInCurve = (start, cp, end, t) => ({x: coordInCurve(start.x, cp.x, end.x, t), y: coordInCurve(start.y, cp.y, end.y, t)});\nconst coordAngleInCurve = (start, cp, end, t) => 2 * (1 - t) * (cp - start) + 2 * t * (end - cp);\nconst angleInCurve = (start, cp, end, t) => -Math.atan2(coordAngleInCurve(start.x, cp.x, end.x, t), coordAngleInCurve(start.y, cp.y, end.y, t)) + 0.5 * PI;\n\nclass LineAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    const hitSize = (this.options.borderWidth + this.options.hitTolerance) / 2;\n    if (axis !== 'x' && axis !== 'y') {\n      const point = {mouseX, mouseY};\n      const {path, ctx} = this;\n      if (path) {\n        setBorderStyle(ctx, this.options);\n        ctx.lineWidth += this.options.hitTolerance;\n        const {chart} = this.$context;\n        const mx = mouseX * chart.currentDevicePixelRatio;\n        const my = mouseY * chart.currentDevicePixelRatio;\n        const result = ctx.isPointInStroke(path, mx, my) || isOnLabel(this, point, useFinalPosition);\n        ctx.restore();\n        return result;\n      }\n      const epsilon = sqr(hitSize);\n      return intersects(this, point, epsilon, useFinalPosition) || isOnLabel(this, point, useFinalPosition);\n    }\n    return inAxisRange(this, {mouseX, mouseY}, axis, {hitSize, useFinalPosition});\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    const {x, y, x2, y2, cp, options} = this;\n\n    ctx.save();\n    if (!setBorderStyle(ctx, options)) {\n      // no border width, then line is not drawn\n      return ctx.restore();\n    }\n    setShadowStyle(ctx, options);\n\n    const length = Math.sqrt(Math.pow(x2 - x, 2) + Math.pow(y2 - y, 2));\n    if (options.curve && cp) {\n      drawCurve(ctx, this, cp, length);\n      return ctx.restore();\n    }\n    const {startOpts, endOpts, startAdjust, endAdjust} = getArrowHeads(this);\n    const angle = Math.atan2(y2 - y, x2 - x);\n    ctx.translate(x, y);\n    ctx.rotate(angle);\n    ctx.beginPath();\n    ctx.moveTo(0 + startAdjust, 0);\n    ctx.lineTo(length - endAdjust, 0);\n    ctx.shadowColor = options.borderShadowColor;\n    ctx.stroke();\n    drawArrowHead(ctx, 0, startAdjust, startOpts);\n    drawArrowHead(ctx, length, -endAdjust, endOpts);\n    ctx.restore();\n  }\n\n  get label() {\n    return this.elements && this.elements[0];\n  }\n\n  resolveElementProperties(chart, options) {\n    const area = resolveLineProperties(chart, options);\n    const {x, y, x2, y2} = area;\n    const inside = isLineInArea(area, chart.chartArea);\n    const properties = inside\n      ? limitLineToArea({x, y}, {x: x2, y: y2}, chart.chartArea)\n      : {x, y, x2, y2, width: Math.abs(x2 - x), height: Math.abs(y2 - y)};\n    properties.centerX = (x2 + x) / 2;\n    properties.centerY = (y2 + y) / 2;\n    properties.initProperties = initAnimationProperties(chart, properties, options);\n    if (options.curve) {\n      const p1 = {x: properties.x, y: properties.y};\n      const p2 = {x: properties.x2, y: properties.y2};\n      properties.cp = getControlPoint(properties, options, distanceBetweenPoints(p1, p2));\n    }\n    const labelProperties = resolveLabelElementProperties(chart, properties, options.label);\n    // additonal prop to manage zoom/pan\n    labelProperties._visible = inside;\n\n    properties.elements = [{\n      type: 'label',\n      optionScope: 'label',\n      properties: labelProperties,\n      initProperties: properties.initProperties\n    }];\n    return properties;\n  }\n}\n\nLineAnnotation.id = 'lineAnnotation';\n\nconst arrowHeadsDefaults = {\n  backgroundColor: undefined,\n  backgroundShadowColor: undefined,\n  borderColor: undefined,\n  borderDash: undefined,\n  borderDashOffset: undefined,\n  borderShadowColor: undefined,\n  borderWidth: undefined,\n  display: undefined,\n  fill: undefined,\n  length: undefined,\n  shadowBlur: undefined,\n  shadowOffsetX: undefined,\n  shadowOffsetY: undefined,\n  width: undefined\n};\n\nLineAnnotation.defaults = {\n  adjustScaleRange: true,\n  arrowHeads: {\n    display: false,\n    end: Object.assign({}, arrowHeadsDefaults),\n    fill: false,\n    length: 12,\n    start: Object.assign({}, arrowHeadsDefaults),\n    width: 6\n  },\n  borderDash: [],\n  borderDashOffset: 0,\n  borderShadowColor: 'transparent',\n  borderWidth: 2,\n  curve: false,\n  controlPoint: {\n    y: '-50%'\n  },\n  display: true,\n  endValue: undefined,\n  init: undefined,\n  hitTolerance: 0,\n  label: {\n    backgroundColor: 'rgba(0,0,0,0.8)',\n    backgroundShadowColor: 'transparent',\n    borderCapStyle: 'butt',\n    borderColor: 'black',\n    borderDash: [],\n    borderDashOffset: 0,\n    borderJoinStyle: 'miter',\n    borderRadius: 6,\n    borderShadowColor: 'transparent',\n    borderWidth: 0,\n    callout: Object.assign({}, LabelAnnotation.defaults.callout),\n    color: '#fff',\n    content: null,\n    display: false,\n    drawTime: undefined,\n    font: {\n      family: undefined,\n      lineHeight: undefined,\n      size: undefined,\n      style: undefined,\n      weight: 'bold'\n    },\n    height: undefined,\n    hitTolerance: undefined,\n    opacity: undefined,\n    padding: 6,\n    position: 'center',\n    rotation: 0,\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    textAlign: 'center',\n    textStrokeColor: undefined,\n    textStrokeWidth: 0,\n    width: undefined,\n    xAdjust: 0,\n    yAdjust: 0,\n    z: undefined\n  },\n  scaleID: undefined,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  value: undefined,\n  xMax: undefined,\n  xMin: undefined,\n  xScaleID: undefined,\n  yMax: undefined,\n  yMin: undefined,\n  yScaleID: undefined,\n  z: 0\n};\n\nLineAnnotation.descriptors = {\n  arrowHeads: {\n    start: {\n      _fallback: true\n    },\n    end: {\n      _fallback: true\n    },\n    _fallback: true\n  }\n};\n\nLineAnnotation.defaultRoutes = {\n  borderColor: 'color'\n};\n\nfunction inAxisRange(element, {mouseX, mouseY}, axis, {hitSize, useFinalPosition}) {\n  const limit = rangeLimit(mouseX, mouseY, element.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), axis);\n  return inLimit(limit, hitSize) || isOnLabel(element, {mouseX, mouseY}, useFinalPosition, axis);\n}\n\nfunction isLineInArea({x, y, x2, y2}, {top, right, bottom, left}) {\n  return !(\n    (x < left && x2 < left) ||\n    (x > right && x2 > right) ||\n    (y < top && y2 < top) ||\n    (y > bottom && y2 > bottom)\n  );\n}\n\nfunction limitPointToArea({x, y}, p2, {top, right, bottom, left}) {\n  if (x < left) {\n    y = interpolateY(left, {x, y}, p2);\n    x = left;\n  }\n  if (x > right) {\n    y = interpolateY(right, {x, y}, p2);\n    x = right;\n  }\n  if (y < top) {\n    x = interpolateX(top, {x, y}, p2);\n    y = top;\n  }\n  if (y > bottom) {\n    x = interpolateX(bottom, {x, y}, p2);\n    y = bottom;\n  }\n  return {x, y};\n}\n\nfunction limitLineToArea(p1, p2, area) {\n  const {x, y} = limitPointToArea(p1, p2, area);\n  const {x: x2, y: y2} = limitPointToArea(p2, p1, area);\n  return {x, y, x2, y2, width: Math.abs(x2 - x), height: Math.abs(y2 - y)};\n}\n\nfunction intersects(element, {mouseX, mouseY}, epsilon = EPSILON, useFinalPosition) {\n  // Adapted from https://stackoverflow.com/a/6853926/25507\n  const {x: x1, y: y1, x2, y2} = element.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition);\n  const dx = x2 - x1;\n  const dy = y2 - y1;\n  const lenSq = sqr(dx) + sqr(dy);\n  const t = lenSq === 0 ? -1 : ((mouseX - x1) * dx + (mouseY - y1) * dy) / lenSq;\n\n  let xx, yy;\n  if (t < 0) {\n    xx = x1;\n    yy = y1;\n  } else if (t > 1) {\n    xx = x2;\n    yy = y2;\n  } else {\n    xx = x1 + t * dx;\n    yy = y1 + t * dy;\n  }\n  return (sqr(mouseX - xx) + sqr(mouseY - yy)) <= epsilon;\n}\n\nfunction isOnLabel(element, {mouseX, mouseY}, useFinalPosition, axis) {\n  const label = element.label;\n  return label.options.display && label.inRange(mouseX, mouseY, axis, useFinalPosition);\n}\n\nfunction resolveLabelElementProperties(chart, properties, options) {\n  const borderWidth = options.borderWidth;\n  const padding = toPadding(options.padding);\n  const textSize = measureLabelSize(chart.ctx, options);\n  const width = textSize.width + padding.width + borderWidth;\n  const height = textSize.height + padding.height + borderWidth;\n  return calculateLabelPosition(properties, options, {width, height, padding}, chart.chartArea);\n}\n\nfunction calculateAutoRotation(properties) {\n  const {x, y, x2, y2} = properties;\n  const rotation = Math.atan2(y2 - y, x2 - x);\n  // Flip the rotation if it goes > PI/2 or < -PI/2, so label stays upright\n  return rotation > PI / 2 ? rotation - PI : rotation < PI / -2 ? rotation + PI : rotation;\n}\n\nfunction calculateLabelPosition(properties, label, sizes, chartArea) {\n  const {width, height, padding} = sizes;\n  const {xAdjust, yAdjust} = label;\n  const p1 = {x: properties.x, y: properties.y};\n  const p2 = {x: properties.x2, y: properties.y2};\n  const rotation = label.rotation === 'auto' ? calculateAutoRotation(properties) : toRadians(label.rotation);\n  const size = rotatedSize(width, height, rotation);\n  const t = calculateT(properties, label, {labelSize: size, padding}, chartArea);\n  const pt = properties.cp ? pointInCurve(p1, properties.cp, p2, t) : pointInLine(p1, p2, t);\n  const xCoordinateSizes = {size: size.w, min: chartArea.left, max: chartArea.right, padding: padding.left};\n  const yCoordinateSizes = {size: size.h, min: chartArea.top, max: chartArea.bottom, padding: padding.top};\n  const centerX = adjustLabelCoordinate(pt.x, xCoordinateSizes) + xAdjust;\n  const centerY = adjustLabelCoordinate(pt.y, yCoordinateSizes) + yAdjust;\n  return {\n    x: centerX - (width / 2),\n    y: centerY - (height / 2),\n    x2: centerX + (width / 2),\n    y2: centerY + (height / 2),\n    centerX,\n    centerY,\n    pointX: pt.x,\n    pointY: pt.y,\n    width,\n    height,\n    rotation: toDegrees(rotation)\n  };\n}\n\nfunction rotatedSize(width, height, rotation) {\n  const cos = Math.cos(rotation);\n  const sin = Math.sin(rotation);\n  return {\n    w: Math.abs(width * cos) + Math.abs(height * sin),\n    h: Math.abs(width * sin) + Math.abs(height * cos)\n  };\n}\n\nfunction calculateT(properties, label, sizes, chartArea) {\n  let t;\n  const space = spaceAround(properties, chartArea);\n  if (label.position === 'start') {\n    t = calculateTAdjust({w: properties.x2 - properties.x, h: properties.y2 - properties.y}, sizes, label, space);\n  } else if (label.position === 'end') {\n    t = 1 - calculateTAdjust({w: properties.x - properties.x2, h: properties.y - properties.y2}, sizes, label, space);\n  } else {\n    t = getRelativePosition(1, label.position);\n  }\n  return t;\n}\n\nfunction calculateTAdjust(lineSize, sizes, label, space) {\n  const {labelSize, padding} = sizes;\n  const lineW = lineSize.w * space.dx;\n  const lineH = lineSize.h * space.dy;\n  const x = (lineW > 0) && ((labelSize.w / 2 + padding.left - space.x) / lineW);\n  const y = (lineH > 0) && ((labelSize.h / 2 + padding.top - space.y) / lineH);\n  return clamp(Math.max(x, y), 0, 0.25);\n}\n\nfunction spaceAround(properties, chartArea) {\n  const {x, x2, y, y2} = properties;\n  const t = Math.min(y, y2) - chartArea.top;\n  const l = Math.min(x, x2) - chartArea.left;\n  const b = chartArea.bottom - Math.max(y, y2);\n  const r = chartArea.right - Math.max(x, x2);\n  return {\n    x: Math.min(l, r),\n    y: Math.min(t, b),\n    dx: l <= r ? 1 : -1,\n    dy: t <= b ? 1 : -1\n  };\n}\n\nfunction adjustLabelCoordinate(coordinate, labelSizes) {\n  const {size, min, max, padding} = labelSizes;\n  const halfSize = size / 2;\n  if (size > max - min) {\n    // if it does not fit, display as much as possible\n    return (max + min) / 2;\n  }\n  if (min >= (coordinate - padding - halfSize)) {\n    coordinate = min + padding + halfSize;\n  }\n  if (max <= (coordinate + padding + halfSize)) {\n    coordinate = max - padding - halfSize;\n  }\n  return coordinate;\n}\n\nfunction getArrowHeads(line) {\n  const options = line.options;\n  const arrowStartOpts = options.arrowHeads && options.arrowHeads.start;\n  const arrowEndOpts = options.arrowHeads && options.arrowHeads.end;\n  return {\n    startOpts: arrowStartOpts,\n    endOpts: arrowEndOpts,\n    startAdjust: getLineAdjust(line, arrowStartOpts),\n    endAdjust: getLineAdjust(line, arrowEndOpts)\n  };\n}\n\nfunction getLineAdjust(line, arrowOpts) {\n  if (!arrowOpts || !arrowOpts.display) {\n    return 0;\n  }\n  const {length, width} = arrowOpts;\n  const adjust = line.options.borderWidth / 2;\n  const p1 = {x: length, y: width + adjust};\n  const p2 = {x: 0, y: adjust};\n  return Math.abs(interpolateX(0, p1, p2));\n}\n\nfunction drawArrowHead(ctx, offset, adjust, arrowOpts) {\n  if (!arrowOpts || !arrowOpts.display) {\n    return;\n  }\n  const {length, width, fill, backgroundColor, borderColor} = arrowOpts;\n  const arrowOffsetX = Math.abs(offset - length) + adjust;\n  ctx.beginPath();\n  setShadowStyle(ctx, arrowOpts);\n  setBorderStyle(ctx, arrowOpts);\n  ctx.moveTo(arrowOffsetX, -width);\n  ctx.lineTo(offset + adjust, 0);\n  ctx.lineTo(arrowOffsetX, width);\n  if (fill === true) {\n    ctx.fillStyle = backgroundColor || borderColor;\n    ctx.closePath();\n    ctx.fill();\n    ctx.shadowColor = 'transparent';\n  } else {\n    ctx.shadowColor = arrowOpts.borderShadowColor;\n  }\n  ctx.stroke();\n}\n\nfunction getControlPoint(properties, options, distance) {\n  const {x, y, x2, y2, centerX, centerY} = properties;\n  const angle = Math.atan2(y2 - y, x2 - x);\n  const cp = toPosition(options.controlPoint, 0);\n  const point = {\n    x: centerX + getSize(distance, cp.x, false),\n    y: centerY + getSize(distance, cp.y, false)\n  };\n  return rotated(point, {x: centerX, y: centerY}, angle);\n}\n\nfunction drawArrowHeadOnCurve(ctx, {x, y}, {angle, adjust}, arrowOpts) {\n  if (!arrowOpts || !arrowOpts.display) {\n    return;\n  }\n  ctx.save();\n  ctx.translate(x, y);\n  ctx.rotate(angle);\n  drawArrowHead(ctx, 0, -adjust, arrowOpts);\n  ctx.restore();\n}\n\nfunction drawCurve(ctx, element, cp, length) {\n  const {x, y, x2, y2, options} = element;\n  const {startOpts, endOpts, startAdjust, endAdjust} = getArrowHeads(element);\n  const p1 = {x, y};\n  const p2 = {x: x2, y: y2};\n  const startAngle = angleInCurve(p1, cp, p2, 0);\n  const endAngle = angleInCurve(p1, cp, p2, 1) - PI;\n  const ps = pointInCurve(p1, cp, p2, startAdjust / length);\n  const pe = pointInCurve(p1, cp, p2, 1 - endAdjust / length);\n\n  const path = new Path2D();\n  ctx.beginPath();\n  path.moveTo(ps.x, ps.y);\n  path.quadraticCurveTo(cp.x, cp.y, pe.x, pe.y);\n  ctx.shadowColor = options.borderShadowColor;\n  ctx.stroke(path);\n  element.path = path;\n  element.ctx = ctx;\n  drawArrowHeadOnCurve(ctx, ps, {angle: startAngle, adjust: startAdjust}, startOpts);\n  drawArrowHeadOnCurve(ctx, pe, {angle: endAngle, adjust: endAdjust}, endOpts);\n}\n\nclass EllipseAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    const rotation = this.options.rotation;\n    const hitSize = (this.options.borderWidth + this.options.hitTolerance) / 2;\n    if (axis !== 'x' && axis !== 'y') {\n      return pointInEllipse({x: mouseX, y: mouseY}, this.getProps(['width', 'height', 'centerX', 'centerY'], useFinalPosition), rotation, hitSize);\n    }\n    const {x, y, x2, y2} = this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition);\n    const limit = axis === 'y' ? {start: y, end: y2} : {start: x, end: x2};\n    const rotatedPoint = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-rotation));\n    return rotatedPoint[axis] >= limit.start - hitSize - EPSILON && rotatedPoint[axis] <= limit.end + hitSize + EPSILON;\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    const {width, height, centerX, centerY, options} = this;\n    ctx.save();\n    translate(ctx, this.getCenterPoint(), options.rotation);\n    setShadowStyle(ctx, this.options);\n    ctx.beginPath();\n    ctx.fillStyle = options.backgroundColor;\n    const stroke = setBorderStyle(ctx, options);\n    ctx.ellipse(centerX, centerY, height / 2, width / 2, PI / 2, 0, 2 * PI);\n    ctx.fill();\n    if (stroke) {\n      ctx.shadowColor = options.borderShadowColor;\n      ctx.stroke();\n    }\n    ctx.restore();\n  }\n\n  get label() {\n    return this.elements && this.elements[0];\n  }\n\n  resolveElementProperties(chart, options) {\n    return resolveBoxAndLabelProperties(chart, options);\n  }\n\n}\n\nEllipseAnnotation.id = 'ellipseAnnotation';\n\nEllipseAnnotation.defaults = {\n  adjustScaleRange: true,\n  backgroundShadowColor: 'transparent',\n  borderDash: [],\n  borderDashOffset: 0,\n  borderShadowColor: 'transparent',\n  borderWidth: 1,\n  display: true,\n  hitTolerance: 0,\n  init: undefined,\n  label: Object.assign({}, BoxAnnotation.defaults.label),\n  rotation: 0,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  xMax: undefined,\n  xMin: undefined,\n  xScaleID: undefined,\n  yMax: undefined,\n  yMin: undefined,\n  yScaleID: undefined,\n  z: 0\n};\n\nEllipseAnnotation.defaultRoutes = {\n  borderColor: 'color',\n  backgroundColor: 'color'\n};\n\nEllipseAnnotation.descriptors = {\n  label: {\n    _fallback: true\n  }\n};\n\nfunction pointInEllipse(p, ellipse, rotation, hitSize) {\n  const {width, height, centerX, centerY} = ellipse;\n  const xRadius = width / 2;\n  const yRadius = height / 2;\n\n  if (xRadius <= 0 || yRadius <= 0) {\n    return false;\n  }\n  // https://stackoverflow.com/questions/7946187/point-and-ellipse-rotated-position-test-algorithm\n  const angle = toRadians(rotation || 0);\n  const cosAngle = Math.cos(angle);\n  const sinAngle = Math.sin(angle);\n  const a = Math.pow(cosAngle * (p.x - centerX) + sinAngle * (p.y - centerY), 2);\n  const b = Math.pow(sinAngle * (p.x - centerX) - cosAngle * (p.y - centerY), 2);\n  return (a / Math.pow(xRadius + hitSize, 2)) + (b / Math.pow(yRadius + hitSize, 2)) <= 1.0001;\n}\n\nclass PointAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    const {x, y, x2, y2, width} = this.getProps(['x', 'y', 'x2', 'y2', 'width'], useFinalPosition);\n    const hitSize = (this.options.borderWidth + this.options.hitTolerance) / 2;\n    if (axis !== 'x' && axis !== 'y') {\n      return inPointRange({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), width / 2, hitSize);\n    }\n    const limit = axis === 'y' ? {start: y, end: y2, value: mouseY} : {start: x, end: x2, value: mouseX};\n    return inLimit(limit, hitSize);\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    const options = this.options;\n    const borderWidth = options.borderWidth;\n    if (options.radius < 0.1) {\n      return;\n    }\n    ctx.save();\n    ctx.fillStyle = options.backgroundColor;\n    setShadowStyle(ctx, options);\n    const stroke = setBorderStyle(ctx, options);\n    drawPoint(ctx, this, this.centerX, this.centerY);\n    if (stroke && !isImageOrCanvas(options.pointStyle)) {\n      ctx.shadowColor = options.borderShadowColor;\n      ctx.stroke();\n    }\n    ctx.restore();\n    options.borderWidth = borderWidth;\n  }\n\n  resolveElementProperties(chart, options) {\n    const properties = resolvePointProperties(chart, options);\n    properties.initProperties = initAnimationProperties(chart, properties, options);\n    return properties;\n  }\n}\n\nPointAnnotation.id = 'pointAnnotation';\n\nPointAnnotation.defaults = {\n  adjustScaleRange: true,\n  backgroundShadowColor: 'transparent',\n  borderDash: [],\n  borderDashOffset: 0,\n  borderShadowColor: 'transparent',\n  borderWidth: 1,\n  display: true,\n  hitTolerance: 0,\n  init: undefined,\n  pointStyle: 'circle',\n  radius: 10,\n  rotation: 0,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  xAdjust: 0,\n  xMax: undefined,\n  xMin: undefined,\n  xScaleID: undefined,\n  xValue: undefined,\n  yAdjust: 0,\n  yMax: undefined,\n  yMin: undefined,\n  yScaleID: undefined,\n  yValue: undefined,\n  z: 0\n};\n\nPointAnnotation.defaultRoutes = {\n  borderColor: 'color',\n  backgroundColor: 'color'\n};\n\nclass PolygonAnnotation extends Element {\n\n  inRange(mouseX, mouseY, axis, useFinalPosition) {\n    if (axis !== 'x' && axis !== 'y') {\n      return this.options.radius >= 0.1 && this.elements.length > 1 && pointIsInPolygon(this.elements, mouseX, mouseY, useFinalPosition);\n    }\n    const rotatedPoint = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-this.options.rotation));\n    const axisPoints = this.elements.map((point) => axis === 'y' ? point.bY : point.bX);\n    const start = Math.min(...axisPoints);\n    const end = Math.max(...axisPoints);\n    return rotatedPoint[axis] >= start && rotatedPoint[axis] <= end;\n  }\n\n  getCenterPoint(useFinalPosition) {\n    return getElementCenterPoint(this, useFinalPosition);\n  }\n\n  draw(ctx) {\n    const {elements, options} = this;\n    ctx.save();\n    ctx.beginPath();\n    ctx.fillStyle = options.backgroundColor;\n    setShadowStyle(ctx, options);\n    const stroke = setBorderStyle(ctx, options);\n    let first = true;\n    for (const el of elements) {\n      if (first) {\n        ctx.moveTo(el.x, el.y);\n        first = false;\n      } else {\n        ctx.lineTo(el.x, el.y);\n      }\n    }\n    ctx.closePath();\n    ctx.fill();\n    // If no border, don't draw it\n    if (stroke) {\n      ctx.shadowColor = options.borderShadowColor;\n      ctx.stroke();\n    }\n    ctx.restore();\n  }\n\n  resolveElementProperties(chart, options) {\n    const properties = resolvePointProperties(chart, options);\n    const {sides, rotation} = options;\n    const elements = [];\n    const angle = (2 * PI) / sides;\n    let rad = rotation * RAD_PER_DEG;\n    for (let i = 0; i < sides; i++, rad += angle) {\n      const elProps = buildPointElement(properties, options, rad);\n      elProps.initProperties = initAnimationProperties(chart, properties, options);\n      elements.push(elProps);\n    }\n    properties.elements = elements;\n    return properties;\n  }\n}\n\nPolygonAnnotation.id = 'polygonAnnotation';\n\nPolygonAnnotation.defaults = {\n  adjustScaleRange: true,\n  backgroundShadowColor: 'transparent',\n  borderCapStyle: 'butt',\n  borderDash: [],\n  borderDashOffset: 0,\n  borderJoinStyle: 'miter',\n  borderShadowColor: 'transparent',\n  borderWidth: 1,\n  display: true,\n  hitTolerance: 0,\n  init: undefined,\n  point: {\n    radius: 0\n  },\n  radius: 10,\n  rotation: 0,\n  shadowBlur: 0,\n  shadowOffsetX: 0,\n  shadowOffsetY: 0,\n  sides: 3,\n  xAdjust: 0,\n  xMax: undefined,\n  xMin: undefined,\n  xScaleID: undefined,\n  xValue: undefined,\n  yAdjust: 0,\n  yMax: undefined,\n  yMin: undefined,\n  yScaleID: undefined,\n  yValue: undefined,\n  z: 0\n};\n\nPolygonAnnotation.defaultRoutes = {\n  borderColor: 'color',\n  backgroundColor: 'color'\n};\n\nfunction buildPointElement({centerX, centerY}, {radius, borderWidth, hitTolerance}, rad) {\n  const hitSize = (borderWidth + hitTolerance) / 2;\n  const sin = Math.sin(rad);\n  const cos = Math.cos(rad);\n  const point = {x: centerX + sin * radius, y: centerY - cos * radius};\n  return {\n    type: 'point',\n    optionScope: 'point',\n    properties: {\n      x: point.x,\n      y: point.y,\n      centerX: point.x,\n      centerY: point.y,\n      bX: centerX + sin * (radius + hitSize),\n      bY: centerY - cos * (radius + hitSize)\n    }\n  };\n}\n\nfunction pointIsInPolygon(points, x, y, useFinalPosition) {\n  let isInside = false;\n  let A = points[points.length - 1].getProps(['bX', 'bY'], useFinalPosition);\n  for (const point of points) {\n    const B = point.getProps(['bX', 'bY'], useFinalPosition);\n    if ((B.bY > y) !== (A.bY > y) && x < (A.bX - B.bX) * (y - B.bY) / (A.bY - B.bY) + B.bX) {\n      isInside = !isInside;\n    }\n    A = B;\n  }\n  return isInside;\n}\n\nconst annotationTypes = {\n  box: BoxAnnotation,\n  doughnutLabel: DoughnutLabelAnnotation,\n  ellipse: EllipseAnnotation,\n  label: LabelAnnotation,\n  line: LineAnnotation,\n  point: PointAnnotation,\n  polygon: PolygonAnnotation\n};\n\n/**\n * Register fallback for annotation elements\n * For example lineAnnotation options would be looked through:\n * - the annotation object (options.plugins.annotation.annotations[id])\n * - element options (options.elements.lineAnnotation)\n * - element defaults (defaults.elements.lineAnnotation)\n * - annotation plugin defaults (defaults.plugins.annotation, this is what we are registering here)\n */\nObject.keys(annotationTypes).forEach(key => {\n  defaults.describe(`elements.${annotationTypes[key].id}`, {\n    _fallback: 'plugins.annotation.common'\n  });\n});\n\nconst directUpdater = {\n  update: Object.assign\n};\n\nconst hooks$1 = eventHooks.concat(elementHooks);\nconst resolve = (value, optDefs) => isObject(optDefs) ? resolveObj(value, optDefs) : value;\n\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import(\"chart.js\").UpdateMode } UpdateMode\n * @typedef { import('../../types/options').AnnotationPluginOptions } AnnotationPluginOptions\n */\n\n/**\n * @param {string} prop\n * @returns {boolean}\n */\nconst isIndexable = (prop) => prop === 'color' || prop === 'font';\n\n/**\n * Resolve the annotation type, checking if is supported.\n * @param {string} [type=line] - annotation type\n * @returns {string} resolved annotation type\n */\nfunction resolveType(type = 'line') {\n  if (annotationTypes[type]) {\n    return type;\n  }\n  console.warn(`Unknown annotation type: '${type}', defaulting to 'line'`);\n  return 'line';\n}\n\n/**\n * @param {Chart} chart\n * @param {Object} state\n * @param {AnnotationPluginOptions} options\n * @param {UpdateMode} mode\n */\nfunction updateElements(chart, state, options, mode) {\n  const animations = resolveAnimations(chart, options.animations, mode);\n\n  const annotations = state.annotations;\n  const elements = resyncElements(state.elements, annotations);\n\n  for (let i = 0; i < annotations.length; i++) {\n    const annotationOptions = annotations[i];\n    const element = getOrCreateElement(elements, i, annotationOptions.type);\n    const resolver = annotationOptions.setContext(getContext(chart, element, elements, annotationOptions));\n    const properties = element.resolveElementProperties(chart, resolver);\n\n    properties.skip = toSkip(properties);\n\n    if ('elements' in properties) {\n      updateSubElements(element, properties.elements, resolver, animations);\n      // Remove the sub-element definitions from properties, so the actual elements\n      // are not overwritten by their definitions\n      delete properties.elements;\n    }\n\n    if (!defined(element.x)) {\n      // If the element is newly created, assing the properties directly - to\n      // make them readily awailable to any scriptable options. If we do not do this,\n      // the properties retruned by `resolveElementProperties` are available only\n      // after options resolution.\n      Object.assign(element, properties);\n    }\n\n    Object.assign(element, properties.initProperties);\n    properties.options = resolveAnnotationOptions(resolver);\n\n    animations.update(element, properties);\n  }\n}\n\nfunction toSkip(properties) {\n  return isNaN(properties.x) || isNaN(properties.y);\n}\n\nfunction resolveAnimations(chart, animOpts, mode) {\n  if (mode === 'reset' || mode === 'none' || mode === 'resize') {\n    return directUpdater;\n  }\n  return new Animations(chart, animOpts);\n}\n\nfunction updateSubElements(mainElement, elements, resolver, animations) {\n  const subElements = mainElement.elements || (mainElement.elements = []);\n  subElements.length = elements.length;\n  for (let i = 0; i < elements.length; i++) {\n    const definition = elements[i];\n    const properties = definition.properties;\n    const subElement = getOrCreateElement(subElements, i, definition.type, definition.initProperties);\n    const subResolver = resolver[definition.optionScope].override(definition);\n    properties.options = resolveAnnotationOptions(subResolver);\n    animations.update(subElement, properties);\n  }\n}\n\nfunction getOrCreateElement(elements, index, type, initProperties) {\n  const elementClass = annotationTypes[resolveType(type)];\n  let element = elements[index];\n  if (!element || !(element instanceof elementClass)) {\n    element = elements[index] = new elementClass();\n    Object.assign(element, initProperties);\n  }\n  return element;\n}\n\nfunction resolveAnnotationOptions(resolver) {\n  const elementClass = annotationTypes[resolveType(resolver.type)];\n  const result = {};\n  result.id = resolver.id;\n  result.type = resolver.type;\n  result.drawTime = resolver.drawTime;\n  Object.assign(result,\n    resolveObj(resolver, elementClass.defaults),\n    resolveObj(resolver, elementClass.defaultRoutes));\n  for (const hook of hooks$1) {\n    result[hook] = resolver[hook];\n  }\n  return result;\n}\n\nfunction resolveObj(resolver, defs) {\n  const result = {};\n  for (const prop of Object.keys(defs)) {\n    const optDefs = defs[prop];\n    const value = resolver[prop];\n    if (isIndexable(prop) && isArray(value)) {\n      result[prop] = value.map((item) => resolve(item, optDefs));\n    } else {\n      result[prop] = resolve(value, optDefs);\n    }\n  }\n  return result;\n}\n\nfunction getContext(chart, element, elements, annotation) {\n  return element.$context || (element.$context = Object.assign(Object.create(chart.getContext()), {\n    element,\n    get elements() {\n      return elements.filter((el) => el && el.options);\n    },\n    id: annotation.id,\n    type: 'annotation'\n  }));\n}\n\nfunction resyncElements(elements, annotations) {\n  const count = annotations.length;\n  const start = elements.length;\n\n  if (start < count) {\n    const add = count - start;\n    elements.splice(start, 0, ...new Array(add));\n  } else if (start > count) {\n    elements.splice(count, start - count);\n  }\n  return elements;\n}\n\nvar version = \"3.1.0\";\n\nconst chartStates = new Map();\nconst isNotDoughnutLabel = annotation => annotation.type !== 'doughnutLabel';\nconst hooks = eventHooks.concat(elementHooks);\n\nvar annotation = {\n  id: 'annotation',\n\n  version,\n\n  beforeRegister() {\n    requireVersion('chart.js', '4.0', Chart.version);\n  },\n\n  afterRegister() {\n    Chart.register(annotationTypes);\n  },\n\n  afterUnregister() {\n    Chart.unregister(annotationTypes);\n  },\n\n  beforeInit(chart) {\n    chartStates.set(chart, {\n      annotations: [],\n      elements: [],\n      visibleElements: [],\n      listeners: {},\n      listened: false,\n      moveListened: false,\n      hooks: {},\n      hooked: false,\n      hovered: []\n    });\n  },\n\n  beforeUpdate(chart, args, options) {\n    const state = chartStates.get(chart);\n    const annotations = state.annotations = [];\n\n    let annotationOptions = options.annotations;\n    if (isObject(annotationOptions)) {\n      Object.keys(annotationOptions).forEach(key => {\n        const value = annotationOptions[key];\n        if (isObject(value)) {\n          value.id = key;\n          annotations.push(value);\n        }\n      });\n    } else if (isArray(annotationOptions)) {\n      annotations.push(...annotationOptions);\n    }\n    verifyScaleOptions(annotations.filter(isNotDoughnutLabel), chart.scales);\n  },\n\n  afterDataLimits(chart, args) {\n    const state = chartStates.get(chart);\n    adjustScaleRange(chart, args.scale, state.annotations.filter(isNotDoughnutLabel).filter(a => a.display && a.adjustScaleRange));\n  },\n\n  afterUpdate(chart, args, options) {\n    const state = chartStates.get(chart);\n    updateListeners(chart, state, options);\n    updateElements(chart, state, options, args.mode);\n    state.visibleElements = state.elements.filter(el => !el.skip && el.options.display);\n    updateHooks(chart, state, options);\n  },\n\n  beforeDatasetsDraw(chart, _args, options) {\n    draw(chart, 'beforeDatasetsDraw', options.clip);\n  },\n\n  afterDatasetsDraw(chart, _args, options) {\n    draw(chart, 'afterDatasetsDraw', options.clip);\n  },\n\n  beforeDatasetDraw(chart, _args, options) {\n    draw(chart, _args.index, options.clip);\n  },\n\n  beforeDraw(chart, _args, options) {\n    draw(chart, 'beforeDraw', options.clip);\n  },\n\n  afterDraw(chart, _args, options) {\n    draw(chart, 'afterDraw', options.clip);\n  },\n\n  beforeEvent(chart, args, options) {\n    const state = chartStates.get(chart);\n    if (handleEvent(state, args.event, options)) {\n      args.changed = true;\n    }\n  },\n\n  afterDestroy(chart) {\n    chartStates.delete(chart);\n  },\n\n  getAnnotations(chart) {\n    const state = chartStates.get(chart);\n    return state ? state.elements : [];\n  },\n\n  // only for testing\n  _getAnnotationElementsAtEventForMode(visibleElements, event, options) {\n    return getElements(visibleElements, event, options);\n  },\n\n  defaults: {\n    animations: {\n      numbers: {\n        properties: ['x', 'y', 'x2', 'y2', 'width', 'height', 'centerX', 'centerY', 'pointX', 'pointY', 'radius'],\n        type: 'number'\n      },\n      colors: {\n        properties: ['backgroundColor', 'borderColor'],\n        type: 'color'\n      }\n    },\n    clip: true,\n    interaction: {\n      mode: undefined,\n      axis: undefined,\n      intersect: undefined\n    },\n    common: {\n      drawTime: 'afterDatasetsDraw',\n      init: false,\n      label: {\n      }\n    }\n  },\n\n  descriptors: {\n    _indexable: false,\n    _scriptable: (prop) => !hooks.includes(prop) && prop !== 'init',\n    annotations: {\n      _allKeys: false,\n      _fallback: (prop, opts) => `elements.${annotationTypes[resolveType(opts.type)].id}`\n    },\n    interaction: {\n      _fallback: true\n    },\n    common: {\n      label: {\n        _indexable: isIndexable,\n        _fallback: true\n      },\n      _indexable: isIndexable\n    }\n  },\n\n  additionalOptionScopes: ['']\n};\n\nfunction draw(chart, caller, clip) {\n  const {ctx, chartArea} = chart;\n  const state = chartStates.get(chart);\n\n  if (clip) {\n    clipArea(ctx, chartArea);\n  }\n\n  const drawableElements = getDrawableElements(state.visibleElements, caller).sort((a, b) => a.element.options.z - b.element.options.z);\n  for (const item of drawableElements) {\n    drawElement(ctx, chartArea, state, item);\n  }\n\n  if (clip) {\n    unclipArea(ctx);\n  }\n}\n\nfunction getDrawableElements(elements, caller) {\n  const drawableElements = [];\n  for (const el of elements) {\n    if (el.options.drawTime === caller) {\n      drawableElements.push({element: el, main: true});\n    }\n    if (el.elements && el.elements.length) {\n      for (const sub of el.elements) {\n        if (sub.options.display && sub.options.drawTime === caller) {\n          drawableElements.push({element: sub});\n        }\n      }\n    }\n  }\n  return drawableElements;\n}\n\nfunction drawElement(ctx, chartArea, state, item) {\n  const el = item.element;\n  if (item.main) {\n    invokeHook(state, el, 'beforeDraw');\n    el.draw(ctx, chartArea);\n    invokeHook(state, el, 'afterDraw');\n  } else {\n    el.draw(ctx, chartArea);\n  }\n}\n\nexport { annotation as default };\n", "import { Controller } from \"@hotwired/stimulus\"\nimport { Chart, BarElement, CategoryScale, LinearScale, Tooltip, Legend, BarController, LineElement, PointElement, LineController } from 'chart.js'\nimport annotationPlugin from 'chartjs-plugin-annotation'\n\nChart.register(BarElement, CategoryScale, LinearScale, Tooltip, Legend, BarController, LineElement, PointElement, LineController, annotationPlugin)\n\nexport default class extends Controller {\n  static values = {\n    dates: Array,\n    fullDates: Array,\n    weekdays: Array,\n    counts: Array,\n    offlineCounts: Array,\n    showOfflineRatio: Boolean,\n    total: Number\n  }\n\n  connect() {\n    // Turbo Preview \uBAA8\uB4DC\uC77C \uB54C\uB294 \uB80C\uB354\uB9C1\uD558\uC9C0 \uC54A\uC74C (\uCE90\uC2DC\uB41C \uC774\uBBF8\uC9C0 \uC0AC\uC6A9)\n    if (document.documentElement.hasAttribute(\"data-turbo-preview\")) return\n\n    this.renderChart()\n  }\n\n  disconnect() {\n    this.destroyChart()\n  }\n  \n  destroyChart() {\n    if (this.chart) {\n      this.chart.destroy()\n      this.chart = null\n    }\n  }\n\n  renderChart() {\n    const canvas = this.element.querySelector('canvas')\n    if (!canvas) {\n      console.error('Canvas element not found')\n      return\n    }\n\n    const ctx = canvas.getContext('2d')\n    \n    // Canvas\uC5D0 \uC5F0\uACB0\uB41C \uAE30\uC874 Chart \uC778\uC2A4\uD134\uC2A4\uAC00 \uC788\uB2E4\uBA74 \uAC15\uC81C\uB85C \uD30C\uAD34 (\uAC15\uB825\uD55C \uC911\uBCF5 \uBC29\uC9C0)\n    const existingChart = Chart.getChart(canvas)\n    if (existingChart) {\n      existingChart.destroy()\n    }\n\n    // \uCEE8\uD2B8\uB864\uB7EC \uB808\uBCA8\uC758 \uCC28\uD2B8 \uC778\uC2A4\uD134\uC2A4 \uC815\uB9AC\n    if (this.chart) {\n      this.chart.destroy()\n      this.chart = null\n    }\n\n    if (this.totalValue === 0 || !this.datesValue || this.datesValue.length === 0) {\n      this.showNoData()\n      return\n    }\n\n    // \uB204\uC801 \uC624\uD504\uB77C\uC778 \uBE44\uC728 \uBC0F \uB204\uC801 \uB4F1\uB85D\uAC74\uC218 \uACC4\uC0B0\n    let cumulativeOffline = 0\n    let cumulativeTotal = 0\n    const todayIndex = this.getTodayIndex()\n    \n    const cumulativeCounts = []\n    \n    const offlineRatios = this.countsValue.map((count, index) => {\n      const offlineCount = this.offlineCountsValue[index] || 0\n      \n      cumulativeTotal += count\n      cumulativeOffline += offlineCount\n      \n      cumulativeCounts.push(cumulativeTotal)\n      \n      // \uC624\uB298 \uC774\uD6C4\uC758 \uB370\uC774\uD130\uB294 null \uB85C \uCC98\uB9AC\uD558\uC5EC \uADF8\uB798\uD504\uC5D0 \uD45C\uC2DC\uD558\uC9C0 \uC54A\uC74C\n      if (todayIndex !== -1 && index > todayIndex) {\n        return null\n      }\n      \n      if (cumulativeTotal === 0) return 0\n      \n      // \uC18C\uC218\uC810 1\uC790\uB9AC\uAE4C\uC9C0 \uACC4\uC0B0 (\uD37C\uC13C\uD2B8)\n      return parseFloat(((cumulativeOffline / cumulativeTotal) * 100).toFixed(1))\n    })\n\n    // console.log('DailyChartController loaded. Ratios:', offlineRatios)\n    \n    // \uAE30\uC874 \uCC28\uD2B8\uAC00 \uC788\uB2E4\uBA74 \uC0AD\uC81C (\uC911\uBCF5 \uC0DD\uC131 \uBC29\uC9C0)\n    if (this.chart) {\n      this.chart.destroy()\n      this.chart = null\n    }\n\n    try {\n      this.chart = new Chart(ctx, {\n        type: 'bar',\n        data: {\n          labels: this.datesValue,\n          datasets: [\n            {\n              type: 'bar',\n              label: '\uB4F1\uB85D\uAC74\uC218',\n              data: this.countsValue,\n              backgroundColor: 'rgba(13, 110, 253, 0.7)',\n              borderColor: '#0d6efd',\n              borderWidth: 1,\n              borderRadius: 4,\n              order: 2,\n              yAxisID: 'y'\n            },\n            ...(this.showOfflineRatioValue ? [{\n              type: 'line',\n              label: '\uC624\uD504\uB77C\uC778 \uB204\uC801 \uBE44\uC728(%)',\n              data: offlineRatios,\n              borderColor: '#dc3545',\n              backgroundColor: 'rgba(220, 53, 69, 0.1)',\n              borderWidth: 2,\n              pointRadius: 3,\n              pointBackgroundColor: '#dc3545',\n              pointBorderColor: '#fff',\n              pointBorderWidth: 1,\n              tension: 0.3,\n              fill: false,\n              order: 1,\n              yAxisID: 'y1',\n              spanGaps: false // null \uB370\uC774\uD130\uC5D0\uC11C \uC120 \uB04A\uAE30\n            }] : [])\n          ]\n        },\n        options: {\n          responsive: true,\n          maintainAspectRatio: true,\n          aspectRatio: 4,\n          interaction: {\n            mode: 'index',\n            intersect: false,\n          },\n          scales: {\n            y: {\n              type: 'linear',\n              display: true,\n              position: 'left',\n              beginAtZero: true,\n              max: Math.max(...this.countsValue) + 3,\n              ticks: {\n                stepSize: 1,\n                font: {\n                  size: 11\n                }\n              },\n              grid: {\n                color: 'rgba(0, 0, 0, 0.05)'\n              }\n            },\n            ...(this.showOfflineRatioValue ? {\n              y1: {\n                type: 'linear',\n                display: true,\n                position: 'right',\n                beginAtZero: false, // \uB370\uC774\uD130\uC758 \uCD5C\uC18C\uAC12\uBD80\uD130 \uC2DC\uC791\n                // min: 0,\n                // max: 100, // \uB370\uC774\uD130\uC5D0 \uB9DE\uCDB0 \uC790\uB3D9 \uC2A4\uCF00\uC77C\uB9C1\n                grid: {\n                  drawOnChartArea: false\n                },\n                ticks: {\n                  callback: function(value) {\n                    return value + '%'\n                  },\n                  color: '#dc3545'\n                }\n              }\n            } : {}),\n            x: {\n              ticks: {\n                font: (context) => {\n                  const index = context.index\n                  const todayIndex = this.getTodayIndex()\n                  return {\n                    size: 11,\n                    weight: index === todayIndex ? 'bold' : 'normal'\n                  }\n                },\n                color: (context) => {\n                  const index = context.index\n                  const todayIndex = this.getTodayIndex()\n                  if (index === todayIndex) return '#0d6efd'\n                  return this.weekdaysValue[index] === 0 ? '#dc3545' : '#666'\n                },\n                backdropColor: (context) => {\n                  const index = context.index\n                  const todayIndex = this.getTodayIndex()\n                  return index === todayIndex ? 'rgba(13, 110, 253, 0.1)' : 'transparent'\n                },\n                backdropPadding: 4,\n                showLabelBackdrop: true\n              },\n              grid: {\n                display: true,\n                color: 'rgba(0, 0, 0, 0.1)',\n                drawOnChartArea: true,\n                drawTicks: true\n              }\n            }\n          },\n          plugins: {\n            legend: {\n              display: true,\n              position: 'top',\n              align: 'end',\n              labels: {\n                boxWidth: 12,\n                padding: 10,\n                font: {\n                  size: 11\n                }\n              }\n            },\n            annotation: {\n              annotations: this.getTodayLineAnnotation()\n            },\n            tooltip: {\n              callbacks: {\n                label: (context) => {\n                  const value = context.parsed.y || 0\n                  const label = context.dataset.label\n                  const index = context.dataIndex\n                  \n                  if (label.includes('\uBE44\uC728')) {\n                    return `${label}: ${value}%`\n                  }\n                  \n                  // \uB2F9\uC77C \uB4F1\uB85D\uAC74\uC218\uC640 \uB204\uC801 \uB4F1\uB85D\uAC74\uC218\uB97C \uD568\uAED8 \uD45C\uC2DC\n                  return [\n                    `\uB2F9\uC77C \uB4F1\uB85D: ${value}\uBA85`,\n                    `\uB204\uC801 \uB4F1\uB85D: ${cumulativeCounts[index]}\uBA85`\n                  ]\n                }\n              }\n            }\n          }\n        }\n      })\n    } catch (error) {\n      console.error('Error rendering chart:', error)\n      this.showNoData()\n    }\n  }\n\n  showNoData() {\n    const canvas = this.element.querySelector('canvas')\n    const noDataDiv = this.element.querySelector('.chart-no-data')\n    if (canvas) canvas.classList.add('d-none')\n    if (noDataDiv) noDataDiv.classList.remove('d-none')\n  }\n\n  getTodayIndex() {\n    // \uC624\uB298 \uB0A0\uC9DC\uB97C YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uCC3E\uAE30\n    const today = new Date()\n    const year = today.getFullYear()\n    const month = String(today.getMonth() + 1).padStart(2, '0')\n    const day = String(today.getDate()).padStart(2, '0')\n    const todayStr = `${year}-${month}-${day}`\n    \n    // fullDates \uBC30\uC5F4\uC774 \uC788\uC73C\uBA74 \uADF8\uAC83\uC744 \uC0AC\uC6A9, \uC5C6\uC73C\uBA74 \uAE30\uC874 dates \uBC30\uC5F4 \uC0AC\uC6A9 (\uD638\uD658\uC131 \uC720\uC9C0)\n    if (this.hasFullDatesValue) {\n      return this.fullDatesValue.indexOf(todayStr)\n    }\n    \n    // \uAE30\uC874 \uB85C\uC9C1 (MM/DD) - \uD638\uD658\uC131 \uC720\uC9C0\uC6A9\n    const todayShortStr = `${month}/${day}`\n    return this.datesValue.findIndex(date => date.startsWith(todayShortStr))\n  }\n\n  getTodayLineAnnotation() {\n    const todayIndex = this.getTodayIndex()\n    \n    if (todayIndex === -1) {\n      return {}\n    }\n    \n    return {\n      todayLine: {\n        type: 'line',\n        xMin: todayIndex,\n        xMax: todayIndex,\n        borderColor: 'rgba(255, 193, 7, 0.8)',\n        borderWidth: 2,\n        borderDash: [5, 5]\n      }\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"depositor\"\nexport default class extends Controller {\n  static targets = [\"fullName\", \"depositor\"];\n\n  connect() {\n  }\n\n  handleKeyup(e) {\n    const trimmedValue = this.fullNameTarget.value.trim().replace(/\\s+/g, \"\");\n    this.fullNameTarget.value = trimmedValue;\n    this.depositorTarget.value = trimmedValue;\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\nimport debounce from \"lodash/debounce\";\n\n// Connects to data-controller=\"incremental-search\"\nexport default class extends Controller {\n  static targets = [\"searchField\"];\n\n  connect() {\n    this.search = debounce(this.search.bind(this), 300);\n  }\n\n  search() {\n    const query = this.searchFieldTarget.value;\n    // console.log(\"Query:\", query); // \uC785\uB825\uAC12\uC744 \uCF58\uC194\uC5D0 \uCD9C\uB825\n    const baseUrl = this.data.get(\"url\");\n\n    if (!baseUrl) {\n      console.error(\"Base URL is not defined\");\n      return;\n    }\n\n    const url = new URL(baseUrl, window.location.origin); // \uC808\uB300 \uACBD\uB85C\uB85C \uBCC0\uD658\n\n    url.searchParams.set(\"q[license_no_or_full_name_cont]\", query);\n\n    fetch(url, {\n      headers: {\n        Accept: \"text/vnd.turbo-stream.html\",\n      },\n    })\n      .then((response) => {\n        if (!response.ok) {\n          throw new Error(`HTTP error! status: ${response.status}`);\n        }\n        return response.text();\n      })\n      .then((html) => {\n        // console.log(\"Fetched HTML:\", html); // \uC751\uB2F5\uC73C\uB85C \uBC1B\uC740 HTML\uC744 \uCF58\uC194\uC5D0 \uCD9C\uB825\n        const resultsElement = document.getElementById(\"results\");\n        if (resultsElement) {\n          resultsElement.innerHTML = html;\n          // console.log(\"Results element updated:\", resultsElement.innerHTML); // \uC5C5\uB370\uC774\uD2B8\uB41C \uACB0\uACFC\uB97C \uCF58\uC194\uC5D0 \uCD9C\uB825\n        } else {\n          console.error(\"Results element not found\");\n        }\n      })\n      .catch((error) => {\n        console.error(\"Fetch error:\", error);\n      });\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"inline-memo\"\nexport default class extends Controller {\n  static targets = [\"display\", \"memoModal\", \"textarea\"]\n  static values = {\n    preregistrationId: Number,\n    conferenceId: Number\n  }\n\n  connect() {\n    // \uBAA8\uB2EC\uC774 \uC5F4\uB9B4 \uB54C textarea\uC5D0 \uD3EC\uCEE4\uC2A4 \uC124\uC815\n    if (this.hasMemoModalTarget) {\n      this.handleModalShown = () => {\n        if (this.hasTextareaTarget) {\n          setTimeout(() => {\n            this.textareaTarget.focus()\n          }, 100)\n        }\n      }\n      this.memoModalTarget.addEventListener('shown.bs.modal', this.handleModalShown)\n    }\n  }\n\n  disconnect() {\n    // \uC774\uBCA4\uD2B8 \uB9AC\uC2A4\uB108 \uC815\uB9AC\n    if (this.hasMemoModalTarget && this.handleModalShown) {\n      this.memoModalTarget.removeEventListener('shown.bs.modal', this.handleModalShown)\n    }\n  }\n}\n\n", "import { Controller } from \"@hotwired/stimulus\"\nimport $fp from \"lodash/fp\";\n\n// Connects to data-controller=\"kakao-postcode\"\nexport default class extends Controller {\n  connect() {\n    $(\"#postcodeModal\").on(\"show.bs.modal\", this.onModalShow);\n    $(\"#postcodeModal\").on(\"hidden.bs.modal\", function () {\n      setTimeout(function () {\n        document.querySelector(\"#preregistration_address_2\").focus();\n      }, 100);\n    });\n  }\n\n  onModalShow(e){\n    const $modal = $($fp.get(\"target\", e));\n    const $modalBody = $modal.find(\".modal-body\");\n\n    const getDeviceWidth = () => {\n      return window.innerWidth || document.documentElement.clientWidth;\n    };\n\n    const initializeModal = $fp.curry(($modalBody, deviceWidth) => {\n      const modalBodyMaxWidth = 500;\n      const modalXMargin = 8;\n      const borderSize = 1; // border \uD06C\uAE30\n\n      const width =\n        deviceWidth >= modalBodyMaxWidth\n          ? modalBodyMaxWidth - borderSize\n          : deviceWidth - modalXMargin * 2 - borderSize * 2;\n      const height =\n        deviceWidth >= modalBodyMaxWidth\n          ? 444 // daum postcode pc \uAE30\uBCF8\uB192\uC774\n          : 466; // daum postcode mobile \uAE30\uBCF8 \uB192\uC774\n\n      $modalBody.css({\n        width: `${width}px`,\n        height: `${height}px`, // resize \uBC18\uD658\uAC12\uC758 \uAE30\uBCF8\uAC12\n        \"max-width\": `${width + borderSize + modalXMargin}px`,\n        overflow: \"hidden\",\n      });\n    }\n  );\n\n    const onComplete = (data) => {\n      document.querySelector(\"#preregistration_zip_code\").value = data.zonecode;\n      document.querySelector(\"#preregistration_zip_code_hidden\").value =\n        data.zonecode;\n      document.querySelector(\n        \"#preregistration_address_1\"\n      ).value = `${data.address} ${data.buildingName} `;\n      document.querySelector(\n        \"#preregistration_address_1_hidden\"\n      ).value = `${data.address} ${data.buildingName} `;\n     \n      $(\"#postcodeModal\").modal(\"hide\");\n    };\n\n    const onResize = $fp.curry(($modalBody, borderSize, size) => {\n      $modalBody.css({\n        height: `${$fp.get(\"height\", size) + borderSize * 2 + 30}`,\n      });\n    })($modalBody, 1);\n\n    new daum.Postcode({\n      oncomplete: onComplete,\n      onresize: onResize,\n      width: \"100%\",\n      height: \"100%\",\n    }).embed($modalBody.get(0));\n\n    const composer = $fp.pipe(getDeviceWidth, initializeModal($modalBody));\n\n    composer();\n  };\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"modal\"\nexport default class extends Controller {\n  initialize() {\n    super.initialize();\n    $(\".modal\").on(\"shown.bs.modal\", function (e) {\n      $(this).find(\"[autofocus]:first\").focus();\n    });\n  }\n\n  connect() {\n    // console.log(\"modal controller connected\");\n    this.modal = new bootstrap.Modal(this.element, {\n      keyboard: false,\n    });\n    this.modal.show();\n  }\n\n  disconnect() {\n    this.modal.hide();\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"open-type\"\nexport default class extends Controller {\n  static targets = [\"openType\", \"preregFee\", \"preregFeeOnline\"];\n  static values = { opening: String };\n\n  connect() {\n    console.log(\"Open Type Controller connected...\");\n    this.changeOpenType(this.openingValue);\n  }\n\n  handleChangeOpenType(event) {\n    const openType = event.target.value;\n    this.changeOpenType(openType);\n  }\n\n  changeOpenType(open_type) {\n    if (open_type === \"0\") {\n      this.preregFeeTarget.classList.remove(\"hidden\");\n      this.preregFeeOnlineTarget.classList.add(\"hidden\");\n    } else if (open_type === \"1\") {\n      this.preregFeeTarget.classList.add(\"hidden\");\n      this.preregFeeOnlineTarget.classList.remove(\"hidden\");\n    } else {\n      this.preregFeeTarget.classList.remove(\"hidden\");\n      this.preregFeeOnlineTarget.classList.remove(\"hidden\");\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\nimport { Chart, ArcElement, Tooltip, Legend, PieController } from 'chart.js'\n\nChart.register(ArcElement, Tooltip, Legend, PieController)\n\nexport default class extends Controller {\n  static values = {\n    mode: String,\n    confirmed: Number,\n    unconfirmed: Number,\n    card: Number,\n    easyPay: Number,\n    feeWaived: Number,\n    online: Number,\n    offline: Number,\n    gsMember: Number,\n    nonMember: Number,\n    over70: Number,\n    owner: Number,\n    salary: Number,\n    resident: Number,\n    other: Number,\n    total: Number\n  }\n\n  connect() {\n    // Turbo Preview \uBAA8\uB4DC\uC77C \uB54C\uB294 \uB80C\uB354\uB9C1\uD558\uC9C0 \uC54A\uC74C\n    if (document.documentElement.hasAttribute(\"data-turbo-preview\")) return\n\n    this.renderChart()\n  }\n\n  disconnect() {\n    this.destroyChart()\n  }\n\n  destroyChart() {\n    if (this.chart) {\n      this.chart.destroy()\n      this.chart = null\n    }\n  }\n\n  renderChart() {\n    const canvas = this.element.querySelector('canvas')\n    if (!canvas) return\n\n    const ctx = canvas.getContext('2d')\n    \n    // Canvas\uC5D0 \uC5F0\uACB0\uB41C \uAE30\uC874 Chart \uC778\uC2A4\uD134\uC2A4\uAC00 \uC788\uB2E4\uBA74 \uAC15\uC81C\uB85C \uD30C\uAD34\n    const existingChart = Chart.getChart(canvas)\n    if (existingChart) {\n      existingChart.destroy()\n    }\n\n    // \uCEE8\uD2B8\uB864\uB7EC \uB808\uBCA8\uC758 \uCC28\uD2B8 \uC778\uC2A4\uD134\uC2A4 \uC815\uB9AC\n    if (this.chart) {\n      this.chart.destroy()\n      this.chart = null\n    }\n\n    switch(this.modeValue) {\n      case 'payment_method':\n        this.renderPaymentMethodChart(ctx)\n        break\n      case 'online':\n        this.renderOnlineChart(ctx)\n        break\n      case 'member_type':\n        this.renderMemberTypeChart(ctx)\n        break\n      case 'position_type':\n        this.renderPositionTypeChart(ctx)\n        break\n      default:\n        this.renderConfirmationChart(ctx)\n    }\n  }\n\n  renderConfirmationChart(ctx) {\n    const total = this.confirmedValue + this.unconfirmedValue\n\n    if (total === 0) {\n      this.showNoData()\n      return\n    }\n\n    this.chart = new Chart(ctx, {\n      type: 'pie',\n      data: {\n        labels: ['\uC785\uAE08\uD655\uC778', '\uC785\uAE08\uBBF8\uD655\uC778'],\n        datasets: [{\n          data: [this.confirmedValue, this.unconfirmedValue],\n          backgroundColor: ['#198754', '#6c757d'],\n          borderWidth: 2,\n          borderColor: '#fff'\n        }]\n      },\n      options: {\n        responsive: true,\n        maintainAspectRatio: true,\n        plugins: {\n          legend: {\n            position: 'bottom',\n            labels: {\n              padding: 15,\n              font: {\n                size: 13\n              }\n            }\n          },\n          tooltip: {\n            callbacks: {\n              label: (context) => {\n                const label = context.label || ''\n                const value = context.parsed || 0\n                const percentage = ((value / total) * 100).toFixed(1)\n                return `${label}: ${value}\uBA85 (${percentage}%)`\n              }\n            }\n          }\n        }\n      }\n    })\n  }\n\n  renderPaymentMethodChart(ctx) {\n    const total = this.totalValue\n\n    if (total === 0) {\n      this.showNoData()\n      return\n    }\n\n    const data = [this.cardValue, this.easyPayValue, this.feeWaivedValue]\n    const labels = ['\uCE74\uB4DC\uACB0\uC81C', '\uAC04\uD3B8\uACB0\uC81C', '\uCC38\uAC00\uBE44 \uBA74\uC81C']\n    const colors = ['#0d6efd', '#20c997', '#ffc107']\n\n    this.chart = new Chart(ctx, {\n      type: 'pie',\n      data: {\n        labels: labels,\n        datasets: [{\n          data: data,\n          backgroundColor: colors,\n          borderWidth: 2,\n          borderColor: '#fff'\n        }]\n      },\n      options: {\n        responsive: true,\n        maintainAspectRatio: true,\n        plugins: {\n          legend: {\n            position: 'bottom',\n            labels: {\n              padding: 15,\n              font: {\n                size: 13\n              }\n            }\n          },\n          tooltip: {\n            callbacks: {\n              label: (context) => {\n                const label = context.label || ''\n                const value = context.parsed || 0\n                const percentage = ((value / total) * 100).toFixed(1)\n                return `${label}: ${value}\uBA85 (${percentage}%)`\n              }\n            }\n          }\n        }\n      }\n    })\n  }\n\n  renderOnlineChart(ctx) {\n    const total = this.totalValue\n\n    if (total === 0) {\n      this.showNoData()\n      return\n    }\n\n    const data = [this.onlineValue, this.offlineValue]\n    const labels = ['\uC628\uB77C\uC778', '\uC624\uD504\uB77C\uC778']\n    const colors = ['#0dcaf0', '#6c757d']\n\n    this.renderPieChart(ctx, data, labels, colors, total)\n  }\n\n  renderMemberTypeChart(ctx) {\n    const total = this.totalValue\n\n    if (total === 0) {\n      this.showNoData()\n      return\n    }\n\n    const data = [this.gsMemberValue, this.nonMemberValue, this.over70Value]\n    const labels = ['\uC678\uACFC\uC758\uC0AC\uD68C\uC6D0', '\uBE44\uD68C\uC6D0', '\uB9CC70\uC138\uC774\uC0C1']\n    const colors = ['#0d6efd', '#6c757d', '#ffc107']\n\n    this.renderPieChart(ctx, data, labels, colors, total)\n  }\n\n  renderPositionTypeChart(ctx) {\n    const total = this.totalValue\n\n    if (total === 0) {\n      this.showNoData()\n      return\n    }\n\n    const data = [this.ownerValue, this.salaryValue, this.residentValue, this.otherValue]\n    const labels = ['\uAC1C\uC6D0\uC758', '\uBD09\uC9C1\uC758', '\uC804\uACF5\uC758', '\uAE30\uD0C0']\n    const colors = ['#198754', '#0dcaf0', '#6610f2', '#fd7e14']\n\n    this.renderPieChart(ctx, data, labels, colors, total)\n  }\n\n  renderPieChart(ctx, data, labels, colors, total) {\n    this.chart = new Chart(ctx, {\n      type: 'pie',\n      data: {\n        labels: labels,\n        datasets: [{\n          data: data,\n          backgroundColor: colors,\n          borderWidth: 2,\n          borderColor: '#fff'\n        }]\n      },\n      options: {\n        responsive: true,\n        maintainAspectRatio: true,\n        plugins: {\n          legend: {\n            position: 'bottom',\n            labels: {\n              padding: 15,\n              font: {\n                size: 13\n              }\n            }\n          },\n          tooltip: {\n            callbacks: {\n              label: (context) => {\n                const label = context.label || ''\n                const value = context.parsed || 0\n                const percentage = ((value / total) * 100).toFixed(1)\n                return `${label}: ${value}\uBA85 (${percentage}%)`\n              }\n            }\n          }\n        }\n      }\n    })\n  }\n\n  showNoData() {\n    const canvas = this.element.querySelector('canvas')\n    this.element.querySelector('.chart-no-data').classList.remove('d-none')\n    canvas.classList.add('d-none')\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n  static targets = [\"refreshIcon\"];\n\n  connect() {\n    // console.log(\"Payment controller connected\");\n  }\n\n  refresh(event) {\n    event.preventDefault();\n    console.log(\"Refresh method called\");\n\n    const link = event.currentTarget;\n    const originalIcon = link.innerHTML;\n    const originalTitle = link.title;\n\n    console.log(\"Refresh clicked, original icon:\", originalIcon);\n\n    // \uB85C\uB529 \uC0C1\uD0DC \uD45C\uC2DC - Bootstrap spinner \uC0AC\uC6A9\n    link.innerHTML =\n      '<span class=\"spinner-border spinner-border-sm text-primary\" role=\"status\" aria-hidden=\"true\" style=\"width: 1rem; height: 1rem;\"></span>';\n    link.title = \"\uC5C5\uB370\uC774\uD2B8 \uC911...\";\n    link.style.pointerEvents = \"none\";\n    link.style.opacity = \"0.6\";\n\n    console.log(\"Loading icon set:\", link.innerHTML);\n\n    // \uC6D0\uB798 \uB9C1\uD06C \uB3D9\uC791 \uC2E4\uD589\n    const url = link.href;\n    const confirmMessage = link.getAttribute(\"data-turbo-confirm\");\n\n    if (confirmMessage && !confirm(confirmMessage)) {\n      // \uC0AC\uC6A9\uC790\uAC00 \uCDE8\uC18C\uD55C \uACBD\uC6B0 \uC6D0\uB798 \uC0C1\uD0DC\uB85C \uBCF5\uC6D0\n      this.restoreIcon(link, originalIcon, originalTitle);\n      return;\n    }\n\n    // POST \uC694\uCCAD \uC2E4\uD589\n    fetch(url, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]')\n          .content,\n        Accept: \"text/html\",\n      },\n    })\n      .then((response) => {\n        // 422 \uC0C1\uD0DC \uCF54\uB4DC\uB3C4 \uCC98\uB9AC (\uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uAC00 \uBDF0\uC5D0 \uD3EC\uD568\uB418\uC5B4 \uC788\uC74C)\n        if (response.ok || response.status === 422) {\n          return response.text();\n        } else {\n          throw new Error(`HTTP error! status: ${response.status}`);\n        }\n      })\n      .then((html) => {\n        // Turbo Frame \uC5C5\uB370\uC774\uD2B8\n        const paymentController = this.element.closest(\n          '[data-controller=\"payment\"]'\n        );\n        const turboFrame = paymentController.closest(\"turbo-frame\");\n\n        if (turboFrame) {\n          // Turbo Frame\uC774 \uC788\uB294 \uACBD\uC6B0 \uC804\uCCB4 Frame \uB0B4\uC6A9\uC744 \uC5C5\uB370\uC774\uD2B8\n          turboFrame.innerHTML = html;\n\n          // \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778\n          const errorElement = turboFrame.querySelector(\"[data-payment-error]\");\n          if (errorElement && typeof showAlertModal === \"function\") {\n            const errorMessage =\n              errorElement.getAttribute(\"data-payment-error\");\n            if (errorMessage) {\n              showAlertModal(`\uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: ${errorMessage}`, \"danger\");\n            }\n          }\n        } else {\n          // Turbo Frame\uC774 \uC5C6\uB294 \uACBD\uC6B0 payment controller \uC601\uC5ED\uB9CC \uC5C5\uB370\uC774\uD2B8\n          const paymentDetailDiv = paymentController.parentElement;\n          if (paymentDetailDiv) {\n            paymentDetailDiv.innerHTML = html;\n\n            // \uC5D0\uB7EC \uBA54\uC2DC\uC9C0\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778\n            const errorElement = paymentDetailDiv.querySelector(\n              \"[data-payment-error]\"\n            );\n            if (errorElement && typeof showAlertModal === \"function\") {\n              const errorMessage =\n                errorElement.getAttribute(\"data-payment-error\");\n              if (errorMessage) {\n                showAlertModal(`\uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328: ${errorMessage}`, \"danger\");\n              }\n            }\n          }\n        }\n        this.restoreIcon(link, originalIcon, originalTitle);\n      })\n      .catch((error) => {\n        console.error(\"Error:\", error);\n        if (typeof showAlertModal === \"function\") {\n          showAlertModal(\"\uC5C5\uB370\uC774\uD2B8 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.\", \"danger\");\n        } else {\n          alert(\"\uC5C5\uB370\uC774\uD2B8 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.\");\n        }\n        this.restoreIcon(link, originalIcon, originalTitle);\n      });\n  }\n\n  restoreIcon(link, originalIcon, originalTitle) {\n    link.innerHTML = originalIcon;\n    link.title = originalTitle;\n    link.style.pointerEvents = \"auto\";\n    link.style.opacity = \"1\";\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"content\"]\n\n  connect() {\n    // console.log(\"Popup preview controller connected\")\n  }\n\n  showPreview(event) {\n    const button = event.currentTarget\n    const title = button.dataset.popupTitle\n    const popupId = button.dataset.popupId\n    \n    // \uBBF8\uB9AC\uBCF4\uAE30 \uBAA8\uB2EC\uC758 \uC81C\uBAA9 \uC5C5\uB370\uC774\uD2B8\n    const modalLabel = document.getElementById('previewModalLabel')\n    if (modalLabel) modalLabel.textContent = title\n    \n    // AJAX\uB85C \uD31D\uC5C5 \uBAA8\uB2EC \uB0B4\uC6A9\uC744 \uAC00\uC838\uC624\uAE30\n    fetch(`/admin/popup_modals/${popupId}`, {\n      headers: {\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest'\n      }\n    })\n    .then(response => response.json())\n    .then(data => {\n      const contentArea = document.getElementById('previewContent')\n      if (contentArea) contentArea.innerHTML = data.content\n      \n      this.setupModalHideHandler(popupId)\n    })\n    .catch(error => {\n      console.error('Error:', error)\n      const contentArea = document.getElementById('previewContent')\n      if (contentArea) contentArea.innerHTML = '<p class=\"text-danger\">\uB0B4\uC6A9\uC744 \uBD88\uB7EC\uC624\uB294\uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.</p>'\n    })\n  }\n\n  setupModalHideHandler(popupId) {\n    const previewModal = document.getElementById('previewModal')\n    if (!previewModal) return\n\n    const hideHandler = () => {\n      const checkbox = document.getElementById('noMoreTodayPreview')\n      const today = new Date().toISOString().split('T')[0].replace(/-/g, '')\n      const modalKey = `popup_modal_${popupId}_no_more_today_${today}`\n      \n      if (checkbox && checkbox.checked) {\n        sessionStorage.setItem(modalKey, 'true')\n      }\n      \n      if (checkbox) checkbox.checked = false\n      previewModal.removeEventListener('hidden.bs.modal', hideHandler)\n    }\n    \n    previewModal.addEventListener('hidden.bs.modal', hideHandler)\n  }\n\n  previewAll() {\n    fetch('/admin/popup_modals/preview_all', {\n      headers: {\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest'\n      }\n    })\n    .then(response => response.json())\n    .then(data => {\n      if (data.popups && data.popups.length > 0) {\n        this.showAllPopups(data.popups)\n      } else {\n        this.showAlert(window.t_no_active_popups || '\uD65C\uC131\uD654\uB41C \uD31D\uC5C5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.')\n      }\n    })\n    .catch(error => {\n      console.error('Error:', error)\n      this.showAlert(window.t_fetch_failed || '\uB370\uC774\uD130\uB97C \uAC00\uC838\uC624\uB294\uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.')\n    })\n  }\n\n  showAllPopups(popups) {\n    document.querySelectorAll('.preview-popup-modal').forEach(popup => popup.remove())\n    \n    popups.forEach((popup, index) => {\n      setTimeout(() => {\n        this.createAndShowPopup(popup)\n      }, index * 500) // \uC880 \uB354 \uBE60\uB974\uAC8C \uD45C\uC2DC\n    });\n  }\n\n  createAndShowPopup(popup) {\n    const modalId = `previewPopup${popup.id}`\n    const modalHtml = `\n      <div class=\"modal fade preview-popup-modal\" id=\"${modalId}\" tabindex=\"-1\" aria-hidden=\"true\">\n        <div class=\"modal-dialog modal-lg modal-dialog-centered\">\n          <div class=\"modal-content\">\n            <div class=\"modal-header\">\n              <h5 class=\"modal-title\">${popup.title}</h5>\n              <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\n            </div>\n            <div class=\"modal-body\" style=\"padding: 0;\">\n              <div class=\"popup-modal-content\">\n                ${popup.content}\n              </div>\n            </div>\n            <div class=\"modal-footer\">\n              <div class=\"form-check me-auto\">\n                <input class=\"form-check-input\" type=\"checkbox\" id=\"noMoreTodayAll${popup.id}\">\n                <label class=\"form-check-label\" for=\"noMoreTodayAll${popup.id}\">\uC624\uB298 \uD558\uB8E8 \uC5F4\uC9C0 \uC54A\uAE30</label>\n              </div>\n              <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">\uB2EB\uAE30</button>\n            </div>\n          </div>\n        </div>\n      </div>\n    `\n    \n    document.body.insertAdjacentHTML('beforeend', modalHtml)\n    const modalElement = document.getElementById(modalId)\n    const modal = new bootstrap.Modal(modalElement)\n    \n    modalElement.addEventListener('hidden.bs.modal', () => {\n      const checkbox = document.getElementById(`noMoreTodayAll${popup.id}`)\n      if (checkbox && checkbox.checked) {\n        const today = new Date().toISOString().split('T')[0].replace(/-/g, '')\n        sessionStorage.setItem(`popup_modal_${popup.id}_no_more_today_${today}`, 'true')\n      }\n      modalElement.remove()\n    })\n    \n    modal.show()\n  }\n\n  showAlert(message) {\n    if (window.showAlertModal) {\n      window.showAlertModal(message)\n    } else {\n      alert(message)\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"preregister\"\nexport default class extends Controller {\n  static targets = [\n    \"dob\",\n    \"amountDisabled\",\n    \"amountHidden\",\n    \"onlineRadio\",\n    \"offlineRadio\",\n  ];\n  static values = {\n    fee: Number,\n    feeOnline: Number,\n  };\n\n  connect() {\n    let online = document.querySelector(\n      'input[name=\"preregistration[online]\"]:checked'\n    );\n    let position_type_cd = document.querySelector(\n      'input[name=\"preregistration[position_type_cd]\"]:checked'\n    );\n    let member_type_cd = document.querySelector(\n      'input[name=\"preregistration[member_type_cd]\"]:checked'\n    );\n\n    this.populateAmount(online.value);\n\n    // \uC784\uC6D0(member_type_cd === 4) \uC120\uD0DD \uC2DC \uC804\uACF5\uC758/\uAD70\uC758\uAD00/\uACF5\uBCF4\uC758 \uBE44\uD65C\uC131\uD654\n    if (member_type_cd && member_type_cd.value === \"4\") {\n      this.setExecutiveRestriction(true);\n    }\n\n    // \uC804\uACF5\uC758(3): 0\uC6D0 / \uAD70\uC758\uAD00(4), \uACF5\uBCF4\uC758(5): \uC624\uD504\uB77C\uC778 0\uC6D0 \uC628\uB77C\uC778 \uC720\uB8CC\n    // \uB9CC70\uC138\uC774\uC0C1(member_type_cd === 3), \uC784\uC6D0(member_type_cd === 4): 0\uC6D0\n    if (position_type_cd && [\"3\", \"4\", \"5\"].includes(position_type_cd.value)) {\n      this.updateAmount(member_type_cd ? +member_type_cd.value : null, +position_type_cd.value);\n    } else if (member_type_cd && (member_type_cd.value === \"3\" || member_type_cd.value === \"4\")) {\n      this.updateAmount(+member_type_cd.value);\n    }\n  }\n\n  // \uC784\uC6D0 \uC120\uD0DD \uC2DC \uC804\uACF5\uC758/\uAD70\uC758\uAD00/\uACF5\uBCF4\uC758 \uBE44\uD65C\uC131\uD654 \uCC98\uB9AC\n  setExecutiveRestriction(restrict) {\n    [3, 4, 5].forEach((cd) => {\n      const el = document.getElementById(`preregistration_position_type_cd_${cd}`);\n      if (!el) return;\n      el.disabled = restrict;\n      if (restrict && el.checked) {\n        el.checked = false;\n      }\n    });\n  }\n\n  // \uCC38\uAC00\uBC29\uBC95 : \uC624\uD504\uB77C\uC778\uC2E0\uCCAD(false), \uC628\uB77C\uC778\uC2E0\uCCAD(true)\n  setFee(e) {\n    document\n      .querySelectorAll('input[name=\"preregistration[position_type_cd]\"]')\n      .forEach((el) => {\n        el.checked = false;\n      });\n    document\n      .querySelectorAll('input[name=\"preregistration[member_type_cd]\"]')\n      .forEach((el) => {\n        el.checked = false;\n      });\n\n    // \uC628\uB77C\uC778/\uC624\uD504\uB77C\uC778\uC5D0 \uB530\uB978 \uAE30\uBCF8 \uAE08\uC561 \uC124\uC815\n    this.populateAmount(e.target.value);\n\n    // \uAE30\uBCF8 \uAE08\uC561\uC744 \uD654\uBA74\uC5D0 \uD45C\uC2DC\n    this.amountDisabledTarget.value = this.amount;\n    this.amountHiddenTarget.value = this.amount;\n\n    console.log(e.target.value);\n  }\n\n  populateAmount(online_value) {\n    let member_type_cd = document.querySelector(\n      'input[name=\"preregistration[member_type_cd]\"]:checked'\n    );\n    this.amount = online_value === \"true\" ? this.feeOnlineValue : this.feeValue;\n\n    if (member_type_cd !== null) this.checkOver70(+member_type_cd.value);\n    // console.log(this.amount);\n  }\n\n  // \uD68C\uC6D0\uAD6C\uBD84 \uD074\uB9AD \uD578\uB4E4\uB7EC\n  handleClick(e) {\n    let member_code = +e.target.value;\n\n    // \uC784\uC6D0(4) \uC120\uD0DD \uC2DC \uC804\uACF5\uC758/\uAD70\uC758\uAD00/\uACF5\uBCF4\uC758 \uBE44\uD65C\uC131\uD654, \uB2E4\uB978 \uD68C\uC6D0\uAD6C\uBD84 \uC120\uD0DD \uC2DC \uD65C\uC131\uD654\n    this.setExecutiveRestriction(member_code === 4);\n\n    // \uADFC\uBB34\uD615\uD0DC \uC120\uD0DD \uCD08\uAE30\uD654\n    document\n      .querySelectorAll('input[name=\"preregistration[position_type_cd]\"]')\n      .forEach((el) => {\n        el.checked = false;\n      });\n\n    // \uD604\uC7AC \uC120\uD0DD\uB41C \uCC38\uAC00\uBC29\uBC95(\uC628\uB77C\uC778/\uC624\uD504\uB77C\uC778)\uC744 \uD655\uC778\n    let online = document.querySelector(\n      'input[name=\"preregistration[online]\"]:checked'\n    );\n\n    // \uCC38\uAC00\uBC29\uBC95\uC5D0 \uB530\uB978 \uAE30\uBCF8 \uAE08\uC561 \uC7AC\uC124\uC815\n    if (online) {\n      this.populateAmount(online.value);\n    }\n\n    this.updateAmount(member_code);\n  }\n\n  // \uD68C\uC6D0\uAD6C\uBD84 : \uB300\uD55C\uC678\uACFC\uD68C\uC6D0, \uBE44\uD68C\uC6D0 \uBC0F \uD0C0\uACFC\uD68C\uC6D0, \uB9CC 70\uC138\uC774\uC0C1, \uC784\uC6D0\n  checkOver70(member_code) {\n    if (member_code === 3) {\n      this.dobTarget.classList.remove(\"hidden\");\n    } else {\n      this.dobTarget.classList.add(\"hidden\");\n    }\n    this.updateAmount(member_code);\n  }\n\n  handleClickPositionType(e) {\n    // console.log(this.offlineRadioTarget.checked);\n    let position_type_cd = +e.target.value;\n    const member_type_cd = document.querySelector(\n      'input[name=\"preregistration[member_type_cd]\"]:checked'\n    );\n\n    // \uC804\uACF5\uC758(3): \uC624\uD504\uB77C\uC778 \uAC15\uC81C + \uBE44\uD68C\uC6D0 \uAC15\uC81C\n    if (position_type_cd === 3) {\n      if (this.onlineRadioTarget.checked) {\n        this.offlineRadioTarget.checked = true;\n        this.onlineRadioTarget.checked = false;\n      }\n      document.getElementById(\"preregistration_member_type_cd_2\").checked = true;\n    }\n\n    // \uD604\uC7AC \uC120\uD0DD\uB41C \uCC38\uAC00\uBC29\uBC95(\uC628\uB77C\uC778/\uC624\uD504\uB77C\uC778)\uC744 \uD655\uC778\uD558\uC5EC \uAE30\uBCF8 \uAE08\uC561 \uC7AC\uC124\uC815\n    let online = document.querySelector(\n      'input[name=\"preregistration[online]\"]:checked'\n    );\n\n    if (online) {\n      this.populateAmount(online.value);\n    }\n\n    this.updateAmount(\n      member_type_cd ? +member_type_cd.value : null,\n      position_type_cd\n    );\n  }\n\n  // \uAE08\uC561 \uC5C5\uB370\uC774\uD2B8 \uD568\uC218\n  updateAmount(member_code, position_type_cd = null) {\n    // \uAD70\uC758\uAD00(4), \uACF5\uBCF4\uC758(5): \uD68C\uC6D0\uAD6C\uBD84(\uB9CC70\uC138\uC774\uC0C1/\uC784\uC6D0) \uC6B0\uC120, \uADF8 \uC678 \uC624\uD504\uB77C\uC778 \uBB34\uB8CC / \uC628\uB77C\uC778 \uC720\uB8CC\n    if (position_type_cd === 4 || position_type_cd === 5) {\n      if (member_code !== 3 && member_code !== 4) {\n        const isOnline = document.querySelector(\n          'input[name=\"preregistration[online]\"]:checked'\n        )?.value === \"true\";\n        const fee = isOnline ? this.feeOnlineValue : \"0\";\n        this.amountDisabledTarget.value = fee;\n        this.amountHiddenTarget.value = fee;\n        return;\n      }\n    }\n\n    // \uC804\uACF5\uC758(3), \uB9CC70\uC138\uC774\uC0C1(member_type_cd === 3), \uC784\uC6D0(member_type_cd === 4): 0\uC6D0\n    const isZeroFee = member_code === 3 || member_code === 4 || position_type_cd === 3;\n\n    // \uD0C0\uACFC \uBC0F \uBE44\uD68C\uC6D0\uC778 \uACBD\uC6B0 \uAE08\uC561\uC744 online \uAE08\uC561\uC73C\uB85C \uC124\uC815\n    // \uB2E8, \uC804\uACF5\uC758\uC778 \uACBD\uC6B0\uB294 \uBB34\uC870\uAC74 0\uC6D0\n    if (member_code === 2 && position_type_cd !== 3) {\n      this.amountDisabledTarget.value = this.feeOnlineValue;\n      this.amountHiddenTarget.value = this.feeOnlineValue;\n    } else {\n      this.amountDisabledTarget.value = isZeroFee ? \"0\" : this.amount;\n      this.amountHiddenTarget.value = isZeroFee ? \"0\" : this.amount;\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n// Connects to data-controller=\"search\"\nexport default class extends Controller {\n  static targets = ['memberTypeCd', 'positionTypeCd', 'confirmed', 'fullName', 'licenseNo']\n  static values = {\n    conferenceId: Number,\n  }\n  connect() { }\n\n  async incrementalSearch(){\n    let url = `/admin/conferences/${this.conferenceIdValue}/preregistrations?member_type_cd=${this.memberTypeCdTarget.value}&position_type_cd=${this.positionTypeCdTarget.value}&confirmed=${this.confirmedTarget.value}&full_name=${this.fullNameTarget.value}&license_no=${this.licenseNoTarget.value}`\n    const request = new FetchRequest('get', url, { responseKind: \"turbo-stream\" })\n    const response = await request.perform()\n    if (response.ok) {\n      const body = await response.text\n      // Do whatever do you want with the response body\n      // You also are able to call `response.html` or `response.json`, be aware that if you call `response.json` and the response contentType isn't `application/json` there will be raised an error.\n      if(this.memberTypeCdTarget.value == \"\" &&\n      this.positionTypeCdTarget.value == \"\" &&\n      this.confirmedTarget.value == \"\" &&\n      this.fullNameTarget.value == \"\" &&\n      this.licenseNoTarget.value == \"\") {\n        window.history.pushState(\"\", \"\", url.split('?')[0]);\n      } else {\n        window.history.pushState(\"\", \"\", url);\n      }\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"section\"\nexport default class extends Controller {\n  connect() {\n    this.element.focus();\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"tabs\"\nexport default class extends Controller {\n  connect() {\n    const pillsTab = document.querySelector(\"#pills-tab\");\n    const pills = pillsTab.querySelectorAll('button[data-bs-toggle=\"pill\"]');\n    pills.forEach((pill) => {\n      pill.addEventListener(\"shown.bs.tab\", (event) => {\n        const { target } = event;\n        const { id: targetId } = target;\n        savePillId(targetId);\n      });\n    });\n    const savePillId = (selector) => {\n      localStorage.setItem(\"activePillId\", selector);\n    };\n    const getPillId = () => {\n      const activePillId = localStorage.getItem(\"activePillId\");\n      // if local storage item is null, show default tab\n      if (!activePillId) return;\n      // call 'show' function\n      const someTabTriggerEl = document.querySelector(`#${activePillId}`);\n      const tab = new bootstrap.Tab(someTabTriggerEl);\n      tab.show();\n    };\n    // get pill id on load\n    getPillId();\n  }\n}\n", "import tinymce from \"tinymce/tinymce\";\nimport { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n  static targets = [\"input\"];\n\n  initialize() {\n    this.defaults = {\n      base_url: \"/assets/tinymce\",\n      menubar: \"file edit view insert format tools table\",\n      plugins: \"fullscreen lists link image table code help wordcount\",\n      toolbar:\n        \"undo redo | styleselect | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image table | code | fullscreen\",\n      toolbar_sticky: true,\n      images_upload_handler: (blobInfo, progress) => {\n        console.log('TinyMCE image upload started', { \n          filename: blobInfo.filename(), \n          size: blobInfo.blob().size \n        });\n        \n        // Promise\uB9CC \uBC18\uD658\uD558\uB294 \uBC29\uC2DD (TinyMCE 5+ \uD638\uD658)\n        return new Promise((resolve, reject) => {\n          // CSRF \uD1A0\uD070 \uAC00\uC838\uC624\uAE30\n          const metaTag = document.querySelector('meta[name=\"csrf-token\"]');\n          if (!metaTag) {\n            console.error('CSRF meta tag not found');\n            reject('CSRF token not found');\n            return;\n          }\n          \n          const token = metaTag.getAttribute('content');\n          if (!token) {\n            console.error('CSRF token is empty');\n            reject('CSRF token is empty');\n            return;\n          }\n\n          console.log('CSRF token found, preparing upload...');\n\n          // XMLHttpRequest \uC0AC\uC6A9 (\uB354 \uC548\uC815\uC801)\n          const xhr = new XMLHttpRequest();\n          const formData = new FormData();\n          \n          formData.append('file', blobInfo.blob(), blobInfo.filename());\n          \n          xhr.open('POST', '/image_uploader/image', true);\n          xhr.setRequestHeader('X-CSRF-Token', token);\n          \n          // Progress \uC5C5\uB370\uC774\uD2B8\n          xhr.upload.onprogress = function(e) {\n            if (e.lengthComputable && progress) {\n              const percentComplete = (e.loaded / e.total) * 100;\n              progress(percentComplete);\n            }\n          };\n          \n          xhr.onload = function() {\n            console.log('Upload response received', { \n              status: xhr.status, \n              responseText: xhr.responseText \n            });\n            \n            if (xhr.status === 200) {\n              try {\n                const data = JSON.parse(xhr.responseText);\n                if (data.location) {\n                  console.log('Upload successful', { location: data.location });\n                  resolve(data.location);\n                } else {\n                  console.error('Upload failed - no location in response', data);\n                  reject(data.error || 'Upload failed - no location returned');\n                }\n              } catch (e) {\n                console.error('JSON parse error', e, xhr.responseText);\n                reject('Invalid JSON response');\n              }\n            } else {\n              try {\n                const errorData = JSON.parse(xhr.responseText);\n                console.error('Upload failed with error', errorData);\n                reject(errorData.error || `HTTP error ${xhr.status}`);\n              } catch (e) {\n                console.error('Upload failed', { status: xhr.status, statusText: xhr.statusText });\n                reject(`HTTP error ${xhr.status}: ${xhr.statusText}`);\n              }\n            }\n          };\n          \n          xhr.onerror = function() {\n            console.error('Network error during upload');\n            reject('Network error occurred');\n          };\n          \n          xhr.ontimeout = function() {\n            console.error('Upload timeout');\n            reject('Upload timeout');\n          };\n          \n          xhr.timeout = 30000; // 30\uCD08 \uD0C0\uC784\uC544\uC6C3\n          \n          console.log('Sending upload request...');\n          xhr.send(formData);\n        });\n      },\n      file_picker_types: \"file image media\",\n      suffix: \".min\",\n      relative_urls: false,\n      // skin: window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n      //   ? \"oxide-dark\"\n      //   : \"oxide\",\n      // content_css: window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n      //   ? \"dark\"\n      //   : \"default\",\n    };\n  }\n\n  connect() {\n    // Initialize the app\n    let config = Object.assign({ target: this.inputTarget }, this.defaults);\n    tinymce.init(config);\n  }\n\n  disconnect() {\n    tinymce.remove();\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"tooltip\"\nexport default class extends Controller {\n  connect() {\n    // Bootstrap tooltip \uCD08\uAE30\uD654\n    if (window.bootstrap) {\n      this.tooltip = new bootstrap.Tooltip(this.element)\n    }\n  }\n\n  disconnect() {\n    // tooltip \uC778\uC2A4\uD134\uC2A4 \uC815\uB9AC\n    if (this.tooltip) {\n      this.tooltip.dispose()\n    }\n  }\n}\n\n", "import { Controller } from \"@hotwired/stimulus\"\nimport { Turbo } from \"@hotwired/turbo-rails\"\n\n// Connects to data-controller=\"turbo\"\nexport default class extends Controller {\n  initialize() {\n    this.element.setAttribute(\"data-action\", \"click->turbo#click\")\n  }\n\n  click(e) {\n    e.preventDefault()\n    this.url = this.element.getAttribute(\"href\")\n    fetch(this.url, {\n      headers: {\n        Accept: \"text/vnd.turbo-stream.html\"\n      }\n    })\n      .then(r => r.text())\n      .then(html => Turbo.renderStreamMessage(html))\n  }\n}", "// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport ChartToggleController from \"./chart_toggle_controller\"\napplication.register(\"chart-toggle\", ChartToggleController)\n\nimport ConfirmController from \"./confirm_controller\"\napplication.register(\"confirm\", ConfirmController)\n\nimport DailyChartController from \"./daily_chart_controller\"\napplication.register(\"daily-chart\", DailyChartController)\n\nimport DepositorController from \"./depositor_controller\"\napplication.register(\"depositor\", DepositorController)\n\nimport IncrementalSearchController from \"./incremental_search_controller\"\napplication.register(\"incremental-search\", IncrementalSearchController)\n\nimport InlineMemoController from \"./inline_memo_controller\"\napplication.register(\"inline-memo\", InlineMemoController)\n\nimport KakaoPostcodeController from \"./kakao_postcode_controller\"\napplication.register(\"kakao-postcode\", KakaoPostcodeController)\n\nimport ModalController from \"./modal_controller\"\napplication.register(\"modal\", ModalController)\n\nimport OpenTypeController from \"./open_type_controller\"\napplication.register(\"open-type\", OpenTypeController)\n\nimport PaymentChartController from \"./payment_chart_controller\"\napplication.register(\"payment-chart\", PaymentChartController)\n\nimport PaymentController from \"./payment_controller\"\napplication.register(\"payment\", PaymentController)\n\nimport PopupPreviewController from \"./popup_preview_controller\"\napplication.register(\"popup-preview\", PopupPreviewController)\n\nimport PreregisterController from \"./preregister_controller\"\napplication.register(\"preregister\", PreregisterController)\n\nimport SearchController from \"./search_controller\"\napplication.register(\"search\", SearchController)\n\nimport SectionController from \"./section_controller\"\napplication.register(\"section\", SectionController)\n\nimport TabsController from \"./tabs_controller\"\napplication.register(\"tabs\", TabsController)\n\nimport TinymceController from \"./tinymce_controller\"\napplication.register(\"tinymce\", TinymceController)\n\nimport TooltipController from \"./tooltip_controller\"\napplication.register(\"tooltip\", TooltipController)\n\nimport TurboController from \"./turbo_controller\"\napplication.register(\"turbo\", TurboController)\n", "import jQuery from 'jquery';\nwindow.jQuery = window.$ = jQuery;\n", "/*\nTrix 2.0.4\nCopyright \u00A9 2022 37signals, LLC\n */\nconst t={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}},e={default:{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test(t){return i(t.parentNode)===e[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test(t){return i(t.parentNode)===e[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}},i=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},n=navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),r=n&&parseInt(n[1]);var o={composesExistingText:/Android.*Chrome/.test(navigator.userAgent),recentAndroid:r&&r>12,samsungAndroid:r&&navigator.userAgent.match(/Android.*SM-/),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:\"undefined\"!=typeof InputEvent&&[\"data\",\"getTargetRanges\",\"inputType\"].every((t=>t in InputEvent.prototype))},s={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",byte:\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption\u2026\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL\u2026\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"};const a=[s.bytes,s.KB,s.MB,s.GB,s.TB,s.PB];var l={prefix:\"IEC\",precision:2,formatter(t){switch(t){case 0:return\"0 \".concat(s.bytes);case 1:return\"1 \".concat(s.byte);default:let e;\"SI\"===this.prefix?e=1e3:\"IEC\"===this.prefix&&(e=1024);const i=Math.floor(Math.log(t)/Math.log(e)),n=(t/Math.pow(e,i)).toFixed(this.precision).replace(/0*$/,\"\").replace(/\\.$/,\"\");return\"\".concat(n,\" \").concat(a[i])}}};const c=function(t){for(const e in t){const i=t[e];this[e]=i}return this},h=document.documentElement,u=h.matches,d=function(t){let{onElement:e,matchingSelector:i,withCallback:n,inPhase:r,preventDefault:o,times:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=e||h,l=i,c=\"capturing\"===r,u=function(t){null!=s&&0==--s&&u.destroy();const e=p(t.target,{matchingSelector:l});null!=e&&(null==n||n.call(e,t,e),o&&t.preventDefault())};return u.destroy=()=>a.removeEventListener(t,u,c),a.addEventListener(t,u,c),u},g=function(t){let{onElement:e,bubbles:i,cancelable:n,attributes:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=null!=e?e:h;i=!1!==i,n=!1!==n;const s=document.createEvent(\"Events\");return s.initEvent(t,i,n),null!=r&&c.call(s,r),o.dispatchEvent(s)},m=function(t,e){if(1===(null==t?void 0:t.nodeType))return u.call(t,e)},p=function(t){let{matchingSelector:e,untilNode:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==e)return t;if(t.closest&&null==i)return t.closest(e);for(;t&&t!==i;){if(m(t,e))return t;t=t.parentNode}}},f=t=>document.activeElement!==t&&b(t,document.activeElement),b=function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},v=function(t){var e;if(null===(e=t)||void 0===e||!e.parentNode)return;let i=0;for(t=t.previousSibling;t;)i++,t=t.previousSibling;return i},A=t=>{var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)},x=function(t){let{onlyNodesOfType:e,usingFilter:i,expandEntityReferences:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(()=>{switch(e){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}})();return document.createTreeWalker(t,r,null!=i?i:null,!0===n)},y=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},C=function(t){let e,i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"object\"==typeof t?(n=t,t=n.tagName):n={attributes:n};const r=document.createElement(t);if(null!=n.editable&&(null==n.attributes&&(n.attributes={}),n.attributes.contenteditable=n.editable),n.attributes)for(e in n.attributes)i=n.attributes[e],r.setAttribute(e,i);if(n.style)for(e in n.style)i=n.style[e],r.style[e]=i;if(n.data)for(e in n.data)i=n.data[e],r.dataset[e]=i;return n.className&&n.className.split(\" \").forEach((t=>{r.classList.add(t)})),n.textContent&&(r.textContent=n.textContent),n.childNodes&&[].concat(n.childNodes).forEach((t=>{r.appendChild(t)})),r};let R;const E=function(){if(null!=R)return R;R=[];for(const t in e){const i=e[t];i.tagName&&R.push(i.tagName)}return R},S=t=>D(null==t?void 0:t.firstChild),k=function(t){return E().includes(y(t))&&!E().includes(y(t.firstChild))},L=function(t){let{strict:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{strict:!0};return e?D(t):D(t)||!D(t.firstChild)&&k(t)},D=t=>w(t)&&\"block\"===(null==t?void 0:t.data),w=t=>(null==t?void 0:t.nodeType)===Node.COMMENT_NODE,T=function(t){let{name:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t)return I(t)?\"\\ufeff\"===t.data?!e||t.parentNode.dataset.trixCursorTarget===e:void 0:T(t.firstChild)},F=t=>m(t,\"[data-trix-attachment]\"),B=t=>I(t)&&\"\"===(null==t?void 0:t.data),I=t=>(null==t?void 0:t.nodeType)===Node.TEXT_NODE,P={level2Enabled:!0,getLevel(){return this.level2Enabled&&o.supportsInputEvents?2:0},pickFiles(t){const e=C(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId});e.addEventListener(\"change\",(()=>{t(e.files),A(e)})),A(document.getElementById(this.fileInputId)),document.body.appendChild(e),e.click()}};var N={removeBlankTableCells:!1,tableCellSeparator:\" | \",tableRowSeparator:\"\\n\"},O={bold:{tagName:\"strong\",inheritable:!0,parser(t){const e=window.getComputedStyle(t);return\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:t=>\"italic\"===window.getComputedStyle(t).fontStyle},href:{groupTagName:\"a\",parser(t){const e=\"a:not(\".concat(\"[data-trix-attachment]\",\")\"),i=t.closest(e);if(i)return i.getAttribute(\"href\")}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}},M={getDefaultHTML:()=>'<div class=\"trix-button-row\">\\n      <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"'.concat(s.bold,'\" tabindex=\"-1\">').concat(s.bold,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"').concat(s.italic,'\" tabindex=\"-1\">').concat(s.italic,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"').concat(s.strike,'\" tabindex=\"-1\">').concat(s.strike,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"').concat(s.link,'\" tabindex=\"-1\">').concat(s.link,'</button>\\n      </span>\\n\\n      <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"').concat(s.heading1,'\" tabindex=\"-1\">').concat(s.heading1,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"').concat(s.quote,'\" tabindex=\"-1\">').concat(s.quote,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"').concat(s.code,'\" tabindex=\"-1\">').concat(s.code,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"').concat(s.bullets,'\" tabindex=\"-1\">').concat(s.bullets,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"').concat(s.numbers,'\" tabindex=\"-1\">').concat(s.numbers,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"').concat(s.outdent,'\" tabindex=\"-1\">').concat(s.outdent,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"').concat(s.indent,'\" tabindex=\"-1\">').concat(s.indent,'</button>\\n      </span>\\n\\n      <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"').concat(s.attachFiles,'\" tabindex=\"-1\">').concat(s.attachFiles,'</button>\\n      </span>\\n\\n      <span class=\"trix-button-group-spacer\"></span>\\n\\n      <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"').concat(s.undo,'\" tabindex=\"-1\">').concat(s.undo,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"').concat(s.redo,'\" tabindex=\"-1\">').concat(s.redo,'</button>\\n      </span>\\n    </div>\\n\\n    <div class=\"trix-dialogs\" data-trix-dialogs>\\n      <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n        <div class=\"trix-dialog__link-fields\">\\n          <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"').concat(s.urlPlaceholder,'\" aria-label=\"').concat(s.url,'\" required data-trix-input>\\n          <div class=\"trix-button-group\">\\n            <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(s.link,'\" data-trix-method=\"setAttribute\">\\n            <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(s.unlink,'\" data-trix-method=\"removeAttribute\">\\n          </div>\\n        </div>\\n      </div>\\n    </div>')};const j={interval:5e3};var W=Object.freeze({__proto__:null,attachments:t,blockAttributes:e,browser:o,css:{attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"},fileSize:l,input:P,keyNames:{8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"},lang:s,parser:N,textAttributes:O,toolbar:M,undo:j});class U{static proxyMethod(t){const{name:e,toMethod:i,toProperty:n,optional:r}=q(t);this.prototype[e]=function(){let t,o;var s,a;i?o=r?null===(s=this[i])||void 0===s?void 0:s.call(this):this[i]():n&&(o=this[n]);return r?(t=null===(a=o)||void 0===a?void 0:a[e],t?V.call(t,o,arguments):void 0):(t=o[e],V.call(t,o,arguments))}}}const q=function(t){const e=t.match(z);if(!e)throw new Error(\"can't parse @proxyMethod expression: \".concat(t));const i={name:e[4]};return null!=e[2]?i.toMethod=e[1]:i.toProperty=e[1],null!=e[3]&&(i.optional=!0),i},{apply:V}=Function.prototype,z=new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");var _,H,J;class K extends U{static box(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";return t instanceof this?t:this.fromUCS2String(null==t?void 0:t.toString())}static fromUCS2String(t){return new this(t,Y(t))}static fromCodepoints(t){return new this(Q(t),t)}constructor(t,e){super(...arguments),this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}offsetToUCS2Offset(t){return Q(this.codepoints.slice(0,Math.max(0,t))).length}offsetFromUCS2Offset(t){return Y(this.ucs2String.slice(0,Math.max(0,t))).length}slice(){return this.constructor.fromCodepoints(this.codepoints.slice(...arguments))}charAt(t){return this.slice(t,t+1)}isEqualTo(t){return this.constructor.box(t).ucs2String===this.ucs2String}toJSON(){return this.ucs2String}getCacheKey(){return this.ucs2String}toString(){return this.ucs2String}}const G=1===(null===(_=Array.from)||void 0===_?void 0:_.call(Array,\"\uD83D\uDC7C\").length),$=null!=(null===(H=\" \".codePointAt)||void 0===H?void 0:H.call(\" \",0)),X=\" \uD83D\uDC7C\"===(null===(J=String.fromCodePoint)||void 0===J?void 0:J.call(String,32,128124));let Y,Q;Y=G&&$?t=>Array.from(t).map((t=>t.codePointAt(0))):function(t){const e=[];let i=0;const{length:n}=t;for(;i<n;){let r=t.charCodeAt(i++);if(55296<=r&&r<=56319&&i<n){const e=t.charCodeAt(i++);56320==(64512&e)?r=((1023&r)<<10)+(1023&e)+65536:i--}e.push(r)}return e},Q=X?t=>String.fromCodePoint(...Array.from(t||[])):function(t){return(()=>{const e=[];return Array.from(t).forEach((t=>{let i=\"\";t>65535&&(t-=65536,i+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e.push(i+String.fromCharCode(t))})),e})().join(\"\")};let Z=0;class tt extends U{static fromJSONString(t){return this.fromJSON(JSON.parse(t))}constructor(){super(...arguments),this.id=++Z}hasSameConstructorAs(t){return this.constructor===(null==t?void 0:t.constructor)}isEqualTo(t){return this===t}inspect(){const t=[],e=this.contentsForInspection()||{};for(const i in e){const n=e[i];t.push(\"\".concat(i,\"=\").concat(n))}return\"#<\".concat(this.constructor.name,\":\").concat(this.id).concat(t.length?\" \".concat(t.join(\", \")):\"\",\">\")}contentsForInspection(){}toJSONString(){return JSON.stringify(this)}toUTF16String(){return K.box(this)}getCacheKey(){return this.id.toString()}}const et=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++){if(t[i]!==e[i])return!1}return!0},it=function(t){const e=t.slice(0);for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return e.splice(...n),e},nt=/[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,rt=function(){const t=C(\"input\",{dir:\"auto\",name:\"x\",dirName:\"x.dir\"}),e=C(\"form\");e.appendChild(t);const i=function(){try{return new FormData(e).has(t.dirName)}catch(t){return!1}}(),n=function(){try{return t.matches(\":dir(ltr),:dir(rtl)\")}catch(t){return!1}}();return i?function(i){return t.value=i,new FormData(e).get(t.dirName)}:n?function(e){return t.value=e,t.matches(\":dir(rtl)\")?\"rtl\":\"ltr\"}:function(t){const e=t.trim().charAt(0);return nt.test(e)?\"rtl\":\"ltr\"}}();let ot=null,st=null,at=null,lt=null;const ct=()=>(ot||(ot=gt().concat(ut())),ot),ht=t=>e[t],ut=()=>(st||(st=Object.keys(e)),st),dt=t=>O[t],gt=()=>(at||(at=Object.keys(O)),at),mt=function(t,e){pt(t).textContent=e.replace(/%t/g,t)},pt=function(t){const e=document.createElement(\"style\");e.setAttribute(\"type\",\"text/css\"),e.setAttribute(\"data-tag-name\",t.toLowerCase());const i=ft();return i&&e.setAttribute(\"nonce\",i),document.head.insertBefore(e,document.head.firstChild),e},ft=function(){const t=bt(\"trix-csp-nonce\")||bt(\"csp-nonce\");if(t)return t.getAttribute(\"content\")},bt=t=>document.head.querySelector(\"meta[name=\".concat(t,\"]\")),vt={\"application/x-trix-feature-detection\":\"test\"},At=function(t){const e=t.getData(\"text/plain\"),i=t.getData(\"text/html\");if(!e||!i)return null==e?void 0:e.length;{const{body:t}=(new DOMParser).parseFromString(i,\"text/html\");if(t.textContent===e)return!t.querySelector(\"*\")}},xt=/Mac|^iP/.test(navigator.platform)?t=>t.metaKey:t=>t.ctrlKey,yt=t=>setTimeout(t,1),Ct=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e={};for(const i in t){const n=t[i];e[i]=n}return e},Rt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const i in t){if(t[i]!==e[i])return!1}return!0},Et=function(t){if(null!=t)return Array.isArray(t)||(t=[t,t]),[Lt(t[0]),Lt(null!=t[1]?t[1]:t[0])]},St=function(t){if(null==t)return;const[e,i]=Et(t);return Dt(e,i)},kt=function(t,e){if(null==t||null==e)return;const[i,n]=Et(t),[r,o]=Et(e);return Dt(i,r)&&Dt(n,o)},Lt=function(t){return\"number\"==typeof t?t:Ct(t)},Dt=function(t,e){return\"number\"==typeof t?t===e:Rt(t,e)};class wt extends U{constructor(){super(...arguments),this.update=this.update.bind(this),this.run=this.run.bind(this),this.selectionManagers=[]}start(){if(!this.started)return this.started=!0,\"onselectionchange\"in document?document.addEventListener(\"selectionchange\",this.update,!0):this.run()}stop(){if(this.started)return this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)}registerSelectionManager(t){if(!this.selectionManagers.includes(t))return this.selectionManagers.push(t),this.start()}unregisterSelectionManager(t){if(this.selectionManagers=this.selectionManagers.filter((e=>e!==t)),0===this.selectionManagers.length)return this.stop()}notifySelectionManagersOfSelectionChange(){return this.selectionManagers.map((t=>t.selectionDidChange()))}update(){const t=It();if(!Tt(t,this.domRange))return this.domRange=t,this.notifySelectionManagersOfSelectionChange()}reset(){return this.domRange=null,this.update()}run(){if(this.started)return this.update(),requestAnimationFrame(this.run)}}const Tt=(t,e)=>(null==t?void 0:t.startContainer)===(null==e?void 0:e.startContainer)&&(null==t?void 0:t.startOffset)===(null==e?void 0:e.startOffset)&&(null==t?void 0:t.endContainer)===(null==e?void 0:e.endContainer)&&(null==t?void 0:t.endOffset)===(null==e?void 0:e.endOffset),Ft=new wt,Bt=function(){const t=window.getSelection();if(t.rangeCount>0)return t},It=function(){var t;const e=null===(t=Bt())||void 0===t?void 0:t.getRangeAt(0);if(e&&!Nt(e))return e},Pt=function(t){const e=window.getSelection();return e.removeAllRanges(),e.addRange(t),Ft.update()},Nt=t=>Ot(t.startContainer)||Ot(t.endContainer),Ot=t=>!Object.getPrototypeOf(t),Mt=t=>t.replace(new RegExp(\"\".concat(\"\\ufeff\"),\"g\"),\"\").replace(new RegExp(\"\".concat(\"\u00A0\"),\"g\"),\" \"),jt=new RegExp(\"[^\\\\S\".concat(\"\u00A0\",\"]\")),Wt=t=>t.replace(new RegExp(\"\".concat(jt.source),\"g\"),\" \").replace(/\\ {2,}/g,\" \"),Ut=function(t,e){if(t.isEqualTo(e))return[\"\",\"\"];const i=qt(t,e),{length:n}=i.utf16String;let r;if(n){const{offset:o}=i,s=t.codepoints.slice(0,o).concat(t.codepoints.slice(o+n));r=qt(e,K.fromCodepoints(s))}else r=qt(e,t);return[i.utf16String.toString(),r.utf16String.toString()]},qt=function(t,e){let i=0,n=t.length,r=e.length;for(;i<n&&t.charAt(i).isEqualTo(e.charAt(i));)i++;for(;n>i+1&&t.charAt(n-1).isEqualTo(e.charAt(r-1));)n--,r--;return{utf16String:t.slice(i,n),offset:i}};class Vt extends tt{static fromCommonAttributesOfObjects(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!t.length)return new this;let e=Jt(t[0]),i=e.getKeys();return t.slice(1).forEach((t=>{i=e.getKeysCommonToHash(Jt(t)),e=e.slice(i)})),e}static box(t){return Jt(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(...arguments),this.values=Ht(t)}add(t,e){return this.merge(zt(t,e))}remove(t){return new Vt(Ht(this.values,t))}get(t){return this.values[t]}has(t){return t in this.values}merge(t){return new Vt(_t(this.values,Kt(t)))}slice(t){const e={};return Array.from(t).forEach((t=>{this.has(t)&&(e[t]=this.values[t])})),new Vt(e)}getKeys(){return Object.keys(this.values)}getKeysCommonToHash(t){return t=Jt(t),this.getKeys().filter((e=>this.values[e]===t.values[e]))}isEqualTo(t){return et(this.toArray(),Jt(t).toArray())}isEmpty(){return 0===this.getKeys().length}toArray(){if(!this.array){const t=[];for(const e in this.values){const i=this.values[e];t.push(t.push(e,i))}this.array=t.slice(0)}return this.array}toObject(){return Ht(this.values)}toJSON(){return this.toObject()}contentsForInspection(){return{values:JSON.stringify(this.values)}}}const zt=function(t,e){const i={};return i[t]=e,i},_t=function(t,e){const i=Ht(t);for(const t in e){const n=e[t];i[t]=n}return i},Ht=function(t,e){const i={};return Object.keys(t).sort().forEach((n=>{n!==e&&(i[n]=t[n])})),i},Jt=function(t){return t instanceof Vt?t:new Vt(t)},Kt=function(t){return t instanceof Vt?t.values:t};class Gt{static groupObjects(){let t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:i,asTree:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n&&null==i&&(i=0);const r=[];return Array.from(e).forEach((e=>{var o;if(t){var s,a,l;if(null!==(s=e.canBeGrouped)&&void 0!==s&&s.call(e,i)&&null!==(a=(l=t[t.length-1]).canBeGroupedWith)&&void 0!==a&&a.call(l,e,i))return void t.push(e);r.push(new this(t,{depth:i,asTree:n})),t=null}null!==(o=e.canBeGrouped)&&void 0!==o&&o.call(e,i)?t=[e]:r.push(e)})),t&&r.push(new this(t,{depth:i,asTree:n})),r}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:e,asTree:i}=arguments.length>1?arguments[1]:void 0;this.objects=t,i&&(this.depth=e,this.objects=this.constructor.groupObjects(this.objects,{asTree:i,depth:this.depth+1}))}getObjects(){return this.objects}getDepth(){return this.depth}getCacheKey(){const t=[\"objectGroup\"];return Array.from(this.getObjects()).forEach((e=>{t.push(e.getCacheKey())})),t.join(\"/\")}}class $t extends U{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects={},Array.from(t).forEach((t=>{const e=JSON.stringify(t);null==this.objects[e]&&(this.objects[e]=t)}))}find(t){const e=JSON.stringify(t);return this.objects[e]}}class Xt{constructor(t){this.reset(t)}add(t){const e=Yt(t);this.elements[e]=t}remove(t){const e=Yt(t),i=this.elements[e];if(i)return delete this.elements[e],i}reset(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.elements={},Array.from(t).forEach((t=>{this.add(t)})),t}}const Yt=t=>t.dataset.trixStoreKey;class Qt extends U{isPerforming(){return!0===this.performing}hasPerformed(){return!0===this.performed}hasSucceeded(){return this.performed&&this.succeeded}hasFailed(){return this.performed&&!this.succeeded}getPromise(){return this.promise||(this.promise=new Promise(((t,e)=>(this.performing=!0,this.perform(((i,n)=>{this.succeeded=i,this.performing=!1,this.performed=!0,this.succeeded?t(n):e(n)})))))),this.promise}perform(t){return t(!1)}release(){var t,e;null===(t=this.promise)||void 0===t||null===(e=t.cancel)||void 0===e||e.call(t),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null}}Qt.proxyMethod(\"getPromise().then\"),Qt.proxyMethod(\"getPromise().catch\");class Zt extends U{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.object=t,this.options=e,this.childViews=[],this.rootView=this}getNodes(){return this.nodes||(this.nodes=this.createNodes()),this.nodes.map((t=>t.cloneNode(!0)))}invalidate(){var t;return this.nodes=null,this.childViews=[],null===(t=this.parentView)||void 0===t?void 0:t.invalidate()}invalidateViewForObject(t){var e;return null===(e=this.findViewForObject(t))||void 0===e?void 0:e.invalidate()}findOrCreateCachedChildView(t,e,i){let n=this.getCachedViewForObject(e);return n?this.recordChildView(n):(n=this.createChildView(...arguments),this.cacheViewForObject(n,e)),n}createChildView(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e instanceof Gt&&(i.viewClass=t,t=te);const n=new t(e,i);return this.recordChildView(n)}recordChildView(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t}getAllChildViews(){let t=[];return this.childViews.forEach((e=>{t.push(e),t=t.concat(e.getAllChildViews())})),t}findElement(){return this.findElementForObject(this.object)}findElementForObject(t){const e=null==t?void 0:t.id;if(e)return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e,\"']\"))}findViewForObject(t){for(const e of this.getAllChildViews())if(e.object===t)return e}getViewCache(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?(this.viewCache||(this.viewCache={}),this.viewCache):void 0}isViewCachingEnabled(){return!1!==this.shouldCacheViews}enableViewCaching(){this.shouldCacheViews=!0}disableViewCaching(){this.shouldCacheViews=!1}getCachedViewForObject(t){var e;return null===(e=this.getViewCache())||void 0===e?void 0:e[t.getCacheKey()]}cacheViewForObject(t,e){const i=this.getViewCache();i&&(i[e.getCacheKey()]=t)}garbageCollectCachedViews(){const t=this.getViewCache();if(t){const e=this.getAllChildViews().concat(this).map((t=>t.object.getCacheKey()));for(const i in t)e.includes(i)||delete t[i]}}}class te extends Zt{constructor(){super(...arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}getChildViews(){return this.childViews.length||Array.from(this.objectGroup.getObjects()).forEach((t=>{this.findOrCreateCachedChildView(this.viewClass,t,this.options)})),this.childViews}createNodes(){const t=this.createContainerElement();return this.getChildViews().forEach((e=>{Array.from(e.getNodes()).forEach((e=>{t.appendChild(e)}))})),[t]}createContainerElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.objectGroup.getDepth();return this.getChildViews()[0].createContainerElement(t)}}const{css:ee}=W;class ie extends Zt{constructor(){super(...arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}createContentNodes(){return[]}createNodes(){let t;const e=t=C({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),i=this.getHref();return i&&(t=C({tagName:\"a\",editable:!1,attributes:{href:i,tabindex:-1}}),e.appendChild(t)),this.attachment.hasContent()?t.innerHTML=this.attachment.getContent():this.createContentNodes().forEach((e=>{t.appendChild(e)})),t.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=C({tagName:\"progress\",attributes:{class:ee.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[ne(\"left\"),e,ne(\"right\")]}createCaptionElement(){const t=C({tagName:\"figcaption\",className:ee.attachmentCaption}),e=this.attachmentPiece.getCaption();if(e)t.classList.add(\"\".concat(ee.attachmentCaption,\"--edited\")),t.textContent=e;else{let e,i;const n=this.getCaptionConfig();if(n.name&&(e=this.attachment.getFilename()),n.size&&(i=this.attachment.getFormattedFilesize()),e){const i=C({tagName:\"span\",className:ee.attachmentName,textContent:e});t.appendChild(i)}if(i){e&&t.appendChild(document.createTextNode(\" \"));const n=C({tagName:\"span\",className:ee.attachmentSize,textContent:i});t.appendChild(n)}}return t}getClassName(){const t=[ee.attachment,\"\".concat(ee.attachment,\"--\").concat(this.attachment.getType())],e=this.attachment.getExtension();return e&&t.push(\"\".concat(ee.attachment,\"--\").concat(e)),t.join(\" \")}getData(){const t={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},{attributes:e}=this.attachmentPiece;return e.isEmpty()||(t.trixAttributes=JSON.stringify(e)),this.attachment.isPending()&&(t.trixSerialize=!1),t}getHref(){if(!re(this.attachment.getContent(),\"a\"))return this.attachment.getHref()}getCaptionConfig(){var e;const i=this.attachment.getType(),n=Ct(null===(e=t[i])||void 0===e?void 0:e.caption);return\"file\"===i&&(n.name=!0),n}findProgressElement(){var t;return null===(t=this.findElement())||void 0===t?void 0:t.querySelector(\"progress\")}attachmentDidChangeUploadProgress(){const t=this.attachment.getUploadProgress(),e=this.findProgressElement();e&&(e.value=t)}}const ne=t=>C({tagName:\"span\",textContent:\"\\ufeff\",data:{trixCursorTarget:t,trixSerialize:!1}}),re=function(t,e){const i=C(\"div\");return i.innerHTML=t||\"\",i.querySelector(e)};class oe extends ie{constructor(){super(...arguments),this.attachment.previewDelegate=this}createContentNodes(){return this.image=C({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]}createCaptionElement(){const t=super.createCaptionElement(...arguments);return t.textContent||t.setAttribute(\"data-trix-placeholder\",s.captionPlaceholder),t}refresh(t){var e;t||(t=null===(e=this.findElement())||void 0===e?void 0:e.querySelector(\"img\"));if(t)return this.updateAttributesForImage(t)}updateAttributesForImage(t){const e=this.attachment.getURL(),i=this.attachment.getPreviewURL();if(t.src=i||e,i===e)t.removeAttribute(\"data-trix-serialized-attributes\");else{const i=JSON.stringify({src:e});t.setAttribute(\"data-trix-serialized-attributes\",i)}const n=this.attachment.getWidth(),r=this.attachment.getHeight();null!=n&&(t.width=n),null!=r&&(t.height=r);const o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\");t.dataset.trixStoreKey=o}attachmentDidChangeAttributes(){return this.refresh(this.image),this.refresh()}}class se extends Zt{constructor(){super(...arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),this.textConfig=this.options.textConfig,this.context=this.options.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}createNodes(){let t=this.attachment?this.createAttachmentNodes():this.createStringNodes();const e=this.createElement();if(e){const i=function(t){for(;null!==(e=t)&&void 0!==e&&e.firstElementChild;){var e;t=t.firstElementChild}return t}(e);Array.from(t).forEach((t=>{i.appendChild(t)})),t=[e]}return t}createAttachmentNodes(){const t=this.attachment.isPreviewable()?oe:ie;return this.createChildView(t,this.piece.attachment,{piece:this.piece}).getNodes()}createStringNodes(){var t;if(null!==(t=this.textConfig)&&void 0!==t&&t.plaintext)return[document.createTextNode(this.string)];{const t=[],e=this.string.split(\"\\n\");for(let i=0;i<e.length;i++){const n=e[i];if(i>0){const e=C(\"br\");t.push(e)}if(n.length){const e=document.createTextNode(this.preserveSpaces(n));t.push(e)}}return t}}createElement(){let t,e,i;const n={};for(e in this.attributes){i=this.attributes[e];const o=dt(e);if(o){if(o.tagName){var r;const e=C(o.tagName);r?(r.appendChild(e),r=e):t=r=e}if(o.styleProperty&&(n[o.styleProperty]=i),o.style)for(e in o.style)i=o.style[e],n[e]=i}}if(Object.keys(n).length)for(e in t||(t=C(\"span\")),n)i=n[e],t.style[e]=i;return t}createContainerElement(){for(const t in this.attributes){const e=this.attributes[t],i=dt(t);if(i&&i.groupTagName){const n={};return n[t]=e,C(i.groupTagName,n)}}}preserveSpaces(t){return this.context.isLast&&(t=t.replace(/\\ $/,\"\u00A0\")),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \".concat(\"\u00A0\",\" $2\")).replace(/\\ {2}/g,\"\".concat(\"\u00A0\",\" \")).replace(/\\ {2}/g,\" \".concat(\"\u00A0\")),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,\"\u00A0\")),t}}class ae extends Zt{constructor(){super(...arguments),this.text=this.object,this.textConfig=this.options.textConfig}createNodes(){const t=[],e=Gt.groupObjects(this.getPieces()),i=e.length-1;for(let r=0;r<e.length;r++){const o=e[r],s={};0===r&&(s.isFirst=!0),r===i&&(s.isLast=!0),le(n)&&(s.followsWhitespace=!0);const a=this.findOrCreateCachedChildView(se,o,{textConfig:this.textConfig,context:s});t.push(...Array.from(a.getNodes()||[]));var n=o}return t}getPieces(){return Array.from(this.text.getPieces()).filter((t=>!t.hasAttribute(\"blockBreak\")))}}const le=t=>/\\s$/.test(null==t?void 0:t.toString()),{css:ce}=W;class he extends Zt{constructor(){super(...arguments),this.block=this.object,this.attributes=this.block.getAttributes()}createNodes(){const t=[document.createComment(\"block\")];if(this.block.isEmpty())t.push(C(\"br\"));else{var i;const e=null===(i=ht(this.block.getLastAttribute()))||void 0===i?void 0:i.text,n=this.findOrCreateCachedChildView(ae,this.block.text,{textConfig:e});t.push(...Array.from(n.getNodes()||[])),this.shouldAddExtraNewlineElement()&&t.push(C(\"br\"))}if(this.attributes.length)return t;{let i;const{tagName:n}=e.default;this.block.isRTL()&&(i={dir:\"rtl\"});const r=C({tagName:n,attributes:i});return t.forEach((t=>r.appendChild(t))),[r]}}createContainerElement(t){let e,i;const n=this.attributes[t],{tagName:r}=ht(n);if(0===t&&this.block.isRTL()&&(e={dir:\"rtl\"}),\"attachmentGallery\"===n){const t=this.block.getBlockBreakPosition();i=\"\".concat(ce.attachmentGallery,\" \").concat(ce.attachmentGallery,\"--\").concat(t)}return C({tagName:r,className:i,attributes:e})}shouldAddExtraNewlineElement(){return/\\n\\n$/.test(this.block.toString())}}class ue extends Zt{static render(t){const e=C(\"div\"),i=new this(t,{element:e});return i.render(),i.sync(),e}constructor(){super(...arguments),this.element=this.options.element,this.elementStore=new Xt,this.setDocument(this.object)}setDocument(t){t.isEqualTo(this.document)||(this.document=this.object=t)}render(){if(this.childViews=[],this.shadowElement=C(\"div\"),!this.document.isEmpty()){const t=Gt.groupObjects(this.document.getBlocks(),{asTree:!0});Array.from(t).forEach((t=>{const e=this.findOrCreateCachedChildView(he,t);Array.from(e.getNodes()).map((t=>this.shadowElement.appendChild(t)))}))}}isSynced(){return ge(this.shadowElement,this.element)}sync(){const t=this.createDocumentFragmentForSync();for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()}didSync(){return this.elementStore.reset(de(this.element)),yt((()=>this.garbageCollectCachedViews()))}createDocumentFragmentForSync(){const t=document.createDocumentFragment();return Array.from(this.shadowElement.childNodes).forEach((e=>{t.appendChild(e.cloneNode(!0))})),Array.from(de(t)).forEach((t=>{const e=this.elementStore.remove(t);e&&t.parentNode.replaceChild(e,t)})),t}}const de=t=>t.querySelectorAll(\"[data-trix-store-key]\"),ge=(t,e)=>me(t.innerHTML)===me(e.innerHTML),me=t=>t.replace(/&nbsp;/g,\" \");function pe(t){this.wrapped=t}function fe(t){var e,i;function n(e,i){try{var o=t[e](i),s=o.value,a=s instanceof pe;Promise.resolve(a?s.wrapped:s).then((function(t){a?n(\"return\"===e?\"return\":\"next\",t):r(o.done?\"return\":\"normal\",t)}),(function(t){n(\"throw\",t)}))}catch(t){r(\"throw\",t)}}function r(t,r){switch(t){case\"return\":e.resolve({value:r,done:!0});break;case\"throw\":e.reject(r);break;default:e.resolve({value:r,done:!1})}(e=e.next)?n(e.key,e.arg):i=null}this._invoke=function(t,r){return new Promise((function(o,s){var a={key:t,arg:r,resolve:o,reject:s,next:null};i?i=i.next=a:(e=i=a,n(t,r))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function be(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}fe.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},fe.prototype.next=function(t){return this._invoke(\"next\",t)},fe.prototype.throw=function(t){return this._invoke(\"throw\",t)},fe.prototype.return=function(t){return this._invoke(\"return\",t)};class ve extends tt{static registerType(t,e){e.type=t,this.types[t]=e}static fromJSON(t){const e=this.types[t.type];if(e)return e.fromJSON(t)}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.attributes=Vt.box(e)}copyWithAttributes(t){return new this.constructor(this.getValue(),t)}copyWithAdditionalAttributes(t){return this.copyWithAttributes(this.attributes.merge(t))}copyWithoutAttribute(t){return this.copyWithAttributes(this.attributes.remove(t))}copy(){return this.copyWithAttributes(this.attributes)}getAttribute(t){return this.attributes.get(t)}getAttributesHash(){return this.attributes}getAttributes(){return this.attributes.toObject()}hasAttribute(t){return this.attributes.has(t)}hasSameStringValueAsPiece(t){return t&&this.toString()===t.toString()}hasSameAttributesAsPiece(t){return t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))}isBlockBreak(){return!1}isEqualTo(t){return super.isEqualTo(...arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)}isEmpty(){return 0===this.length}isSerializable(){return!0}toJSON(){return{type:this.constructor.type,attributes:this.getAttributes()}}contentsForInspection(){return{type:this.constructor.type,attributes:this.attributes.inspect()}}canBeGrouped(){return this.hasAttribute(\"href\")}canBeGroupedWith(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")}getLength(){return this.length}canBeConsolidatedWith(t){return!1}}be(ve,\"types\",{});class Ae extends Qt{constructor(t){super(...arguments),this.url=t}perform(t){const e=new Image;e.onload=()=>(e.width=this.width=e.naturalWidth,e.height=this.height=e.naturalHeight,t(!0,e)),e.onerror=()=>t(!1),e.src=this.url}}class xe extends tt{static attachmentForFile(t){const e=new this(this.attributesForFile(t));return e.setFile(t),e}static attributesForFile(t){return new Vt({filename:t.name,filesize:t.size,contentType:t.type})}static fromJSON(t){return new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.releaseFile=this.releaseFile.bind(this),this.attributes=Vt.box(t),this.didChangeAttributes()}getAttribute(t){return this.attributes.get(t)}hasAttribute(t){return this.attributes.has(t)}getAttributes(){return this.attributes.toObject()}setAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=this.attributes.merge(t);var i,n,r,o;if(!this.attributes.isEqualTo(e))return this.attributes=e,this.didChangeAttributes(),null===(i=this.previewDelegate)||void 0===i||null===(n=i.attachmentDidChangeAttributes)||void 0===n||n.call(i,this),null===(r=this.delegate)||void 0===r||null===(o=r.attachmentDidChangeAttributes)||void 0===o?void 0:o.call(r,this)}didChangeAttributes(){if(this.isPreviewable())return this.preloadURL()}isPending(){return null!=this.file&&!(this.getURL()||this.getHref())}isPreviewable(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):xe.previewablePattern.test(this.getContentType())}getType(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"}getURL(){return this.attributes.get(\"url\")}getHref(){return this.attributes.get(\"href\")}getFilename(){return this.attributes.get(\"filename\")||\"\"}getFilesize(){return this.attributes.get(\"filesize\")}getFormattedFilesize(){const t=this.attributes.get(\"filesize\");return\"number\"==typeof t?l.formatter(t):\"\"}getExtension(){var t;return null===(t=this.getFilename().match(/\\.(\\w+)$/))||void 0===t?void 0:t[1].toLowerCase()}getContentType(){return this.attributes.get(\"contentType\")}hasContent(){return this.attributes.has(\"content\")}getContent(){return this.attributes.get(\"content\")}getWidth(){return this.attributes.get(\"width\")}getHeight(){return this.attributes.get(\"height\")}getFile(){return this.file}setFile(t){if(this.file=t,this.isPreviewable())return this.preloadFile()}releaseFile(){this.releasePreloadedFile(),this.file=null}getUploadProgress(){return null!=this.uploadProgress?this.uploadProgress:0}setUploadProgress(t){var e,i;if(this.uploadProgress!==t)return this.uploadProgress=t,null===(e=this.uploadProgressDelegate)||void 0===e||null===(i=e.attachmentDidChangeUploadProgress)||void 0===i?void 0:i.call(e,this)}toJSON(){return this.getAttributes()}getCacheKey(){return[super.getCacheKey(...arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")}getPreviewURL(){return this.previewURL||this.preloadingURL}setPreviewURL(t){var e,i,n,r;if(t!==this.getPreviewURL())return this.previewURL=t,null===(e=this.previewDelegate)||void 0===e||null===(i=e.attachmentDidChangeAttributes)||void 0===i||i.call(e,this),null===(n=this.delegate)||void 0===n||null===(r=n.attachmentDidChangePreviewURL)||void 0===r?void 0:r.call(n,this)}preloadURL(){return this.preload(this.getURL(),this.releaseFile)}preloadFile(){if(this.file)return this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)}releasePreloadedFile(){this.fileObjectURL&&(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null)}preload(t,e){if(t&&t!==this.getPreviewURL()){this.preloadingURL=t;return new Ae(t).then((i=>{let{width:n,height:r}=i;return this.getWidth()&&this.getHeight()||this.setAttributes({width:n,height:r}),this.preloadingURL=null,this.setPreviewURL(t),null==e?void 0:e()})).catch((()=>(this.preloadingURL=null,null==e?void 0:e())))}}}be(xe,\"previewablePattern\",/^image(\\/(gif|png|jpe?g)|$)/);class ye extends ve{static fromJSON(t){return new this(xe.fromJSON(t.attachment),t.attributes)}constructor(t){super(...arguments),this.attachment=t,this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}ensureAttachmentExclusivelyHasAttribute(t){this.hasAttribute(t)&&(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice([t])),this.attributes=this.attributes.remove(t))}removeProhibitedAttributes(){const t=this.attributes.slice(ye.permittedAttributes);t.isEqualTo(this.attributes)||(this.attributes=t)}getValue(){return this.attachment}isSerializable(){return!this.attachment.isPending()}getCaption(){return this.attributes.get(\"caption\")||\"\"}isEqualTo(t){var e;return super.isEqualTo(t)&&this.attachment.id===(null==t||null===(e=t.attachment)||void 0===e?void 0:e.id)}toString(){return\"\uFFFC\"}toJSON(){const t=super.toJSON(...arguments);return t.attachment=this.attachment,t}getCacheKey(){return[super.getCacheKey(...arguments),this.attachment.getCacheKey()].join(\"/\")}toConsole(){return JSON.stringify(this.toString())}}be(ye,\"permittedAttributes\",[\"caption\",\"presentation\"]),ve.registerType(\"attachment\",ye);class Ce extends ve{static fromJSON(t){return new this(t.string,t.attributes)}constructor(t){super(...arguments),this.string=(t=>t.replace(/\\r\\n/g,\"\\n\"))(t),this.length=this.string.length}getValue(){return this.string}toString(){return this.string.toString()}isBlockBreak(){return\"\\n\"===this.toString()&&!0===this.getAttribute(\"blockBreak\")}toJSON(){const t=super.toJSON(...arguments);return t.string=this.string,t}canBeConsolidatedWith(t){return t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)}consolidateWith(t){return new this.constructor(this.toString()+t.toString(),this.attributes)}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.length?(e=this,i=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),i=new this.constructor(this.string.slice(t),this.attributes)),[e,i]}toConsole(){let{string:t}=this;return t.length>15&&(t=t.slice(0,14)+\"\u2026\"),JSON.stringify(t.toString())}}ve.registerType(\"string\",Ce);class Re extends tt{static box(t){return t instanceof this?t:new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects=t.slice(0),this.length=this.objects.length}indexOf(t){return this.objects.indexOf(t)}splice(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return new this.constructor(it(this.objects,...e))}eachObject(t){return this.objects.map(((e,i)=>t(e,i)))}insertObjectAtIndex(t,e){return this.splice(e,0,t)}insertSplittableListAtIndex(t,e){return this.splice(e,0,...t.objects)}insertSplittableListAtPosition(t,e){const[i,n]=this.splitObjectAtPosition(e);return new this.constructor(i).insertSplittableListAtIndex(t,n)}editObjectAtIndex(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)}replaceObjectAtIndex(t,e){return this.splice(e,1,t)}removeObjectAtIndex(t){return this.splice(t,1)}getObjectAtIndex(t){return this.objects[t]}getSplittableListInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e.slice(i,n+1))}selectSplittableList(t){const e=this.objects.filter((e=>t(e)));return new this.constructor(e)}removeObjectsInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e).splice(i,n-i+1)}transformObjectsInRange(t,e){const[i,n,r]=this.splitObjectsAtRange(t),o=i.map(((t,i)=>n<=i&&i<=r?e(t):t));return new this.constructor(o)}splitObjectsAtRange(t){let e,[i,n,r]=this.splitObjectAtPosition(Se(t));return[i,e]=new this.constructor(i).splitObjectAtPosition(ke(t)+r),[i,n,e-1]}getObjectAtPosition(t){const{index:e}=this.findIndexAndOffsetAtPosition(t);return this.objects[e]}splitObjectAtPosition(t){let e,i;const{index:n,offset:r}=this.findIndexAndOffsetAtPosition(t),o=this.objects.slice(0);if(null!=n)if(0===r)e=n,i=0;else{const t=this.getObjectAtIndex(n),[s,a]=t.splitAtOffset(r);o.splice(n,1,s,a),e=n+1,i=s.getLength()-r}else e=o.length,i=0;return[o,e,i]}consolidate(){const t=[];let e=this.objects[0];return this.objects.slice(1).forEach((i=>{var n,r;null!==(n=(r=e).canBeConsolidatedWith)&&void 0!==n&&n.call(r,i)?e=e.consolidateWith(i):(t.push(e),e=i)})),e&&t.push(e),new this.constructor(t)}consolidateFromIndexToIndex(t,e){const i=this.objects.slice(0).slice(t,e+1),n=new this.constructor(i).consolidate().toArray();return this.splice(t,i.length,...n)}findIndexAndOffsetAtPosition(t){let e,i=0;for(e=0;e<this.objects.length;e++){const n=i+this.objects[e].getLength();if(i<=t&&t<n)return{index:e,offset:t-i};i=n}return{index:null,offset:null}}findPositionAtIndexAndOffset(t,e){let i=0;for(let n=0;n<this.objects.length;n++){const r=this.objects[n];if(n<t)i+=r.getLength();else if(n===t){i+=e;break}}return i}getEndPosition(){return null==this.endPosition&&(this.endPosition=0,this.objects.forEach((t=>this.endPosition+=t.getLength()))),this.endPosition}toString(){return this.objects.join(\"\")}toArray(){return this.objects.slice(0)}toJSON(){return this.toArray()}isEqualTo(t){return super.isEqualTo(...arguments)||Ee(this.objects,null==t?void 0:t.objects)}contentsForInspection(){return{objects:\"[\".concat(this.objects.map((t=>t.inspect())).join(\", \"),\"]\")}}}const Ee=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;let i=!0;for(let n=0;n<t.length;n++){const r=t[n];i&&!r.isEqualTo(e[n])&&(i=!1)}return i},Se=t=>t[0],ke=t=>t[1];class Le extends tt{static textForAttachmentWithAttributes(t,e){return new this([new ye(t,e)])}static textForStringWithAttributes(t,e){return new this([new Ce(t,e)])}static fromJSON(t){return new this(Array.from(t).map((t=>ve.fromJSON(t))))}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments);const e=t.filter((t=>!t.isEmpty()));this.pieceList=new Re(e)}copy(){return this.copyWithPieceList(this.pieceList)}copyWithPieceList(t){return new this.constructor(t.consolidate().toArray())}copyUsingObjectMap(t){const e=this.getPieces().map((e=>t.find(e)||e));return new this.constructor(e)}appendText(t){return this.insertTextAtPosition(t,this.getLength())}insertTextAtPosition(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))}removeTextAtRange(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))}replaceTextAtRange(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])}moveTextFromRangeToPosition(t,e){if(t[0]<=e&&e<=t[1])return;const i=this.getTextAtRange(t),n=i.getLength();return t[0]<e&&(e-=n),this.removeTextAtRange(t).insertTextAtPosition(i,e)}addAttributeAtRange(t,e,i){const n={};return n[t]=e,this.addAttributesAtRange(n,i)}addAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAdditionalAttributes(t))))}removeAttributeAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithoutAttribute(t))))}setAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAttributes(t))))}getAttributesAtPosition(t){var e;return(null===(e=this.pieceList.getObjectAtPosition(t))||void 0===e?void 0:e.getAttributes())||{}}getCommonAttributes(){const t=Array.from(this.pieceList.toArray()).map((t=>t.getAttributes()));return Vt.fromCommonAttributesOfObjects(t).toObject()}getCommonAttributesAtRange(t){return this.getTextAtRange(t).getCommonAttributes()||{}}getExpandedRangeForAttributeAtOffset(t,e){let i,n=i=e;const r=this.getLength();for(;n>0&&this.getCommonAttributesAtRange([n-1,i])[t];)n--;for(;i<r&&this.getCommonAttributesAtRange([e,i+1])[t];)i++;return[n,i]}getTextAtRange(t){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t))}getStringAtRange(t){return this.pieceList.getSplittableListInRange(t).toString()}getStringAtPosition(t){return this.getStringAtRange([t,t+1])}startsWithString(t){return this.getStringAtRange([0,t.length])===t}endsWithString(t){const e=this.getLength();return this.getStringAtRange([e-t.length,e])===t}getAttachmentPieces(){return this.pieceList.toArray().filter((t=>!!t.attachment))}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getAttachmentAndPositionById(t){let e=0;for(const n of this.pieceList.toArray()){var i;if((null===(i=n.attachment)||void 0===i?void 0:i.id)===t)return{attachment:n.attachment,position:e};e+=n.length}return{attachment:null,position:null}}getAttachmentById(t){const{attachment:e}=this.getAttachmentAndPositionById(t);return e}getRangeOfAttachment(t){const e=this.getAttachmentAndPositionById(t.id),i=e.position;if(t=e.attachment)return[i,i+1]}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e);return i?this.addAttributesAtRange(t,i):this}getLength(){return this.pieceList.getEndPosition()}isEmpty(){return 0===this.getLength()}isEqualTo(t){var e;return super.isEqualTo(t)||(null==t||null===(e=t.pieceList)||void 0===e?void 0:e.isEqualTo(this.pieceList))}isBlockBreak(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()}eachPiece(t){return this.pieceList.eachObject(t)}getPieces(){return this.pieceList.toArray()}getPieceAtPosition(t){return this.pieceList.getObjectAtPosition(t)}contentsForInspection(){return{pieceList:this.pieceList.inspect()}}toSerializableText(){const t=this.pieceList.selectSplittableList((t=>t.isSerializable()));return this.copyWithPieceList(t)}toString(){return this.pieceList.toString()}toJSON(){return this.pieceList.toJSON()}toConsole(){return JSON.stringify(this.pieceList.toArray().map((t=>JSON.parse(t.toConsole()))))}getDirection(){return rt(this.toString())}isRTL(){return\"rtl\"===this.getDirection()}}class De extends tt{static fromJSON(t){return new this(Le.fromJSON(t.text),t.attributes)}constructor(t,e){super(...arguments),this.text=we(t||new Le),this.attributes=e||[]}isEmpty(){return this.text.isBlockBreak()}isEqualTo(t){return!!super.isEqualTo(t)||this.text.isEqualTo(null==t?void 0:t.text)&&et(this.attributes,null==t?void 0:t.attributes)}copyWithText(t){return new De(t,this.attributes)}copyWithoutText(){return this.copyWithText(null)}copyWithAttributes(t){return new De(this.text,t)}copyWithoutAttributes(){return this.copyWithAttributes(null)}copyUsingObjectMap(t){const e=t.find(this.text);return e?this.copyWithText(e):this.copyWithText(this.text.copyUsingObjectMap(t))}addAttribute(t){const e=this.attributes.concat(Ne(t));return this.copyWithAttributes(e)}removeAttribute(t){const{listAttribute:e}=ht(t),i=Me(Me(this.attributes,t),e);return this.copyWithAttributes(i)}removeLastAttribute(){return this.removeAttribute(this.getLastAttribute())}getLastAttribute(){return Oe(this.attributes)}getAttributes(){return this.attributes.slice(0)}getAttributeLevel(){return this.attributes.length}getAttributeAtLevel(t){return this.attributes[t-1]}hasAttribute(t){return this.attributes.includes(t)}hasAttributes(){return this.getAttributeLevel()>0}getLastNestableAttribute(){return Oe(this.getNestableAttributes())}getNestableAttributes(){return this.attributes.filter((t=>ht(t).nestable))}getNestingLevel(){return this.getNestableAttributes().length}decreaseNestingLevel(){const t=this.getLastNestableAttribute();return t?this.removeAttribute(t):this}increaseNestingLevel(){const t=this.getLastNestableAttribute();if(t){const e=this.attributes.lastIndexOf(t),i=it(this.attributes,e+1,0,...Ne(t));return this.copyWithAttributes(i)}return this}getListItemAttributes(){return this.attributes.filter((t=>ht(t).listAttribute))}isListItem(){var t;return null===(t=ht(this.getLastAttribute()))||void 0===t?void 0:t.listAttribute}isTerminalBlock(){var t;return null===(t=ht(this.getLastAttribute()))||void 0===t?void 0:t.terminal}breaksOnReturn(){var t;return null===(t=ht(this.getLastAttribute()))||void 0===t?void 0:t.breakOnReturn}findLineBreakInDirectionFromPosition(t,e){const i=this.toString();let n;switch(t){case\"forward\":n=i.indexOf(\"\\n\",e);break;case\"backward\":n=i.slice(0,e).lastIndexOf(\"\\n\")}if(-1!==n)return n}contentsForInspection(){return{text:this.text.inspect(),attributes:this.attributes}}toString(){return this.text.toString()}toJSON(){return{text:this.text,attributes:this.attributes}}getDirection(){return this.text.getDirection()}isRTL(){return this.text.isRTL()}getLength(){return this.text.getLength()}canBeConsolidatedWith(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()}consolidateWith(t){const e=Le.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(e);return this.copyWithText(i.appendText(t.text))}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.getLength()?(e=this,i=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),i=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,i]}getBlockBreakPosition(){return this.text.getLength()-1}getTextWithoutBlockBreak(){return Ie(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()}canBeGrouped(t){return this.attributes[t]}canBeGroupedWith(t,i){const n=t.getAttributes(),r=n[i],o=this.attributes[i];return o===r&&!(!1===ht(o).group&&!(()=>{if(!lt){lt=[];for(const t in e){const{listAttribute:i}=e[t];null!=i&&lt.push(i)}}return lt})().includes(n[i+1]))&&(this.getDirection()===t.getDirection()||t.isEmpty())}}const we=function(t){return t=Te(t),t=Be(t)},Te=function(t){let e=!1;const i=t.getPieces();let n=i.slice(0,i.length-1);const r=i[i.length-1];return r?(n=n.map((t=>t.isBlockBreak()?(e=!0,Pe(t)):t)),e?new Le([...n,r]):t):t},Fe=Le.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),Be=function(t){return Ie(t)?t:t.appendText(Fe)},Ie=function(t){const e=t.getLength();if(0===e)return!1;return t.getTextAtRange([e-1,e]).isBlockBreak()},Pe=t=>t.copyWithoutAttribute(\"blockBreak\"),Ne=function(t){const{listAttribute:e}=ht(t);return e?[e,t]:[t]},Oe=t=>t.slice(-1)[0],Me=function(t,e){const i=t.lastIndexOf(e);return-1===i?t:it(t,i,1)};class je extends tt{static fromJSON(t){return new this(Array.from(t).map((t=>De.fromJSON(t))))}static fromString(t,e){const i=Le.textForStringWithAttributes(t,e);return new this([new De(i)])}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),0===t.length&&(t=[new De]),this.blockList=Re.box(t)}isEmpty(){const t=this.getBlockAtIndex(0);return 1===this.blockList.length&&t.isEmpty()&&!t.hasAttributes()}copy(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray();return new this.constructor(t)}copyUsingObjectsFromDocument(t){const e=new $t(t.getObjects());return this.copyUsingObjectMap(e)}copyUsingObjectMap(t){const e=this.getBlocks().map((e=>t.find(e)||e.copyUsingObjectMap(t)));return new this.constructor(e)}copyWithBaseBlockAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.getBlocks().map((e=>{const i=t.concat(e.getAttributes());return e.copyWithAttributes(i)}));return new this.constructor(e)}replaceBlock(t,e){const i=this.blockList.indexOf(t);return-1===i?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,i))}insertDocumentAtRange(t,e){const{blockList:i}=t;e=Et(e);let[n]=e;const{index:r,offset:o}=this.locationFromPosition(n);let s=this;const a=this.getBlockAtPosition(n);return St(e)&&a.isEmpty()&&!a.hasAttributes()?s=new this.constructor(s.blockList.removeObjectAtIndex(r)):a.getBlockBreakPosition()===o&&n++,s=s.removeTextAtRange(e),new this.constructor(s.blockList.insertSplittableListAtPosition(i,n))}mergeDocumentAtRange(t,e){let i,n;e=Et(e);const[r]=e,o=this.locationFromPosition(r),s=this.getBlockAtIndex(o.index).getAttributes(),a=t.getBaseBlockAttributes(),l=s.slice(-a.length);if(et(a,l)){const e=s.slice(0,-a.length);i=t.copyWithBaseBlockAttributes(e)}else i=t.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(s);const c=i.getBlockCount(),h=i.getBlockAtIndex(0);if(et(s,h.getAttributes())){const t=h.getTextWithoutBlockBreak();if(n=this.insertTextAtRange(t,e),c>1){i=new this.constructor(i.getBlocks().slice(1));const e=r+t.getLength();n=n.insertDocumentAtRange(i,e)}}else n=this.insertDocumentAtRange(i,e);return n}insertTextAtRange(t,e){e=Et(e);const[i]=e,{index:n,offset:r}=this.locationFromPosition(i),o=this.removeTextAtRange(e);return new this.constructor(o.blockList.editObjectAtIndex(n,(e=>e.copyWithText(e.text.insertTextAtPosition(t,r)))))}removeTextAtRange(t){let e;t=Et(t);const[i,n]=t;if(St(t))return this;const[r,o]=Array.from(this.locationRangeFromRange(t)),s=r.index,a=r.offset,l=this.getBlockAtIndex(s),c=o.index,h=o.offset,u=this.getBlockAtIndex(c);if(n-i==1&&l.getBlockBreakPosition()===a&&u.getBlockBreakPosition()!==h&&\"\\n\"===u.text.getStringAtPosition(h))e=this.blockList.editObjectAtIndex(c,(t=>t.copyWithText(t.text.removeTextAtRange([h,h+1]))));else{let t;const i=l.text.getTextAtRange([0,a]),n=u.text.getTextAtRange([h,u.getLength()]),r=i.appendText(n);t=s!==c&&0===a&&l.getAttributeLevel()>=u.getAttributeLevel()?u.copyWithText(r):l.copyWithText(r);const o=c+1-s;e=this.blockList.splice(s,o,t)}return new this.constructor(e)}moveTextFromRangeToPosition(t,e){let i;t=Et(t);const[n,r]=t;if(n<=e&&e<=r)return this;let o=this.getDocumentAtRange(t),s=this.removeTextAtRange(t);const a=n<e;a&&(e-=o.getLength());const[l,...c]=o.getBlocks();return 0===c.length?(i=l.getTextWithoutBlockBreak(),a&&(e+=1)):i=l.text,s=s.insertTextAtRange(i,e),0===c.length?s:(o=new this.constructor(c),e+=i.getLength(),s.insertDocumentAtRange(o,e))}addAttributeAtRange(t,e,i){let{blockList:n}=this;return this.eachBlockAtRange(i,((i,r,o)=>n=n.editObjectAtIndex(o,(function(){return ht(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})))),new this.constructor(n)}addAttribute(t,e){let{blockList:i}=this;return this.eachBlock(((n,r)=>i=i.editObjectAtIndex(r,(()=>n.addAttribute(t,e))))),new this.constructor(i)}removeAttributeAtRange(t,e){let{blockList:i}=this;return this.eachBlockAtRange(e,(function(e,n,r){ht(t)?i=i.editObjectAtIndex(r,(()=>e.removeAttribute(t))):n[0]!==n[1]&&(i=i.editObjectAtIndex(r,(()=>e.copyWithText(e.text.removeAttributeAtRange(t,n)))))})),new this.constructor(i)}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e),[n]=Array.from(i),{index:r}=this.locationFromPosition(n),o=this.getTextAtIndex(r);return new this.constructor(this.blockList.editObjectAtIndex(r,(i=>i.copyWithText(o.updateAttributesForAttachment(t,e)))))}removeAttributeForAttachment(t,e){const i=this.getRangeOfAttachment(e);return this.removeAttributeAtRange(t,i)}insertBlockBreakAtRange(t){let e;t=Et(t);const[i]=t,{offset:n}=this.locationFromPosition(i),r=this.removeTextAtRange(t);return 0===n&&(e=[new De]),new this.constructor(r.blockList.insertSplittableListAtPosition(new Re(e),i))}applyBlockAttributeAtRange(t,e,i){const n=this.expandRangeToLineBreaksAndSplitBlocks(i);let r=n.document;i=n.range;const o=ht(t);if(o.listAttribute){r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t});const e=r.convertLineBreaksToBlockBreaksInRange(i);r=e.document,i=e.range}else r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i);return r.addAttributeAtRange(t,e,i)}removeLastListAttributeAtRange(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{blockList:i}=this;return this.eachBlockAtRange(t,(function(t,n,r){const o=t.getLastAttribute();o&&ht(o).listAttribute&&o!==e.exceptAttributeName&&(i=i.editObjectAtIndex(r,(()=>t.removeAttribute(o))))})),new this.constructor(i)}removeLastTerminalAttributeAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){const r=t.getLastAttribute();r&&ht(r).terminal&&(e=e.editObjectAtIndex(n,(()=>t.removeAttribute(r))))})),new this.constructor(e)}removeBlockAttributesAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){t.hasAttributes()&&(e=e.editObjectAtIndex(n,(()=>t.copyWithoutAttributes())))})),new this.constructor(e)}expandRangeToLineBreaksAndSplitBlocks(t){let e;t=Et(t);let[i,n]=t;const r=this.locationFromPosition(i),o=this.locationFromPosition(n);let s=this;const a=s.getBlockAtIndex(r.index);if(r.offset=a.findLineBreakInDirectionFromPosition(\"backward\",r.offset),null!=r.offset&&(e=s.positionFromLocation(r),s=s.insertBlockBreakAtRange([e,e+1]),o.index+=1,o.offset-=s.getBlockAtIndex(r.index).getLength(),r.index+=1),r.offset=0,0===o.offset&&o.index>r.index)o.index-=1,o.offset=s.getBlockAtIndex(o.index).getBlockBreakPosition();else{const t=s.getBlockAtIndex(o.index);\"\\n\"===t.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=t.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==t.getBlockBreakPosition()&&(e=s.positionFromLocation(o),s=s.insertBlockBreakAtRange([e,e+1]))}return i=s.positionFromLocation(r),n=s.positionFromLocation(o),{document:s,range:t=Et([i,n])}}convertLineBreaksToBlockBreaksInRange(t){t=Et(t);let[e]=t;const i=this.getStringAtRange(t).slice(0,-1);let n=this;return i.replace(/.*?\\n/g,(function(t){e+=t.length,n=n.insertBlockBreakAtRange([e-1,e])})),{document:n,range:t}}consolidateBlocksAtRange(t){t=Et(t);const[e,i]=t,n=this.locationFromPosition(e).index,r=this.locationFromPosition(i).index;return new this.constructor(this.blockList.consolidateFromIndexToIndex(n,r))}getDocumentAtRange(t){t=Et(t);const e=this.blockList.getSplittableListInRange(t).toArray();return new this.constructor(e)}getStringAtRange(t){let e;const i=t=Et(t);return i[i.length-1]!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)}getBlockAtIndex(t){return this.blockList.getObjectAtIndex(t)}getBlockAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getBlockAtIndex(e)}getTextAtIndex(t){var e;return null===(e=this.getBlockAtIndex(t))||void 0===e?void 0:e.text}getTextAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getTextAtIndex(e)}getPieceAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getPieceAtPosition(i)}getCharacterAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getStringAtRange([i,i+1])}getLength(){return this.blockList.getEndPosition()}getBlocks(){return this.blockList.toArray()}getBlockCount(){return this.blockList.length}getEditCount(){return this.editCount}eachBlock(t){return this.blockList.eachObject(t)}eachBlockAtRange(t,e){let i,n;t=Et(t);const[r,o]=t,s=this.locationFromPosition(r),a=this.locationFromPosition(o);if(s.index===a.index)return i=this.getBlockAtIndex(s.index),n=[s.offset,a.offset],e(i,n,s.index);for(let t=s.index;t<=a.index;t++)if(i=this.getBlockAtIndex(t),i){switch(t){case s.index:n=[s.offset,i.text.getLength()];break;case a.index:n=[0,a.offset];break;default:n=[0,i.text.getLength()]}e(i,n,t)}}getCommonAttributesAtRange(t){t=Et(t);const[e]=t;if(St(t))return this.getCommonAttributesAtPosition(e);{const e=[],i=[];return this.eachBlockAtRange(t,(function(t,n){if(n[0]!==n[1])return e.push(t.text.getCommonAttributesAtRange(n)),i.push(We(t))})),Vt.fromCommonAttributesOfObjects(e).merge(Vt.fromCommonAttributesOfObjects(i)).toObject()}}getCommonAttributesAtPosition(t){let e,i;const{index:n,offset:r}=this.locationFromPosition(t),o=this.getBlockAtIndex(n);if(!o)return{};const s=We(o),a=o.text.getAttributesAtPosition(r),l=o.text.getAttributesAtPosition(r-1),c=Object.keys(O).filter((t=>O[t].inheritable));for(e in l)i=l[e],(i===a[e]||c.includes(e))&&(s[e]=i);return s}getRangeOfCommonAttributeAtPosition(t,e){const{index:i,offset:n}=this.locationFromPosition(e),r=this.getTextAtIndex(i),[o,s]=Array.from(r.getExpandedRangeForAttributeAtOffset(t,n)),a=this.positionFromLocation({index:i,offset:o}),l=this.positionFromLocation({index:i,offset:s});return Et([a,l])}getBaseBlockAttributes(){let t=this.getBlockAtIndex(0).getAttributes();for(let e=1;e<this.getBlockCount();e++){const i=this.getBlockAtIndex(e).getAttributes(),n=Math.min(t.length,i.length);t=(()=>{const e=[];for(let r=0;r<n&&i[r]===t[r];r++)e.push(i[r]);return e})()}return t}getAttachmentById(t){for(const e of this.getAttachments())if(e.id===t)return e}getAttachmentPieces(){let t=[];return this.blockList.eachObject((e=>{let{text:i}=e;return t=t.concat(i.getAttachmentPieces())})),t}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getRangeOfAttachment(t){let e=0;const i=this.blockList.toArray();for(let n=0;n<i.length;n++){const{text:r}=i[n],o=r.getRangeOfAttachment(t);if(o)return Et([e+o[0],e+o[1]]);e+=r.getLength()}}getLocationRangeOfAttachment(t){const e=this.getRangeOfAttachment(t);return this.locationRangeFromRange(e)}getAttachmentPieceForAttachment(t){for(const e of this.getAttachmentPieces())if(e.attachment===t)return e}findRangesForBlockAttribute(t){let e=0;const i=[];return this.getBlocks().forEach((n=>{const r=n.getLength();n.hasAttribute(t)&&i.push([e,e+r]),e+=r})),i}findRangesForTextAttribute(t){let{withValue:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=0,n=[];const r=[];return this.getPieces().forEach((o=>{const s=o.getLength();(function(i){return e?i.getAttribute(t)===e:i.hasAttribute(t)})(o)&&(n[1]===i?n[1]=i+s:r.push(n=[i,i+s])),i+=s})),r}locationFromPosition(t){const e=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t));if(null!=e.index)return e;{const t=this.getBlocks();return{index:t.length-1,offset:t[t.length-1].getLength()}}}positionFromLocation(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)}locationRangeFromPosition(t){return Et(this.locationFromPosition(t))}locationRangeFromRange(t){if(!(t=Et(t)))return;const[e,i]=Array.from(t),n=this.locationFromPosition(e),r=this.locationFromPosition(i);return Et([n,r])}rangeFromLocationRange(t){let e;t=Et(t);const i=this.positionFromLocation(t[0]);return St(t)||(e=this.positionFromLocation(t[1])),Et([i,e])}isEqualTo(t){return this.blockList.isEqualTo(null==t?void 0:t.blockList)}getTexts(){return this.getBlocks().map((t=>t.text))}getPieces(){const t=[];return Array.from(this.getTexts()).forEach((e=>{t.push(...Array.from(e.getPieces()||[]))})),t}getObjects(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())}toSerializableDocument(){const t=[];return this.blockList.eachObject((e=>t.push(e.copyWithText(e.text.toSerializableText())))),new this.constructor(t)}toString(){return this.blockList.toString()}toJSON(){return this.blockList.toJSON()}toConsole(){return JSON.stringify(this.blockList.toArray()).map((t=>JSON.parse(t.text.toConsole())))}}const We=function(t){const e={},i=t.getLastAttribute();return i&&(e[i]=!0),e},Ue=\"style href src width height class\".split(\" \"),qe=\"javascript:\".split(\" \"),Ve=\"script iframe\".split(\" \");class ze extends U{static sanitize(t,e){const i=new this(t,e);return i.sanitize(),i}constructor(t){let{allowedAttributes:e,forbiddenProtocols:i,forbiddenElements:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.allowedAttributes=e||Ue,this.forbiddenProtocols=i||qe,this.forbiddenElements=n||Ve,this.body=_e(t)}sanitize(){return this.sanitizeElements(),this.normalizeListElementNesting()}getHTML(){return this.body.innerHTML}getBody(){return this.body}sanitizeElements(){const t=x(this.body),e=[];for(;t.nextNode();){const i=t.currentNode;switch(i.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(i)?e.push(i):this.sanitizeElement(i);break;case Node.COMMENT_NODE:e.push(i)}}return e.forEach((t=>A(t))),this.body}sanitizeElement(t){return t.hasAttribute(\"href\")&&this.forbiddenProtocols.includes(t.protocol)&&t.removeAttribute(\"href\"),Array.from(t.attributes).forEach((e=>{let{name:i}=e;this.allowedAttributes.includes(i)||0===i.indexOf(\"data-trix\")||t.removeAttribute(i)})),t}normalizeListElementNesting(){return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach((t=>{const e=t.previousElementSibling;e&&\"li\"===y(e)&&e.appendChild(t)})),this.body}elementIsRemovable(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE)return this.elementIsForbidden(t)||this.elementIsntSerializable(t)}elementIsForbidden(t){return this.forbiddenElements.includes(y(t))}elementIsntSerializable(t){return\"false\"===t.getAttribute(\"data-trix-serialize\")&&!F(t)}}const _e=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";t=t.replace(/<\\/html[^>]*>[^]*$/i,\"</html>\");const e=document.implementation.createHTMLDocument(\"\");return e.documentElement.innerHTML=t,Array.from(e.head.querySelectorAll(\"style\")).forEach((t=>{e.body.appendChild(t)})),e.body},He=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=\"string\";return{string:t=Mt(t),attributes:e,type:i}},Je=(t,e)=>{try{return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)))}catch(t){return{}}};class Ke extends U{static parse(t,e){const i=new this(t,e);return i.parse(),i}constructor(t){let{referenceElement:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.html=t,this.referenceElement=e,this.blocks=[],this.blockElements=[],this.processedElements=[]}getDocument(){return je.fromJSON(this.blocks)}parse(){try{this.createHiddenContainer();const t=ze.sanitize(this.html).getHTML();this.containerElement.innerHTML=t;const e=x(this.containerElement,{usingFilter:Ye});for(;e.nextNode();)this.processNode(e.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}}createHiddenContainer(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=C({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))}removeHiddenContainer(){return A(this.containerElement)}processNode(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}}appendBlockForTextNode(t){const e=t.parentNode;if(e===this.currentBlockElement&&this.isBlockElement(t.previousSibling))return this.appendStringWithAttributes(\"\\n\");if(e===this.containerElement||this.isBlockElement(e)){var i;const t=this.getBlockAttributes(e);et(t,null===(i=this.currentBlock)||void 0===i?void 0:i.attributes)||(this.currentBlock=this.appendBlockForAttributesWithElement(t,e),this.currentBlockElement=e)}}appendBlockForElement(t){const e=this.isBlockElement(t),i=b(this.currentBlockElement,t);if(e&&!this.isBlockElement(t.firstChild)){if(!this.isInsignificantTextNode(t.firstChild)||!this.isBlockElement(t.firstElementChild)){const e=this.getBlockAttributes(t);if(t.firstChild){if(i&&et(e,this.currentBlock.attributes))return this.appendStringWithAttributes(\"\\n\");this.currentBlock=this.appendBlockForAttributesWithElement(e,t),this.currentBlockElement=t}}}else if(this.currentBlockElement&&!i&&!e){const e=this.findParentBlockElement(t);if(e)return this.appendBlockForElement(e);this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null}}findParentBlockElement(t){let{parentElement:e}=t;for(;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&this.blockElements.includes(e))return e;e=e.parentElement}return null}processTextNode(t){let e=t.data;var i;Ge(t.parentNode)||(e=Wt(e),ti(null===(i=t.previousSibling)||void 0===i?void 0:i.textContent)&&(e=Qe(e)));return this.appendStringWithAttributes(e,this.getTextAttributes(t.parentNode))}processElement(t){let e;if(F(t)){if(e=Je(t,\"attachment\"),Object.keys(e).length){const i=this.getTextAttributes(t);this.appendAttachmentWithAttributes(e,i),t.innerHTML=\"\"}return this.processedElements.push(t)}switch(y(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"};const i=(t=>{const e=t.getAttribute(\"width\"),i=t.getAttribute(\"height\"),n={};return e&&(n.width=parseInt(e,10)),i&&(n.height=parseInt(i,10)),n})(t);for(const t in i){const n=i[t];e[t]=n}return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(N.tableRowSeparator);break;case\"td\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(N.tableCellSeparator)}}appendBlockForAttributesWithElement(t,e){this.blockElements.push(e);const i=function(){return{text:[],attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}}(t);return this.blocks.push(i),i}appendEmptyBlock(){return this.appendBlockForAttributesWithElement([],null)}appendStringWithAttributes(t,e){return this.appendPiece(He(t,e))}appendAttachmentWithAttributes(t,e){return this.appendPiece(function(t){return{attachment:t,attributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},type:\"attachment\"}}(t,e))}appendPiece(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)}appendStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[i.length-1];if(\"string\"!==(null==n?void 0:n.type))return i.push(He(t));n.string+=t}prependStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[0];if(\"string\"!==(null==n?void 0:n.type))return i.unshift(He(t));n.string=t+n.string}getTextAttributes(t){let e;const i={};for(const n in O){const r=O[n];if(r.tagName&&p(t,{matchingSelector:r.tagName,untilNode:this.containerElement}))i[n]=!0;else if(r.parser){if(e=r.parser(t),e){let o=!1;for(const i of this.findBlockElementAncestors(t))if(r.parser(i)===e){o=!0;break}o||(i[n]=e)}}else r.styleProperty&&(e=t.style[r.styleProperty],e&&(i[n]=e))}if(F(t)){const n=Je(t,\"attributes\");for(const t in n)e=n[t],i[t]=e}return i}getBlockAttributes(t){const i=[];for(;t&&t!==this.containerElement;){for(const r in e){const o=e[r];var n;if(!1!==o.parse)if(y(t)===o.tagName)(null!==(n=o.test)&&void 0!==n&&n.call(o,t)||!o.test)&&(i.push(r),o.listAttribute&&i.push(o.listAttribute))}t=t.parentNode}return i.reverse()}findBlockElementAncestors(t){const e=[];for(;t&&t!==this.containerElement;){const i=y(t);E().includes(i)&&e.push(t),t=t.parentNode}return e}isBlockElement(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE&&!F(t)&&!p(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return E().includes(y(t))||\"block\"===window.getComputedStyle(t).display}isInsignificantTextNode(t){if((null==t?void 0:t.nodeType)!==Node.TEXT_NODE)return;if(!Ze(t.data))return;const{parentNode:e,previousSibling:i,nextSibling:n}=t;return $e(e.previousSibling)&&!this.isBlockElement(e.previousSibling)||Ge(e)?void 0:!i||this.isBlockElement(i)||!n||this.isBlockElement(n)}isExtraBR(t){return\"br\"===y(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t}needsTableSeparator(t){if(N.removeBlankTableCells){var e;const i=null===(e=t.previousSibling)||void 0===e?void 0:e.textContent;return i&&/\\S/.test(i)}return t.previousSibling}translateBlockElementMarginsToNewlines(){const t=this.getMarginOfDefaultBlockElement();for(let e=0;e<this.blocks.length;e++){const i=this.getMarginOfBlockElementAtIndex(e);i&&(i.top>2*t.top&&this.prependStringToTextAtIndex(\"\\n\",e),i.bottom>2*t.bottom&&this.appendStringToTextAtIndex(\"\\n\",e))}}getMarginOfBlockElementAtIndex(t){const e=this.blockElements[t];if(e&&e.textContent&&!E().includes(y(e))&&!this.processedElements.includes(e))return Xe(e)}getMarginOfDefaultBlockElement(){const t=C(e.default.tagName);return this.containerElement.appendChild(t),Xe(t)}}const Ge=function(t){const{whiteSpace:e}=window.getComputedStyle(t);return[\"pre\",\"pre-wrap\",\"pre-line\"].includes(e)},$e=t=>t&&!ti(t.textContent),Xe=function(t){const e=window.getComputedStyle(t);if(\"block\"===e.display)return{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}},Ye=function(t){return\"style\"===y(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Qe=t=>t.replace(new RegExp(\"^\".concat(jt.source,\"+\")),\"\"),Ze=t=>new RegExp(\"^\".concat(jt.source,\"*$\")).test(t),ti=t=>/\\s$/.test(t),ei=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],ii=\"[\".concat(\"data-trix-serialized-attributes\",\"]\"),ni=new RegExp(\"\\x3c!--block--\\x3e\",\"g\"),ri={\"application/json\":function(t){let e;if(t instanceof je)e=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=Ke.parse(t.innerHTML).getDocument()}return e.toSerializableDocument().toJSONString()},\"text/html\":function(t){let e;if(t instanceof je)e=ue.render(t);else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=t.cloneNode(!0)}return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach((t=>{A(t)})),ei.forEach((t=>{Array.from(e.querySelectorAll(\"[\".concat(t,\"]\"))).forEach((e=>{e.removeAttribute(t)}))})),Array.from(e.querySelectorAll(ii)).forEach((t=>{try{const e=JSON.parse(t.getAttribute(\"data-trix-serialized-attributes\"));t.removeAttribute(\"data-trix-serialized-attributes\");for(const i in e){const n=e[i];t.setAttribute(i,n)}}catch(t){}})),e.innerHTML.replace(ni,\"\")}};var oi=Object.freeze({__proto__:null});class si extends U{constructor(t,e){super(...arguments),this.attachmentManager=t,this.attachment=e,this.id=this.attachment.id,this.file=this.attachment.file}remove(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)}}si.proxyMethod(\"attachment.getAttribute\"),si.proxyMethod(\"attachment.hasAttribute\"),si.proxyMethod(\"attachment.setAttribute\"),si.proxyMethod(\"attachment.getAttributes\"),si.proxyMethod(\"attachment.setAttributes\"),si.proxyMethod(\"attachment.isPending\"),si.proxyMethod(\"attachment.isPreviewable\"),si.proxyMethod(\"attachment.getURL\"),si.proxyMethod(\"attachment.getHref\"),si.proxyMethod(\"attachment.getFilename\"),si.proxyMethod(\"attachment.getFilesize\"),si.proxyMethod(\"attachment.getFormattedFilesize\"),si.proxyMethod(\"attachment.getExtension\"),si.proxyMethod(\"attachment.getContentType\"),si.proxyMethod(\"attachment.getFile\"),si.proxyMethod(\"attachment.setFile\"),si.proxyMethod(\"attachment.releaseFile\"),si.proxyMethod(\"attachment.getUploadProgress\"),si.proxyMethod(\"attachment.setUploadProgress\");class ai extends U{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.managedAttachments={},Array.from(t).forEach((t=>{this.manageAttachment(t)}))}getAttachments(){const t=[];for(const e in this.managedAttachments){const i=this.managedAttachments[e];t.push(i)}return t}manageAttachment(t){return this.managedAttachments[t.id]||(this.managedAttachments[t.id]=new si(this,t)),this.managedAttachments[t.id]}attachmentIsManaged(t){return t.id in this.managedAttachments}requestRemovalOfAttachment(t){var e,i;if(this.attachmentIsManaged(t))return null===(e=this.delegate)||void 0===e||null===(i=e.attachmentManagerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}unmanageAttachment(t){const e=this.managedAttachments[t.id];return delete this.managedAttachments[t.id],e}}class li{constructor(t){this.composition=t,this.document=this.composition.document;const e=this.composition.getSelectedRange();this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}shouldInsertBlockBreak(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter}shouldBreakFormattedBlock(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)}shouldDecreaseListLevel(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()}shouldPrependListItem(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()}shouldRemoveLastBlockAttribute(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()}}class ci extends U{constructor(){super(...arguments),this.document=new je,this.attachments=[],this.currentAttributes={},this.revision=0}setDocument(t){var e,i;if(!t.isEqualTo(this.document))return this.document=t,this.refreshAttachments(),this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeDocument)||void 0===i?void 0:i.call(e,t)}getSnapshot(){return{document:this.document,selectedRange:this.getSelectedRange()}}loadSnapshot(t){var e,i,n,r;let{document:o,selectedRange:s}=t;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionWillLoadSnapshot)||void 0===i||i.call(e),this.setDocument(null!=o?o:new je),this.setSelection(null!=s?s:[0,0]),null===(n=this.delegate)||void 0===n||null===(r=n.compositionDidLoadSnapshot)||void 0===r?void 0:r.call(n)}insertText(t){let{updatePosition:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{updatePosition:!0};const i=this.getSelectedRange();this.setDocument(this.document.insertTextAtRange(t,i));const n=i[0],r=n+t.getLength();return e&&this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}insertBlock(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new De;const e=new je([t]);return this.insertDocument(e)}insertDocument(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new je;const e=this.getSelectedRange();this.setDocument(this.document.insertDocumentAtRange(t,e));const i=e[0],n=i+t.getLength();return this.setSelection(n),this.notifyDelegateOfInsertionAtRange([i,n])}insertString(t,e){const i=this.getCurrentTextAttributes(),n=Le.textForStringWithAttributes(t,i);return this.insertText(n,e)}insertBlockBreak(){const t=this.getSelectedRange();this.setDocument(this.document.insertBlockBreakAtRange(t));const e=t[0],i=e+1;return this.setSelection(i),this.notifyDelegateOfInsertionAtRange([e,i])}insertLineBreak(){const t=new li(this);if(t.shouldDecreaseListLevel())return this.decreaseListLevel(),this.setSelection(t.startPosition);if(t.shouldPrependListItem()){const e=new je([t.block.copyWithoutText()]);return this.insertDocument(e)}return t.shouldInsertBlockBreak()?this.insertBlockBreak():t.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():t.shouldBreakFormattedBlock()?this.breakFormattedBlock(t):this.insertString(\"\\n\")}insertHTML(t){const e=Ke.parse(t).getDocument(),i=this.getSelectedRange();this.setDocument(this.document.mergeDocumentAtRange(e,i));const n=i[0],r=n+e.getLength()-1;return this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}replaceHTML(t){const e=Ke.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),n=this.document.rangeFromLocationRange(i);return this.setDocument(e),this.setSelection(n)}insertFile(t){return this.insertFiles([t])}insertFiles(t){const e=[];return Array.from(t).forEach((t=>{var i;if(null!==(i=this.delegate)&&void 0!==i&&i.compositionShouldAcceptFile(t)){const i=xe.attachmentForFile(t);e.push(i)}})),this.insertAttachments(e)}insertAttachment(t){return this.insertAttachments([t])}insertAttachments(e){let i=new Le;return Array.from(e).forEach((e=>{var n;const r=e.getType(),o=null===(n=t[r])||void 0===n?void 0:n.presentation,s=this.getCurrentTextAttributes();o&&(s.presentation=o);const a=Le.textForAttachmentWithAttributes(e,s);i=i.appendText(a)})),this.insertText(i)}shouldManageDeletingInDirection(t){const e=this.getLocationRange();if(St(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1}deleteInDirection(t){let e,i,n,{length:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=this.getLocationRange();let s=this.getSelectedRange();const a=St(s);if(a?i=\"backward\"===t&&0===o[0].offset:n=o[0].index!==o[1].index,i&&this.canDecreaseBlockAttributeLevel()){const t=this.getBlock();if(t.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(s[0]),t.isEmpty())return!1}return a&&(s=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(e=this.getAttachmentAtRange(s))),e?(this.editAttachment(e),!1):(this.setDocument(this.document.removeTextAtRange(s)),this.setSelection(s[0]),!i&&!n&&void 0)}moveTextFromRange(t){const[e]=Array.from(this.getSelectedRange());return this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)}removeAttachment(t){const e=this.document.getRangeOfAttachment(t);if(e)return this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])}removeLastBlockAttribute(){const[t,e]=Array.from(this.getSelectedRange()),i=this.document.getBlockAtPosition(e);return this.removeCurrentAttribute(i.getLastAttribute()),this.setSelection(t)}insertPlaceholder(){return this.placeholderPosition=this.getPosition(),this.insertString(\" \")}selectPlaceholder(){if(null!=this.placeholderPosition)return this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+\" \".length]),this.getSelectedRange()}forgetPlaceholder(){this.placeholderPosition=null}hasCurrentAttribute(t){const e=this.currentAttributes[t];return null!=e&&!1!==e}toggleCurrentAttribute(t){const e=!this.currentAttributes[t];return e?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)}canSetCurrentAttribute(t){return ht(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)}canSetCurrentTextAttribute(t){const e=this.getSelectedDocument();if(e){for(const t of Array.from(e.getAttachments()))if(!t.hasContent())return!1;return!0}}canSetCurrentBlockAttribute(t){const e=this.getBlock();if(e)return!e.isTerminalBlock()}setCurrentAttribute(t,e){return ht(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())}setTextAttribute(t,e){const i=this.getSelectedRange();if(!i)return;const[n,r]=Array.from(i);if(n!==r)return this.setDocument(this.document.addAttributeAtRange(t,e,i));if(\"href\"===t){const t=Le.textForStringWithAttributes(e,{href:e});return this.insertText(t)}}setBlockAttribute(t,e){const i=this.getSelectedRange();if(this.canSetCurrentAttribute(t))return this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)}removeCurrentAttribute(t){return ht(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())}removeTextAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}removeBlockAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}canDecreaseNestingLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getNestingLevel())>0}canIncreaseNestingLevel(){var t;const e=this.getBlock();if(e){if(null===(t=ht(e.getLastNestableAttribute()))||void 0===t||!t.listAttribute)return e.getNestingLevel()>0;{const t=this.getPreviousBlock();if(t)return function(){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return et((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).slice(0,t.length),t)}(t.getListItemAttributes(),e.getListItemAttributes())}}}decreaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))}increaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))}canDecreaseBlockAttributeLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getAttributeLevel())>0}decreaseBlockAttributeLevel(){var t;const e=null===(t=this.getBlock())||void 0===t?void 0:t.getLastAttribute();if(e)return this.removeCurrentAttribute(e)}decreaseListLevel(){let[t]=Array.from(this.getSelectedRange());const{index:e}=this.document.locationFromPosition(t);let i=e;const n=this.getBlock().getAttributeLevel();let r=this.document.getBlockAtIndex(i+1);for(;r&&r.isListItem()&&!(r.getAttributeLevel()<=n);)i++,r=this.document.getBlockAtIndex(i+1);t=this.document.positionFromLocation({index:e,offset:0});const o=this.document.positionFromLocation({index:i,offset:0});return this.setDocument(this.document.removeLastListAttributeAtRange([t,o]))}updateCurrentAttributes(){const t=this.getSelectedRange({ignoreLock:!0});if(t){const e=this.document.getCommonAttributesAtRange(t);if(Array.from(ct()).forEach((t=>{e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1)})),!Rt(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}}getCurrentAttributes(){return c.call({},this.currentAttributes)}getCurrentTextAttributes(){const t={};for(const e in this.currentAttributes){const i=this.currentAttributes[e];!1!==i&&dt(e)&&(t[e]=i)}return t}freezeSelection(){return this.setCurrentAttribute(\"frozen\",!0)}thawSelection(){return this.removeCurrentAttribute(\"frozen\")}hasFrozenSelection(){return this.hasCurrentAttribute(\"frozen\")}setSelection(t){var e;const i=this.document.locationRangeFromRange(t);return null===(e=this.delegate)||void 0===e?void 0:e.compositionDidRequestChangingSelectionToLocationRange(i)}getSelectedRange(){const t=this.getLocationRange();if(t)return this.document.rangeFromLocationRange(t)}setSelectedRange(t){const e=this.document.locationRangeFromRange(t);return this.getSelectionManager().setLocationRange(e)}getPosition(){const t=this.getLocationRange();if(t)return this.document.positionFromLocation(t[0])}getLocationRange(t){return this.targetLocationRange?this.targetLocationRange:this.getSelectionManager().getLocationRange(t)||Et({index:0,offset:0})}withTargetLocationRange(t,e){let i;this.targetLocationRange=t;try{i=e()}finally{this.targetLocationRange=null}return i}withTargetRange(t,e){const i=this.document.locationRangeFromRange(t);return this.withTargetLocationRange(i,e)}withTargetDOMRange(t,e){const i=this.createLocationRangeFromDOMRange(t,{strict:!1});return this.withTargetLocationRange(i,e)}getExpandedRangeInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,n]=Array.from(this.getSelectedRange());return\"backward\"===t?e?i-=e:i=this.translateUTF16PositionFromOffset(i,-1):e?n+=e:n=this.translateUTF16PositionFromOffset(n,1),Et([i,n])}shouldManageMovingCursorInDirection(t){if(this.editingAttachment)return!0;const e=this.getExpandedRangeInDirection(t);return null!=this.getAttachmentAtRange(e)}moveCursorInDirection(t){let e,i;if(this.editingAttachment)i=this.document.getRangeOfAttachment(this.editingAttachment);else{const n=this.getSelectedRange();i=this.getExpandedRangeInDirection(t),e=!kt(n,i)}if(\"backward\"===t?this.setSelectedRange(i[0]):this.setSelectedRange(i[1]),e){const t=this.getAttachmentAtRange(i);if(t)return this.editAttachment(t)}}expandSelectionInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=this.getExpandedRangeInDirection(t,{length:e});return this.setSelectedRange(i)}expandSelectionForEditing(){if(this.hasCurrentAttribute(\"href\"))return this.expandSelectionAroundCommonAttribute(\"href\")}expandSelectionAroundCommonAttribute(t){const e=this.getPosition(),i=this.document.getRangeOfCommonAttributeAtPosition(t,e);return this.setSelectedRange(i)}selectionContainsAttachments(){var t;return(null===(t=this.getSelectedAttachments())||void 0===t?void 0:t.length)>0}selectionIsInCursorTarget(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())}positionIsCursorTarget(t){const e=this.document.locationFromPosition(t);if(e)return this.locationIsCursorTarget(e)}positionIsBlockBreak(t){var e;return null===(e=this.document.getPieceAtPosition(t))||void 0===e?void 0:e.isBlockBreak()}getSelectedDocument(){const t=this.getSelectedRange();if(t)return this.document.getDocumentAtRange(t)}getSelectedAttachments(){var t;return null===(t=this.getSelectedDocument())||void 0===t?void 0:t.getAttachments()}getAttachments(){return this.attachments.slice(0)}refreshAttachments(){const t=this.document.getAttachments(),{added:e,removed:i}=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=[],n=[],r=new Set;t.forEach((t=>{r.add(t)}));const o=new Set;return e.forEach((t=>{o.add(t),r.has(t)||i.push(t)})),t.forEach((t=>{o.has(t)||n.push(t)})),{added:i,removed:n}}(this.attachments,t);return this.attachments=t,Array.from(i).forEach((t=>{var e,i;t.delegate=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidRemoveAttachment)||void 0===i||i.call(e,t)})),(()=>{const t=[];return Array.from(e).forEach((e=>{var i,n;e.delegate=this,t.push(null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidAddAttachment)||void 0===n?void 0:n.call(i,e))})),t})()}attachmentDidChangeAttributes(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidEditAttachment)||void 0===i?void 0:i.call(e,t)}attachmentDidChangePreviewURL(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeAttachmentPreviewURL)||void 0===i?void 0:i.call(e,t)}editAttachment(t,e){var i,n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidStartEditingAttachment)||void 0===n?void 0:n.call(i,this.editingAttachment,e)}stopEditingAttachment(){var t,e;this.editingAttachment&&(null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidStopEditingAttachment)||void 0===e||e.call(t,this.editingAttachment),this.editingAttachment=null)}updateAttributesForAttachment(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))}removeAttributeForAttachment(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))}breakFormattedBlock(t){let{document:e}=t;const{block:i}=t;let n=t.startPosition,r=[n-1,n];i.getBlockBreakPosition()===t.startLocation.offset?(i.breaksOnReturn()&&\"\\n\"===t.nextCharacter?n+=1:e=e.removeTextAtRange(r),r=[n,n]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?r=[n-1,n+1]:(r=[n,n+1],n+=1):t.startLocation.offset-1!=0&&(n+=1);const o=new je([i.removeLastAttribute().copyWithoutText()]);return this.setDocument(e.insertDocumentAtRange(o,r)),this.setSelection(n)}getPreviousBlock(){const t=this.getLocationRange();if(t){const{index:e}=t[0];if(e>0)return this.document.getBlockAtIndex(e-1)}}getBlock(){const t=this.getLocationRange();if(t)return this.document.getBlockAtIndex(t[0].index)}getAttachmentAtRange(t){const e=this.document.getDocumentAtRange(t);if(e.toString()===\"\".concat(\"\uFFFC\",\"\\n\"))return e.getAttachments()[0]}notifyDelegateOfCurrentAttributesChange(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidChangeCurrentAttributes)||void 0===e?void 0:e.call(t,this.currentAttributes)}notifyDelegateOfInsertionAtRange(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidPerformInsertionAtRange)||void 0===i?void 0:i.call(e,t)}translateUTF16PositionFromOffset(t,e){const i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t);return i.offsetToUCS2Offset(n+e)}}ci.proxyMethod(\"getSelectionManager().getPointRange\"),ci.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),ci.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),ci.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),ci.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),ci.proxyMethod(\"delegate?.getSelectionManager\");class hi extends U{constructor(t){super(...arguments),this.composition=t,this.undoEntries=[],this.redoEntries=[]}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.undoEntries.slice(-1)[0];if(!i||!ui(n,t,e)){const i=this.createEntry({description:t,context:e});this.undoEntries.push(i),this.redoEntries=[]}}undo(){const t=this.undoEntries.pop();if(t){const e=this.createEntry(t);return this.redoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}redo(){const t=this.redoEntries.pop();if(t){const e=this.createEntry(t);return this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}canUndo(){return this.undoEntries.length>0}canRedo(){return this.redoEntries.length>0}createEntry(){let{description:t,context:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{description:null==t?void 0:t.toString(),context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}}}const ui=(t,e,i)=>(null==t?void 0:t.description)===(null==e?void 0:e.toString())&&(null==t?void 0:t.context)===JSON.stringify(i);class di{constructor(t){this.document=t.document,this.selectedRange=t.selectedRange}perform(){return this.removeBlockAttribute(),this.applyBlockAttribute()}getSnapshot(){return{document:this.document,selectedRange:this.selectedRange}}removeBlockAttribute(){return this.findRangesOfBlocks().map((t=>this.document=this.document.removeAttributeAtRange(\"attachmentGallery\",t)))}applyBlockAttribute(){let t=0;this.findRangesOfPieces().forEach((e=>{e[1]-e[0]>1&&(e[0]+=t,e[1]+=t,\"\\n\"!==this.document.getCharacterAtPosition(e[1])&&(this.document=this.document.insertBlockBreakAtRange(e[1]),e[1]<this.selectedRange[1]&&this.moveSelectedRangeForward(),e[1]++,t++),0!==e[0]&&\"\\n\"!==this.document.getCharacterAtPosition(e[0]-1)&&(this.document=this.document.insertBlockBreakAtRange(e[0]),e[0]<this.selectedRange[0]&&this.moveSelectedRangeForward(),e[0]++,t++),this.document=this.document.applyBlockAttributeAtRange(\"attachmentGallery\",!0,e))}))}findRangesOfBlocks(){return this.document.findRangesForBlockAttribute(\"attachmentGallery\")}findRangesOfPieces(){return this.document.findRangesForTextAttribute(\"presentation\",{withValue:\"gallery\"})}moveSelectedRangeForward(){this.selectedRange[0]+=1,this.selectedRange[1]+=1}}const gi=function(t){const e=new di(t);return e.perform(),e.getSnapshot()},mi=[gi];class pi{constructor(t,e,i){this.insertFiles=this.insertFiles.bind(this),this.composition=t,this.selectionManager=e,this.element=i,this.undoManager=new hi(this.composition),this.filters=mi.slice(0)}loadDocument(t){return this.loadSnapshot({document:t,selectedRange:[0,0]})}loadHTML(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";const e=Ke.parse(t,{referenceElement:this.element}).getDocument();return this.loadDocument(e)}loadJSON(t){let{document:e,selectedRange:i}=t;return e=je.fromJSON(e),this.loadSnapshot({document:e,selectedRange:i})}loadSnapshot(t){return this.undoManager=new hi(this.composition),this.composition.loadSnapshot(t)}getDocument(){return this.composition.document}getSelectedDocument(){return this.composition.getSelectedDocument()}getSnapshot(){return this.composition.getSnapshot()}toJSON(){return this.getSnapshot()}deleteInDirection(t){return this.composition.deleteInDirection(t)}insertAttachment(t){return this.composition.insertAttachment(t)}insertAttachments(t){return this.composition.insertAttachments(t)}insertDocument(t){return this.composition.insertDocument(t)}insertFile(t){return this.composition.insertFile(t)}insertFiles(t){return this.composition.insertFiles(t)}insertHTML(t){return this.composition.insertHTML(t)}insertString(t){return this.composition.insertString(t)}insertText(t){return this.composition.insertText(t)}insertLineBreak(){return this.composition.insertLineBreak()}getSelectedRange(){return this.composition.getSelectedRange()}getPosition(){return this.composition.getPosition()}getClientRectAtPosition(t){const e=this.getDocument().locationRangeFromRange([t,t+1]);return this.selectionManager.getClientRectAtLocationRange(e)}expandSelectionInDirection(t){return this.composition.expandSelectionInDirection(t)}moveCursorInDirection(t){return this.composition.moveCursorInDirection(t)}setSelectedRange(t){return this.composition.setSelectedRange(t)}activateAttribute(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.composition.setCurrentAttribute(t,e)}attributeIsActive(t){return this.composition.hasCurrentAttribute(t)}canActivateAttribute(t){return this.composition.canSetCurrentAttribute(t)}deactivateAttribute(t){return this.composition.removeCurrentAttribute(t)}canDecreaseNestingLevel(){return this.composition.canDecreaseNestingLevel()}canIncreaseNestingLevel(){return this.composition.canIncreaseNestingLevel()}decreaseNestingLevel(){if(this.canDecreaseNestingLevel())return this.composition.decreaseNestingLevel()}increaseNestingLevel(){if(this.canIncreaseNestingLevel())return this.composition.increaseNestingLevel()}canRedo(){return this.undoManager.canRedo()}canUndo(){return this.undoManager.canUndo()}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.undoManager.recordUndoEntry(t,{context:e,consolidatable:i})}redo(){if(this.canRedo())return this.undoManager.redo()}undo(){if(this.canUndo())return this.undoManager.undo()}}class fi{constructor(t){this.element=t}findLocationFromContainerAndOffset(t,e){let{strict:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{strict:!0},n=0,r=!1;const o={index:0,offset:0},s=this.findAttachmentElementParentForNode(t);s&&(t=s.parentNode,e=v(s));const a=x(this.element,{usingFilter:xi});for(;a.nextNode();){const s=a.currentNode;if(s===t&&I(t)){T(s)||(o.offset+=e);break}if(s.parentNode===t){if(n++===e)break}else if(!b(t,s)&&n>0)break;L(s,{strict:i})?(r&&o.index++,o.offset=0,r=!0):o.offset+=bi(s)}return o}findContainerAndOffsetFromLocation(t){let e,i;if(0===t.index&&0===t.offset){for(e=this.element,i=0;e.firstChild;)if(e=e.firstChild,S(e)){i=1;break}return[e,i]}let[n,r]=this.findNodeAndOffsetFromLocation(t);if(n){if(I(n))0===bi(n)?(e=n.parentNode.parentNode,i=v(n.parentNode),T(n,{name:\"right\"})&&i++):(e=n,i=t.offset-r);else{if(e=n.parentNode,!L(n.previousSibling)&&!S(e))for(;n===e.lastChild&&(n=e,e=e.parentNode,!S(e)););i=v(n),0!==t.offset&&i++}return[e,i]}}findNodeAndOffsetFromLocation(t){let e,i,n=0;for(const r of this.getSignificantNodesForIndex(t.index)){const o=bi(r);if(t.offset<=n+o)if(I(r)){if(e=r,i=n,t.offset===i&&T(e))break}else e||(e=r,i=n);if(n+=o,n>t.offset)break}return[e,i]}findAttachmentElementParentForNode(t){for(;t&&t!==this.element;){if(F(t))return t;t=t.parentNode}}getSignificantNodesForIndex(t){const e=[],i=x(this.element,{usingFilter:vi});let n=!1;for(;i.nextNode();){const o=i.currentNode;var r;if(D(o)){if(null!=r?r++:r=0,r===t)n=!0;else if(n)break}else n&&e.push(o)}return e}}const bi=function(t){if(t.nodeType===Node.TEXT_NODE){if(T(t))return 0;return t.textContent.length}return\"br\"===y(t)||F(t)?1:0},vi=function(t){return Ai(t)===NodeFilter.FILTER_ACCEPT?xi(t):NodeFilter.FILTER_REJECT},Ai=function(t){return B(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},xi=function(t){return F(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT};class yi{createDOMRangeFromPoint(t){let e,{x:i,y:n}=t;if(document.caretPositionFromPoint){const{offsetNode:t,offset:r}=document.caretPositionFromPoint(i,n);return e=document.createRange(),e.setStart(t,r),e}if(document.caretRangeFromPoint)return document.caretRangeFromPoint(i,n);if(document.body.createTextRange){const t=It();try{const t=document.body.createTextRange();t.moveToPoint(i,n),t.select()}catch(t){}return e=It(),Pt(t),e}}getClientRectsForDOMRange(t){const e=Array.from(t.getClientRects());return[e[0],e[e.length-1]]}}class Ci extends U{constructor(t){super(...arguments),this.didMouseDown=this.didMouseDown.bind(this),this.selectionDidChange=this.selectionDidChange.bind(this),this.element=t,this.locationMapper=new fi(this.element),this.pointMapper=new yi,this.lockCount=0,d(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}getLocationRange(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!1===t.strict?this.createLocationRangeFromDOMRange(It()):t.ignoreLock?this.currentLocationRange:this.lockedLocationRange?this.lockedLocationRange:this.currentLocationRange}setLocationRange(t){if(this.lockedLocationRange)return;t=Et(t);const e=this.createDOMRangeFromLocationRange(t);e&&(Pt(e),this.updateCurrentLocationRange(t))}setLocationRangeFromPointRange(t){t=Et(t);const e=this.getLocationAtPoint(t[0]),i=this.getLocationAtPoint(t[1]);this.setLocationRange([e,i])}getClientRectAtLocationRange(t){const e=this.createDOMRangeFromLocationRange(t);if(e)return this.getClientRectsForDOMRange(e)[1]}locationIsCursorTarget(t){const e=Array.from(this.findNodeAndOffsetFromLocation(t))[0];return T(e)}lock(){0==this.lockCount++&&(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange())}unlock(){if(0==--this.lockCount){const{lockedLocationRange:t}=this;if(this.lockedLocationRange=null,null!=t)return this.setLocationRange(t)}}clearSelection(){var t;return null===(t=Bt())||void 0===t?void 0:t.removeAllRanges()}selectionIsCollapsed(){var t;return!0===(null===(t=It())||void 0===t?void 0:t.collapsed)}selectionIsExpanded(){return!this.selectionIsCollapsed()}createLocationRangeFromDOMRange(t,e){if(null==t||!this.domRangeWithinElement(t))return;const i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e);if(!i)return;const n=t.collapsed?void 0:this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e);return Et([i,n])}didMouseDown(){return this.pauseTemporarily()}pauseTemporarily(){let t;this.paused=!0;const e=()=>{if(this.paused=!1,clearTimeout(i),Array.from(t).forEach((t=>{t.destroy()})),b(document,this.element))return this.selectionDidChange()},i=setTimeout(e,200);t=[\"mousemove\",\"keydown\"].map((t=>d(t,{onElement:document,withCallback:e})))}selectionDidChange(){if(!this.paused&&!f(this.element))return this.updateCurrentLocationRange()}updateCurrentLocationRange(t){var e,i;if((null!=t?t:t=this.createLocationRangeFromDOMRange(It()))&&!kt(t,this.currentLocationRange))return this.currentLocationRange=t,null===(e=this.delegate)||void 0===e||null===(i=e.locationRangeDidChange)||void 0===i?void 0:i.call(e,this.currentLocationRange.slice(0))}createDOMRangeFromLocationRange(t){const e=this.findContainerAndOffsetFromLocation(t[0]),i=St(t)?e:this.findContainerAndOffsetFromLocation(t[1])||e;if(null!=e&&null!=i){const t=document.createRange();return t.setStart(...Array.from(e||[])),t.setEnd(...Array.from(i||[])),t}}getLocationAtPoint(t){const e=this.createDOMRangeFromPoint(t);var i;if(e)return null===(i=this.createLocationRangeFromDOMRange(e))||void 0===i?void 0:i[0]}domRangeWithinElement(t){return t.collapsed?b(this.element,t.startContainer):b(this.element,t.startContainer)&&b(this.element,t.endContainer)}}Ci.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),Ci.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),Ci.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),Ci.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),Ci.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");var Ri=Object.freeze({__proto__:null,Attachment:xe,AttachmentManager:ai,AttachmentPiece:ye,Block:De,Composition:ci,Document:je,Editor:pi,HTMLParser:Ke,HTMLSanitizer:ze,LineBreakInsertion:li,LocationMapper:fi,ManagedAttachment:si,Piece:ve,PointMapper:yi,SelectionManager:Ci,SplittableList:Re,StringPiece:Ce,Text:Le,UndoManager:hi}),Ei=Object.freeze({__proto__:null});const{lang:Si,css:ki,keyNames:Li}=W,Di=function(t){return function(){const e=t.apply(this,arguments);e.do(),this.undos||(this.undos=[]),this.undos.push(e.undo)}};class wi extends U{constructor(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(...arguments),be(this,\"makeElementMutable\",Di((()=>({do:()=>{this.element.dataset.trixMutable=!0},undo:()=>delete this.element.dataset.trixMutable})))),be(this,\"addToolbar\",Di((()=>{const t=C({tagName:\"div\",className:ki.attachmentToolbar,data:{trixMutable:!0},childNodes:C({tagName:\"div\",className:\"trix-button-row\",childNodes:C({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:C({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:Si.remove,attributes:{title:Si.remove},data:{trixAction:\"remove\"}})})})});return this.attachment.isPreviewable()&&t.appendChild(C({tagName:\"div\",className:ki.attachmentMetadataContainer,childNodes:C({tagName:\"span\",className:ki.attachmentMetadata,childNodes:[C({tagName:\"span\",className:ki.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),C({tagName:\"span\",className:ki.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),d(\"click\",{onElement:t,withCallback:this.didClickToolbar}),d(\"click\",{onElement:t,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),g(\"trix-attachment-before-toolbar\",{onElement:this.element,attributes:{toolbar:t,attachment:this.attachment}}),{do:()=>this.element.appendChild(t),undo:()=>A(t)}}))),be(this,\"installCaptionEditor\",Di((()=>{const t=C({tagName:\"textarea\",className:ki.attachmentCaptionEditor,attributes:{placeholder:Si.captionPlaceholder},data:{trixMutable:!0}});t.value=this.attachmentPiece.getCaption();const e=t.cloneNode();e.classList.add(\"trix-autoresize-clone\"),e.tabIndex=-1;const i=function(){e.value=t.value,t.style.height=e.scrollHeight+\"px\"};d(\"input\",{onElement:t,withCallback:i}),d(\"input\",{onElement:t,withCallback:this.didInputCaption}),d(\"keydown\",{onElement:t,withCallback:this.didKeyDownCaption}),d(\"change\",{onElement:t,withCallback:this.didChangeCaption}),d(\"blur\",{onElement:t,withCallback:this.didBlurCaption});const n=this.element.querySelector(\"figcaption\"),r=n.cloneNode();return{do:()=>{if(n.style.display=\"none\",r.appendChild(t),r.appendChild(e),r.classList.add(\"\".concat(ki.attachmentCaption,\"--editing\")),n.parentElement.insertBefore(r,n),i(),this.options.editCaption)return yt((()=>t.focus()))},undo(){A(r),n.style.display=null}}}))),this.didClickToolbar=this.didClickToolbar.bind(this),this.didClickActionButton=this.didClickActionButton.bind(this),this.didKeyDownCaption=this.didKeyDownCaption.bind(this),this.didInputCaption=this.didInputCaption.bind(this),this.didChangeCaption=this.didChangeCaption.bind(this),this.didBlurCaption=this.didBlurCaption.bind(this),this.attachmentPiece=t,this.element=e,this.container=i,this.options=n,this.attachment=this.attachmentPiece.attachment,\"a\"===y(this.element)&&(this.element=this.element.firstChild),this.install()}install(){this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()&&this.installCaptionEditor()}uninstall(){var t;let e=this.undos.pop();for(this.savePendingCaption();e;)e(),e=this.undos.pop();null===(t=this.delegate)||void 0===t||t.didUninstallAttachmentEditor(this)}savePendingCaption(){if(this.pendingCaption){const r=this.pendingCaption;var t,e,i,n;if(this.pendingCaption=null,r)null===(t=this.delegate)||void 0===t||null===(e=t.attachmentEditorDidRequestUpdatingAttributesForAttachment)||void 0===e||e.call(t,{caption:r},this.attachment);else null===(i=this.delegate)||void 0===i||null===(n=i.attachmentEditorDidRequestRemovingAttributeForAttachment)||void 0===n||n.call(i,\"caption\",this.attachment)}}didClickToolbar(t){return t.preventDefault(),t.stopPropagation()}didClickActionButton(t){var e;if(\"remove\"===t.target.getAttribute(\"data-trix-action\"))return null===(e=this.delegate)||void 0===e?void 0:e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment)}didKeyDownCaption(t){var e,i;if(\"return\"===Li[t.keyCode])return t.preventDefault(),this.savePendingCaption(),null===(e=this.delegate)||void 0===e||null===(i=e.attachmentEditorDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,this.attachment)}didInputCaption(t){this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()}didChangeCaption(t){return this.savePendingCaption()}didBlurCaption(t){return this.savePendingCaption()}}class Ti extends U{constructor(t,e){super(...arguments),this.didFocus=this.didFocus.bind(this),this.didBlur=this.didBlur.bind(this),this.didClickAttachment=this.didClickAttachment.bind(this),this.element=t,this.composition=e,this.documentView=new ue(this.composition.document,{element:this.element}),d(\"focus\",{onElement:this.element,withCallback:this.didFocus}),d(\"blur\",{onElement:this.element,withCallback:this.didBlur}),d(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),d(\"mousedown\",{onElement:this.element,matchingSelector:\"[data-trix-attachment]\",withCallback:this.didClickAttachment}),d(\"click\",{onElement:this.element,matchingSelector:\"a\".concat(\"[data-trix-attachment]\"),preventDefault:!0})}didFocus(t){var e;const i=()=>{var t,e;if(!this.focused)return this.focused=!0,null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidFocus)||void 0===e?void 0:e.call(t)};return(null===(e=this.blurPromise)||void 0===e?void 0:e.then(i))||i()}didBlur(t){this.blurPromise=new Promise((t=>yt((()=>{var e,i;f(this.element)||(this.focused=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidBlur)||void 0===i||i.call(e));return this.blurPromise=null,t()}))))}didClickAttachment(t,e){var i,n;const r=this.findAttachmentForElement(e),o=!!p(t.target,{matchingSelector:\"figcaption\"});return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerDidSelectAttachment)||void 0===n?void 0:n.call(i,r,{editCaption:o})}getSerializableElement(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element}render(){var t,e,i,n,r,o;(this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced())&&(null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillSyncDocumentView)||void 0===n||n.call(i),this.documentView.sync(),null===(r=this.delegate)||void 0===r||null===(o=r.compositionControllerDidSyncDocumentView)||void 0===o||o.call(r));return null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidRender)||void 0===e?void 0:e.call(t)}rerenderViewForObject(t){return this.invalidateViewForObject(t),this.render()}invalidateViewForObject(t){return this.documentView.invalidateViewForObject(t)}isViewCachingEnabled(){return this.documentView.isViewCachingEnabled()}enableViewCaching(){return this.documentView.enableViewCaching()}disableViewCaching(){return this.documentView.disableViewCaching()}refreshViewCache(){return this.documentView.garbageCollectCachedViews()}isEditingAttachment(){return!!this.attachmentEditor}installAttachmentEditorForAttachment(t,e){var i;if((null===(i=this.attachmentEditor)||void 0===i?void 0:i.attachment)===t)return;const n=this.documentView.findElementForObject(t);if(!n)return;this.uninstallAttachmentEditor();const r=this.composition.document.getAttachmentPieceForAttachment(t);this.attachmentEditor=new wi(r,n,this.element,e),this.attachmentEditor.delegate=this}uninstallAttachmentEditor(){var t;return null===(t=this.attachmentEditor)||void 0===t?void 0:t.uninstall()}didUninstallAttachmentEditor(){return this.attachmentEditor=null,this.render()}attachmentEditorDidRequestUpdatingAttributesForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.updateAttributesForAttachment(t,e)}attachmentEditorDidRequestRemovingAttributeForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.removeAttributeForAttachment(t,e)}attachmentEditorDidRequestRemovalOfAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}attachmentEditorDidRequestDeselectingAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,t)}canSyncDocumentView(){return!this.isEditingAttachment()}findAttachmentForElement(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))}}class Fi extends U{}const Bi=\"[\".concat(\"data-trix-mutable\",\"]\"),Ii={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0};class Pi extends U{constructor(t){super(t),this.didMutate=this.didMutate.bind(this),this.element=t,this.observer=new window.MutationObserver(this.didMutate),this.start()}start(){return this.reset(),this.observer.observe(this.element,Ii)}stop(){return this.observer.disconnect()}didMutate(t){var e,i;if(this.mutations.push(...Array.from(this.findSignificantMutations(t)||[])),this.mutations.length)return null===(e=this.delegate)||void 0===e||null===(i=e.elementDidMutate)||void 0===i||i.call(e,this.getMutationSummary()),this.reset()}reset(){this.mutations=[]}findSignificantMutations(t){return t.filter((t=>this.mutationIsSignificant(t)))}mutationIsSignificant(t){if(this.nodeIsMutable(t.target))return!1;for(const e of Array.from(this.nodesModifiedByMutation(t)))if(this.nodeIsSignificant(e))return!0;return!1}nodeIsSignificant(t){return t!==this.element&&!this.nodeIsMutable(t)&&!B(t)}nodeIsMutable(t){return p(t,{matchingSelector:Bi})}nodesModifiedByMutation(t){const e=[];switch(t.type){case\"attributes\":\"data-trix-mutable\"!==t.attributeName&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push(...Array.from(t.addedNodes||[])),e.push(...Array.from(t.removedNodes||[]))}return e}getMutationSummary(){return this.getTextMutationSummary()}getTextMutationSummary(){const{additions:t,deletions:e}=this.getTextChangesFromCharacterData(),i=this.getTextChangesFromChildList();Array.from(i.additions).forEach((e=>{Array.from(t).includes(e)||t.push(e)})),e.push(...Array.from(i.deletions||[]));const n={},r=t.join(\"\");r&&(n.textAdded=r);const o=e.join(\"\");return o&&(n.textDeleted=o),n}getMutationsByType(t){return Array.from(this.mutations).filter((e=>e.type===t))}getTextChangesFromChildList(){let t,e;const i=[],n=[];Array.from(this.getMutationsByType(\"childList\")).forEach((t=>{i.push(...Array.from(t.addedNodes||[])),n.push(...Array.from(t.removedNodes||[]))}));0===i.length&&1===n.length&&D(n[0])?(t=[],e=[\"\\n\"]):(t=Ni(i),e=Ni(n));return{additions:t.filter(((t,i)=>t!==e[i])).map(Mt),deletions:e.filter(((e,i)=>e!==t[i])).map(Mt)}}getTextChangesFromCharacterData(){let t,e;const i=this.getMutationsByType(\"characterData\");if(i.length){const n=i[0],r=i[i.length-1],o=function(t,e){let i,n;return t=K.box(t),(e=K.box(e)).length<t.length?[n,i]=Ut(t,e):[i,n]=Ut(e,t),{added:i,removed:n}}(Mt(n.oldValue),Mt(r.target.data));t=o.added,e=o.removed}return{additions:t?[t]:[],deletions:e?[e]:[]}}}const Ni=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=[];for(const i of Array.from(t))switch(i.nodeType){case Node.TEXT_NODE:e.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===y(i)?e.push(\"\\n\"):e.push(...Array.from(Ni(i.childNodes)||[]))}return e};class Oi extends Qt{constructor(t){super(...arguments),this.file=t}perform(t){const e=new FileReader;return e.onerror=()=>t(!1),e.onload=()=>{e.onerror=null;try{e.abort()}catch(t){}return t(!0,this.file)},e.readAsArrayBuffer(this.file)}}class Mi{constructor(t){this.element=t}shouldIgnore(t){return!!o.samsungAndroid&&(this.previousEvent=this.event,this.event=t,this.checkSamsungKeyboardBuggyModeStart(),this.checkSamsungKeyboardBuggyModeEnd(),this.buggyMode)}checkSamsungKeyboardBuggyModeStart(){this.insertingLongTextAfterUnidentifiedChar()&&ji(this.element.innerText,this.event.data)&&(this.buggyMode=!0,this.event.preventDefault())}checkSamsungKeyboardBuggyModeEnd(){this.buggyMode&&\"insertText\"!==this.event.inputType&&(this.buggyMode=!1)}insertingLongTextAfterUnidentifiedChar(){var t;return this.isBeforeInputInsertText()&&this.previousEventWasUnidentifiedKeydown()&&(null===(t=this.event.data)||void 0===t?void 0:t.length)>50}isBeforeInputInsertText(){return\"beforeinput\"===this.event.type&&\"insertText\"===this.event.inputType}previousEventWasUnidentifiedKeydown(){var t,e;return\"keydown\"===(null===(t=this.previousEvent)||void 0===t?void 0:t.type)&&\"Unidentified\"===(null===(e=this.previousEvent)||void 0===e?void 0:e.key)}}const ji=(t,e)=>Ui(t)===Ui(e),Wi=new RegExp(\"(\".concat(\"\uFFFC\",\"|\").concat(\"\\ufeff\",\"|\").concat(\"\u00A0\",\"|\\\\s)+\"),\"g\"),Ui=t=>t.replace(Wi,\" \").trim();class qi extends U{constructor(t){super(...arguments),this.element=t,this.mutationObserver=new Pi(this.element),this.mutationObserver.delegate=this,this.flakyKeyboardDetector=new Mi(this.element);for(const t in this.constructor.events)d(t,{onElement:this.element,withCallback:this.handlerFor(t)})}elementDidMutate(t){}editorWillSyncDocumentView(){return this.mutationObserver.stop()}editorDidSyncDocumentView(){return this.mutationObserver.start()}requestRender(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestRender)||void 0===e?void 0:e.call(t)}requestReparse(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestReparse)||void 0===e||e.call(t),this.requestRender()}attachFiles(t){const e=Array.from(t).map((t=>new Oi(t)));return Promise.all(e).then((t=>{this.handleInput((function(){var e,i;return null===(e=this.delegate)||void 0===e||e.inputControllerWillAttachFiles(),null===(i=this.responder)||void 0===i||i.insertFiles(t),this.requestRender()}))}))}handlerFor(t){return e=>{e.defaultPrevented||this.handleInput((()=>{if(!f(this.element)){if(this.flakyKeyboardDetector.shouldIgnore(e))return;this.eventName=t,this.constructor.events[t].call(this,e)}}))}}handleInput(t){try{var e;null===(e=this.delegate)||void 0===e||e.inputControllerWillHandleInput(),t.call(this)}finally{var i;null===(i=this.delegate)||void 0===i||i.inputControllerDidHandleInput()}}createLinkHTML(t,e){const i=document.createElement(\"a\");return i.href=t,i.textContent=e||t,i.outerHTML}}var Vi;be(qi,\"events\",{});const{browser:zi,keyNames:_i}=W;let Hi=0;class Ji extends qi{constructor(){super(...arguments),this.resetInputSummary()}setInputSummary(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.inputSummary.eventName=this.eventName;for(const e in t){const i=t[e];this.inputSummary[e]=i}return this.inputSummary}resetInputSummary(){this.inputSummary={}}reset(){return this.resetInputSummary(),Ft.reset()}elementDidMutate(t){var e,i;return this.isComposing()?null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidAllowUnhandledInput)||void 0===i?void 0:i.call(e):this.handleInput((function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()}))}mutationIsExpected(t){let{textAdded:e,textDeleted:i}=t;if(this.inputSummary.preferDocument)return!0;const n=null!=e?e===this.inputSummary.textAdded:!this.inputSummary.textAdded,r=null!=i?this.inputSummary.didDelete:!this.inputSummary.didDelete,o=[\"\\n\",\" \\n\"].includes(e)&&!n,s=\"\\n\"===i&&!r;if(o&&!s||s&&!o){const t=this.getSelectedRange();if(t){var a;const i=o?e.replace(/\\n$/,\"\").length||-1:(null==e?void 0:e.length)||1;if(null!==(a=this.responder)&&void 0!==a&&a.positionIsBlockBreak(t[1]+i))return!0}}return n&&r}mutationIsSignificant(t){var e;const i=Object.keys(t).length>0,n=\"\"===(null===(e=this.compositionInput)||void 0===e?void 0:e.getEndData());return i||!n}getCompositionInput(){if(this.isComposing())return this.compositionInput;this.compositionInput=new Yi(this)}isComposing(){return this.compositionInput&&!this.compositionInput.isEnded()}deleteInDirection(t,e){var i;return!1!==(null===(i=this.responder)||void 0===i?void 0:i.deleteInDirection(t))?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0}serializeSelectionToDataTransfer(t){var e;if(!function(t){if(null==t||!t.setData)return!1;for(const e in vt){const i=vt[e];try{if(t.setData(e,i),!t.getData(e)===i)return!1}catch(t){return!1}}return!0}(t))return;const i=null===(e=this.responder)||void 0===e?void 0:e.getSelectedDocument().toSerializableDocument();return t.setData(\"application/x-trix-document\",JSON.stringify(i)),t.setData(\"text/html\",ue.render(i).innerHTML),t.setData(\"text/plain\",i.toString().replace(/\\n$/,\"\")),!0}canAcceptDataTransfer(t){const e={};return Array.from((null==t?void 0:t.types)||[]).forEach((t=>{e[t]=!0})),e.Files||e[\"application/x-trix-document\"]||e[\"text/html\"]||e[\"text/plain\"]}getPastedHTMLUsingHiddenElement(t){const e=this.getSelectedRange(),i={position:\"absolute\",left:\"\".concat(window.pageXOffset,\"px\"),top:\"\".concat(window.pageYOffset,\"px\"),opacity:0},n=C({style:i,tagName:\"div\",editable:!0});return document.body.appendChild(n),n.focus(),requestAnimationFrame((()=>{const i=n.innerHTML;return A(n),this.setSelectedRange(e),t(i)}))}}be(Ji,\"events\",{keydown(t){this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0;const e=_i[t.keyCode];if(e){var i;let n=this.keys;[\"ctrl\",\"alt\",\"shift\",\"meta\"].forEach((e=>{var i;t[\"\".concat(e,\"Key\")]&&(\"ctrl\"===e&&(e=\"control\"),n=null===(i=n)||void 0===i?void 0:i[e])})),null!=(null===(i=n)||void 0===i?void 0:i[e])&&(this.setInputSummary({keyName:e}),Ft.reset(),n[e].call(this,t))}if(xt(t)){const e=String.fromCharCode(t.keyCode).toLowerCase();if(e){var n;const i=[\"alt\",\"shift\"].map((e=>{if(t[\"\".concat(e,\"Key\")])return e})).filter((t=>t));i.push(e),null!==(n=this.delegate)&&void 0!==n&&n.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}}},keypress(t){if(null!=this.inputSummary.eventName)return;if(t.metaKey)return;if(t.ctrlKey&&!t.altKey)return;const e=$i(t);var i,n;return e?(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping(),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e,didDelete:this.selectionIsExpanded()})):void 0},textInput(t){const{data:e}=t,{textAdded:i}=this.inputSummary;if(i&&i!==e&&i.toUpperCase()===e){var n;const t=this.getSelectedRange();return this.setSelectedRange([t[0],t[1]+i.length]),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(t)}},dragenter(t){t.preventDefault()},dragstart(t){var e,i;return this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidStartDrag)||void 0===i?void 0:i.call(e)},dragover(t){if(this.draggedRange||this.canAcceptDataTransfer(t.dataTransfer)){t.preventDefault();const n={x:t.clientX,y:t.clientY};var e,i;if(!Rt(n,this.draggingPoint))return this.draggingPoint=n,null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidReceiveDragOverPoint)||void 0===i?void 0:i.call(e,this.draggingPoint)}},dragend(t){var e,i;null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidCancelDrag)||void 0===i||i.call(e),this.draggedRange=null,this.draggingPoint=null},drop(t){var e,i;t.preventDefault();const n=null===(e=t.dataTransfer)||void 0===e?void 0:e.files,r=t.dataTransfer.getData(\"application/x-trix-document\"),o={x:t.clientX,y:t.clientY};if(null===(i=this.responder)||void 0===i||i.setLocationRangeFromPointRange(o),null!=n&&n.length)this.attachFiles(n);else if(this.draggedRange){var s,a;null===(s=this.delegate)||void 0===s||s.inputControllerWillMoveText(),null===(a=this.responder)||void 0===a||a.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()}else if(r){var l;const t=je.fromJSONString(r);null===(l=this.responder)||void 0===l||l.insertDocument(t),this.requestRender()}this.draggedRange=null,this.draggingPoint=null},cut(t){var e,i;if(null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null===(i=this.delegate)||void 0===i||i.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented))return this.requestRender()},copy(t){var e;null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault()},paste(t){const e=t.clipboardData||t.testClipboardData,i={clipboard:e};if(!e||Xi(t))return void this.getPastedHTMLUsingHiddenElement((t=>{var e,n,r;return i.type=\"text/html\",i.html=t,null===(e=this.delegate)||void 0===e||e.inputControllerWillPaste(i),null===(n=this.responder)||void 0===n||n.insertHTML(i.html),this.requestRender(),null===(r=this.delegate)||void 0===r?void 0:r.inputControllerDidPaste(i)}));const n=e.getData(\"URL\"),r=e.getData(\"text/html\"),o=e.getData(\"public.url-name\");if(n){var s,a,l;let t;i.type=\"text/html\",t=o?Wt(o).trim():n,i.html=this.createLinkHTML(n,t),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.setInputSummary({textAdded:t,didDelete:this.selectionIsExpanded()}),null===(a=this.responder)||void 0===a||a.insertHTML(i.html),this.requestRender(),null===(l=this.delegate)||void 0===l||l.inputControllerDidPaste(i)}else if(At(e)){var c,h,u;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(c=this.delegate)||void 0===c||c.inputControllerWillPaste(i),this.setInputSummary({textAdded:i.string,didDelete:this.selectionIsExpanded()}),null===(h=this.responder)||void 0===h||h.insertString(i.string),this.requestRender(),null===(u=this.delegate)||void 0===u||u.inputControllerDidPaste(i)}else if(r){var d,g,m;i.type=\"text/html\",i.html=r,null===(d=this.delegate)||void 0===d||d.inputControllerWillPaste(i),null===(g=this.responder)||void 0===g||g.insertHTML(i.html),this.requestRender(),null===(m=this.delegate)||void 0===m||m.inputControllerDidPaste(i)}else if(Array.from(e.types).includes(\"Files\")){var p,f,b;const t=null===(p=e.items)||void 0===p||null===(f=p[0])||void 0===f||null===(b=f.getAsFile)||void 0===b?void 0:b.call(f);if(t){var v,A,x;const e=Ki(t);!t.name&&e&&(t.name=\"pasted-file-\".concat(++Hi,\".\").concat(e)),i.type=\"File\",i.file=t,null===(v=this.delegate)||void 0===v||v.inputControllerWillAttachFiles(),null===(A=this.responder)||void 0===A||A.insertFile(i.file),this.requestRender(),null===(x=this.delegate)||void 0===x||x.inputControllerDidPaste(i)}}t.preventDefault()},compositionstart(t){return this.getCompositionInput().start(t.data)},compositionupdate(t){return this.getCompositionInput().update(t.data)},compositionend(t){return this.getCompositionInput().end(t.data)},beforeinput(t){this.inputSummary.didInput=!0},input(t){return this.inputSummary.didInput=!0,t.stopPropagation()}}),be(Ji,\"keys\",{backspace(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},delete(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},return(t){var e,i;return this.setInputSummary({preferDocument:!0}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i?void 0:i.insertLineBreak()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canIncreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.increaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},right(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},control:{d(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o(t){var e,i;return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{return(t){var e,i;null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canDecreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.decreaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"backward\")},right(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"forward\")}},alt:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}},meta:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}}}),Ji.proxyMethod(\"responder?.getSelectedRange\"),Ji.proxyMethod(\"responder?.setSelectedRange\"),Ji.proxyMethod(\"responder?.expandSelectionInDirection\"),Ji.proxyMethod(\"responder?.selectionIsInCursorTarget\"),Ji.proxyMethod(\"responder?.selectionIsExpanded\");const Ki=t=>{var e,i;return null===(e=t.type)||void 0===e||null===(i=e.match(/\\/(\\w+)$/))||void 0===i?void 0:i[1]},Gi=!(null===(Vi=\" \".codePointAt)||void 0===Vi||!Vi.call(\" \",0)),$i=function(t){if(t.key&&Gi&&t.key.codePointAt(0)===t.keyCode)return t.key;{let e;if(null===t.which?e=t.keyCode:0!==t.which&&0!==t.charCode&&(e=t.charCode),null!=e&&\"escape\"!==_i[e])return K.fromCodepoints([e]).toString()}},Xi=function(t){const e=t.clipboardData;if(e){if(e.types.includes(\"text/html\")){for(const t of e.types){const i=/^CorePasteboardFlavorType/.test(t),n=/^dyn\\./.test(t)&&e.getData(t);if(i||n)return!0}return!1}{const t=e.types.includes(\"com.apple.webarchive\"),i=e.types.includes(\"com.apple.flat-rtfd\");return t||i}}};class Yi extends U{constructor(t){super(...arguments),this.inputController=t,this.responder=this.inputController.responder,this.delegate=this.inputController.delegate,this.inputSummary=this.inputController.inputSummary,this.data={}}start(t){if(this.data.start=t,this.isSignificant()){var e,i;if(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded)null===(i=this.responder)||void 0===i||i.deleteInDirection(\"left\");this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null===(e=this.responder)||void 0===e?void 0:e.getSelectedRange()}}update(t){if(this.data.update=t,this.isSignificant()){const t=this.selectPlaceholder();t&&(this.forgetPlaceholder(),this.range=t)}}end(t){return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.setSelectedRange(this.range),null===(n=this.responder)||void 0===n||n.insertString(this.data.end),null===(r=this.responder)||void 0===r?void 0:r.setSelectedRange(this.range[0]+this.data.end.length)):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset();var e,i,n,r}getEndData(){return this.data.end}isEnded(){return null!=this.getEndData()}isSignificant(){return!zi.composesExistingText||this.inputSummary.didInput}canApplyToDocument(){var t,e;return 0===(null===(t=this.data.start)||void 0===t?void 0:t.length)&&(null===(e=this.data.end)||void 0===e?void 0:e.length)>0&&this.range}}Yi.proxyMethod(\"inputController.setInputSummary\"),Yi.proxyMethod(\"inputController.requestRender\"),Yi.proxyMethod(\"inputController.requestReparse\"),Yi.proxyMethod(\"responder?.selectionIsExpanded\"),Yi.proxyMethod(\"responder?.insertPlaceholder\"),Yi.proxyMethod(\"responder?.selectPlaceholder\"),Yi.proxyMethod(\"responder?.forgetPlaceholder\");class Qi extends qi{constructor(){super(...arguments),this.render=this.render.bind(this)}elementDidMutate(){return this.scheduledRender?this.composing?null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidAllowUnhandledInput)||void 0===e?void 0:e.call(t):void 0:this.reparse();var t,e}scheduleRender(){return this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)}render(){var t,e;(cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing)||(null===(e=this.delegate)||void 0===e||e.render());null===(t=this.afterRender)||void 0===t||t.call(this),this.afterRender=null}reparse(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.reparse()}insertString(){var t;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",i=arguments.length>1?arguments[1]:void 0;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e,i)}))}toggleAttributeIfSupported(t){var e;if(ct().includes(t))return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.toggleCurrentAttribute(t)}))}activateAttributeIfSupported(t,e){var i;if(ct().includes(t))return null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var i;return null===(i=this.responder)||void 0===i?void 0:i.setCurrentAttribute(t,e)}))}deleteInDirection(t){let{recordUndoEntry:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{recordUndoEntry:!0};var i;e&&(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping());const n=()=>{var e;return null===(e=this.responder)||void 0===e?void 0:e.deleteInDirection(t)},r=this.getTargetDOMRange({minLength:2});return r?this.withTargetDOMRange(r,n):n()}withTargetDOMRange(t,e){var i;return\"function\"==typeof t&&(e=t,t=this.getTargetDOMRange()),t?null===(i=this.responder)||void 0===i?void 0:i.withTargetDOMRange(t,e.bind(this)):(Ft.reset(),e.call(this))}getTargetDOMRange(){var t,e;let{minLength:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{minLength:0};const n=null===(t=(e=this.event).getTargetRanges)||void 0===t?void 0:t.call(e);if(n&&n.length){const t=Zi(n[0]);if(0===i||t.toString().length>=i)return t}}withEvent(t,e){let i;this.event=t;try{i=e.call(this)}finally{this.event=null}return i}}be(Qi,\"events\",{keydown(t){if(xt(t)){var e;const i=rn(t);null!==(e=this.delegate)&&void 0!==e&&e.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}else{let e=t.key;t.altKey&&(e+=\"+Alt\"),t.shiftKey&&(e+=\"+Shift\");const i=this.constructor.keys[e];if(i)return this.withEvent(t,i)}},paste(t){var e;let i;const n=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"URL\");return en(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):nn(t)?(t.preventDefault(),i={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(i),null===(o=this.responder)||void 0===o||o.insertString(i.string),this.render(),null===(s=this.delegate)||void 0===s?void 0:s.inputControllerDidPaste(i)):n?(t.preventDefault(),i={type:\"text/html\",html:this.createLinkHTML(n)},null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),null===(l=this.responder)||void 0===l||l.insertHTML(i.html),this.render(),null===(c=this.delegate)||void 0===c?void 0:c.inputControllerDidPaste(i)):void 0;var r,o,s,a,l,c},beforeinput(t){const e=this.constructor.inputTypes[t.inputType];e&&(this.withEvent(t,e),this.scheduleRender())},input(t){Ft.reset()},dragstart(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.selectionContainsAttachments()&&(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null===(i=this.responder)||void 0===i?void 0:i.getSelectedRange(),point:on(t)})},dragenter(t){tn(t)&&t.preventDefault()},dragover(t){if(this.dragging){t.preventDefault();const i=on(t);var e;if(!Rt(i,this.dragging.point))return this.dragging.point=i,null===(e=this.responder)||void 0===e?void 0:e.setLocationRangeFromPointRange(i)}else tn(t)&&t.preventDefault()},drop(t){var e,i;if(this.dragging)return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),null===(i=this.responder)||void 0===i||i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender();if(tn(t)){var n;t.preventDefault();const e=on(t);return null===(n=this.responder)||void 0===n||n.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)}},dragend(){var t;this.dragging&&(null===(t=this.responder)||void 0===t||t.setSelectedRange(this.dragging.range),this.dragging=null)},compositionend(t){this.composing&&(this.composing=!1,o.recentAndroid||this.scheduleRender())}}),be(Qi,\"keys\",{ArrowLeft(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},ArrowRight(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"forward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},Backspace(){var t,e,i;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageDeletingInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.deleteInDirection(\"backward\"),this.render()},Tab(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.increaseNestingLevel(),this.render()},\"Tab+Shift\"(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.decreaseNestingLevel(),this.render()}}),be(Qi,\"inputTypes\",{deleteByComposition(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut(){return this.deleteInDirection(\"backward\")},deleteByDrag(){return this.event.preventDefault(),this.withTargetDOMRange((function(){var t;this.deleteByDragRange=null===(t=this.responder)||void 0===t?void 0:t.getSelectedRange()}))},deleteCompositionText(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent(){return this.deleteInDirection(\"backward\")},deleteContentBackward(){return this.deleteInDirection(\"backward\")},deleteContentForward(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward(){return this.deleteInDirection(\"backward\")},deleteHardLineForward(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward(){return this.deleteInDirection(\"forward\")},deleteWordBackward(){return this.deleteInDirection(\"backward\")},deleteWordForward(){return this.deleteInDirection(\"forward\")},formatBackColor(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.increaseNestingLevel()}))},formatItalic(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.decreaseNestingLevel()}))},formatRemove(){this.withTargetDOMRange((function(){for(const i in null===(t=this.responder)||void 0===t?void 0:t.getCurrentAttributes()){var t,e;null===(e=this.responder)||void 0===e||e.removeCurrentAttribute(i)}}))},formatSetBlockTextDirection(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformRedo()},historyUndo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformUndo()},insertCompositionText(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop(){const t=this.deleteByDragRange;var e;if(t)return this.deleteByDragRange=null,null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.moveTextFromRange(t)}))},insertFromPaste(){var t;const{dataTransfer:e}=this.event,i={dataTransfer:e},n=e.getData(\"URL\"),r=e.getData(\"text/html\");if(n){var o;let t;this.event.preventDefault(),i.type=\"text/html\";const r=e.getData(\"public.url-name\");t=r?Wt(r).trim():n,i.html=this.createLinkHTML(n,t),null===(o=this.delegate)||void 0===o||o.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(i.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(At(e)){var s;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(i.string)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(r){var a;this.event.preventDefault(),i.type=\"text/html\",i.html=r,null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(i.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(null!==(t=e.files)&&void 0!==t&&t.length){var l;i.type=\"File\",i.file=e.files[0],null===(l=this.delegate)||void 0===l||l.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertFile(i.file)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}},insertFromYank(){return this.insertString(this.event.data)},insertLineBreak(){return this.insertString(\"\\n\")},insertLink(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph(){var t;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertLineBreak()}))},insertReplacementText(){return this.insertString(this.event.dataTransfer.getData(\"text/plain\"),{updatePosition:!1})},insertText(){var t;return this.insertString(this.event.data||(null===(t=this.event.dataTransfer)||void 0===t?void 0:t.getData(\"text/plain\")))},insertTranspose(){return this.insertString(this.event.data)},insertUnorderedList(){return this.toggleAttributeIfSupported(\"bullet\")}});const Zi=function(t){const e=document.createRange();return e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},tn=t=>{var e;return Array.from((null===(e=t.dataTransfer)||void 0===e?void 0:e.types)||[]).includes(\"Files\")},en=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"Files\")&&1===e.types.length&&e.files.length>=1},nn=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"text/plain\")&&1===e.types.length},rn=function(t){const e=[];return t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},on=t=>({x:t.clientX,y:t.clientY}),sn=\"\".concat(\"[data-trix-attribute]\",\", \").concat(\"[data-trix-action]\"),an=\"\".concat(\"[data-trix-dialog]\",\"[data-trix-active]\"),ln=\"\".concat(\"[data-trix-dialog]\",\" [data-trix-method]\"),cn=\"\".concat(\"[data-trix-dialog]\",\" [data-trix-input]\"),hn=(t,e)=>(e||(e=dn(t)),t.querySelector(\"[data-trix-input][name='\".concat(e,\"']\"))),un=t=>t.getAttribute(\"data-trix-action\"),dn=t=>t.getAttribute(\"data-trix-attribute\")||t.getAttribute(\"data-trix-dialog-attribute\");class gn extends U{constructor(t){super(t),this.didClickActionButton=this.didClickActionButton.bind(this),this.didClickAttributeButton=this.didClickAttributeButton.bind(this),this.didClickDialogButton=this.didClickDialogButton.bind(this),this.didKeyDownDialogInput=this.didKeyDownDialogInput.bind(this),this.element=t,this.attributes={},this.actions={},this.resetDialogInputs(),d(\"mousedown\",{onElement:this.element,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),d(\"mousedown\",{onElement:this.element,matchingSelector:\"[data-trix-attribute]\",withCallback:this.didClickAttributeButton}),d(\"click\",{onElement:this.element,matchingSelector:sn,preventDefault:!0}),d(\"click\",{onElement:this.element,matchingSelector:ln,withCallback:this.didClickDialogButton}),d(\"keydown\",{onElement:this.element,matchingSelector:cn,withCallback:this.didKeyDownDialogInput})}didClickActionButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=un(e);return this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r?void 0:r.toolbarDidInvokeAction(n);var r}didClickAttributeButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=dn(e);var r;this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r||r.toolbarDidToggleAttribute(n);return this.refreshAttributeButtons()}didClickDialogButton(t,e){const i=p(e,{matchingSelector:\"[data-trix-dialog]\"});return this[e.getAttribute(\"data-trix-method\")].call(this,i)}didKeyDownDialogInput(t,e){if(13===t.keyCode){t.preventDefault();const i=e.getAttribute(\"name\"),n=this.getDialog(i);this.setAttribute(n)}if(27===t.keyCode)return t.preventDefault(),this.hideDialog()}updateActions(t){return this.actions=t,this.refreshActionButtons()}refreshActionButtons(){return this.eachActionButton(((t,e)=>{t.disabled=!1===this.actions[e]}))}eachActionButton(t){return Array.from(this.element.querySelectorAll(\"[data-trix-action]\")).map((e=>t(e,un(e))))}updateAttributes(t){return this.attributes=t,this.refreshAttributeButtons()}refreshAttributeButtons(){return this.eachAttributeButton(((t,e)=>(t.disabled=!1===this.attributes[e],this.attributes[e]||this.dialogIsVisible(e)?(t.setAttribute(\"data-trix-active\",\"\"),t.classList.add(\"trix-active\")):(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\")))))}eachAttributeButton(t){return Array.from(this.element.querySelectorAll(\"[data-trix-attribute]\")).map((e=>t(e,dn(e))))}applyKeyboardCommand(t){const e=JSON.stringify(t.sort());for(const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))){const i=t.getAttribute(\"data-trix-key\").split(\"+\");if(JSON.stringify(i.sort())===e)return g(\"mousedown\",{onElement:t}),!0}return!1}dialogIsVisible(t){const e=this.getDialog(t);if(e)return e.hasAttribute(\"data-trix-active\")}toggleDialog(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)}showDialog(t){var e,i;this.hideDialog(),null===(e=this.delegate)||void 0===e||e.toolbarWillShowDialog();const n=this.getDialog(t);n.setAttribute(\"data-trix-active\",\"\"),n.classList.add(\"trix-active\"),Array.from(n.querySelectorAll(\"input[disabled]\")).forEach((t=>{t.removeAttribute(\"disabled\")}));const r=dn(n);if(r){const e=hn(n,t);e&&(e.value=this.attributes[r]||\"\",e.select())}return null===(i=this.delegate)||void 0===i?void 0:i.toolbarDidShowDialog(t)}setAttribute(t){const e=dn(t),i=hn(t,e);return i.willValidate&&!i.checkValidity()?(i.setAttribute(\"data-trix-validate\",\"\"),i.classList.add(\"trix-validate\"),i.focus()):(null===(n=this.delegate)||void 0===n||n.toolbarDidUpdateAttribute(e,i.value),this.hideDialog());var n}removeAttribute(t){var e;const i=dn(t);return null===(e=this.delegate)||void 0===e||e.toolbarDidRemoveAttribute(i),this.hideDialog()}hideDialog(){const t=this.element.querySelector(an);var e;if(t)return t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null===(e=this.delegate)||void 0===e?void 0:e.toolbarDidHideDialog((t=>t.getAttribute(\"data-trix-dialog\"))(t))}resetDialogInputs(){Array.from(this.element.querySelectorAll(cn)).forEach((t=>{t.setAttribute(\"disabled\",\"disabled\"),t.removeAttribute(\"data-trix-validate\"),t.classList.remove(\"trix-validate\")}))}getDialog(t){return this.element.querySelector(\"[data-trix-dialog=\".concat(t,\"]\"))}}class mn extends Fi{constructor(t){let{editorElement:e,document:i,html:n}=t;super(...arguments),this.editorElement=e,this.selectionManager=new Ci(this.editorElement),this.selectionManager.delegate=this,this.composition=new ci,this.composition.delegate=this,this.attachmentManager=new ai(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=2===P.getLevel()?new Qi(this.editorElement):new Ji(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new Ti(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new gn(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new pi(this.composition,this.selectionManager,this.editorElement),i?this.editor.loadDocument(i):this.editor.loadHTML(n)}registerSelectionManager(){return Ft.registerSelectionManager(this.selectionManager)}unregisterSelectionManager(){return Ft.unregisterSelectionManager(this.selectionManager)}render(){return this.compositionController.render()}reparse(){return this.composition.replaceHTML(this.editorElement.innerHTML)}compositionDidChangeDocument(t){if(this.notifyEditorElement(\"document-change\"),!this.handlingInput)return this.render()}compositionDidChangeCurrentAttributes(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})}compositionDidPerformInsertionAtRange(t){this.pasting&&(this.pastedRange=t)}compositionShouldAcceptFile(t){return this.notifyEditorElement(\"file-accept\",{file:t})}compositionDidAddAttachment(t){const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-add\",{attachment:e})}compositionDidEditAttachment(t){this.compositionController.rerenderViewForObject(t);const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")}compositionDidChangeAttachmentPreviewURL(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")}compositionDidRemoveAttachment(t){const e=this.attachmentManager.unmanageAttachment(t);return this.notifyEditorElement(\"attachment-remove\",{attachment:e})}compositionDidStartEditingAttachment(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)}compositionDidStopEditingAttachment(t){this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null}compositionDidRequestChangingSelectionToLocationRange(t){if(!this.loadingSnapshot||this.isFocused())return this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()}compositionWillLoadSnapshot(){this.loadingSnapshot=!0}compositionDidLoadSnapshot(){this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1}getSelectionManager(){return this.selectionManager}attachmentManagerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}compositionControllerWillSyncDocumentView(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()}compositionControllerDidSyncDocumentView(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")}compositionControllerDidRender(){this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision}compositionControllerDidFocus(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")}compositionControllerDidBlur(){return this.notifyEditorElement(\"blur\")}compositionControllerDidSelectAttachment(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)}compositionControllerDidRequestDeselectingAttachment(t){const e=this.attachmentLocationRange||this.composition.document.getLocationRangeOfAttachment(t);return this.selectionManager.setLocationRange(e[1])}compositionControllerWillUpdateAttachment(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})}compositionControllerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}inputControllerWillHandleInput(){this.handlingInput=!0,this.requestedRender=!1}inputControllerDidRequestRender(){this.requestedRender=!0}inputControllerDidHandleInput(){if(this.handlingInput=!1,this.requestedRender)return this.requestedRender=!1,this.render()}inputControllerDidAllowUnhandledInput(){return this.notifyEditorElement(\"change\")}inputControllerDidRequestReparse(){return this.reparse()}inputControllerWillPerformTyping(){return this.recordTypingUndoEntry()}inputControllerWillPerformFormatting(t){return this.recordFormattingUndoEntry(t)}inputControllerWillCutText(){return this.editor.recordUndoEntry(\"Cut\")}inputControllerWillPaste(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})}inputControllerDidPaste(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})}inputControllerWillMoveText(){return this.editor.recordUndoEntry(\"Move\")}inputControllerWillAttachFiles(){return this.editor.recordUndoEntry(\"Drop Files\")}inputControllerWillPerformUndo(){return this.editor.undo()}inputControllerWillPerformRedo(){return this.editor.redo()}inputControllerDidReceiveKeyboardCommand(t){return this.toolbarController.applyKeyboardCommand(t)}inputControllerDidStartDrag(){this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()}inputControllerDidReceiveDragOverPoint(t){return this.selectionManager.setLocationRangeFromPointRange(t)}inputControllerDidCancelDrag(){this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null}locationRangeDidChange(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!kt(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")}toolbarDidClickButton(){if(!this.getLocationRange())return this.setLocationRange({index:0,offset:0})}toolbarDidInvokeAction(t){return this.invokeAction(t)}toolbarDidToggleAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidUpdateAttribute(t,e){if(this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidRemoveAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarWillShowDialog(t){return this.composition.expandSelectionForEditing(),this.freezeSelection()}toolbarDidShowDialog(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})}toolbarDidHideDialog(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})}freezeSelection(){if(!this.selectionFrozen)return this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render()}thawSelection(){if(this.selectionFrozen)return this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()}canInvokeAction(t){return!!this.actionIsExternal(t)||!(null===(e=this.actions[t])||void 0===e||null===(i=e.test)||void 0===i||!i.call(this));var e,i}invokeAction(t){return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t}):null===(e=this.actions[t])||void 0===e||null===(i=e.perform)||void 0===i?void 0:i.call(this);var e,i}actionIsExternal(t){return/^x-./.test(t)}getCurrentActions(){const t={};for(const e in this.actions)t[e]=this.canInvokeAction(e);return t}updateCurrentActions(){const t=this.getCurrentActions();if(!Rt(t,this.currentActions))return this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions})}runEditorFilters(){let t=this.composition.getSnapshot();if(Array.from(this.editor.filters).forEach((e=>{const{document:i,selectedRange:n}=t;t=e.call(this.editor,t)||{},t.document||(t.document=i),t.selectedRange||(t.selectedRange=n)})),e=t,i=this.composition.getSnapshot(),!kt(e.selectedRange,i.selectedRange)||!e.document.isEqualTo(i.document))return this.composition.loadSnapshot(t);var e,i}updateInputElement(){const t=function(t,e){const i=ri[e];if(i)return i(t);throw new Error(\"unknown content type: \".concat(e))}(this.compositionController.getSerializableElement(),\"text/html\");return this.editorElement.setInputElementValue(t)}notifyEditorElement(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)}removeAttachment(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()}recordFormattingUndoEntry(t){const e=ht(t),i=this.selectionManager.getLocationRange();if(e||!St(i))return this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0})}recordTypingUndoEntry(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})}getUndoContext(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return[this.getLocationContext(),this.getTimeContext(),...Array.from(e)]}getLocationContext(){const t=this.selectionManager.getLocationRange();return St(t)?t[0].index:t}getTimeContext(){return j.interval>0?Math.floor((new Date).getTime()/j.interval):0}isFocused(){var t;return this.editorElement===(null===(t=this.editorElement.ownerDocument)||void 0===t?void 0:t.activeElement)}isFocusedInvisibly(){return this.isFocused()&&!this.getLocationRange()}get actions(){return this.constructor.actions}}be(mn,\"actions\",{undo:{test(){return this.editor.canUndo()},perform(){return this.editor.undo()}},redo:{test(){return this.editor.canRedo()},perform(){return this.editor.redo()}},link:{test(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test(){return this.editor.canIncreaseNestingLevel()},perform(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test(){return this.editor.canDecreaseNestingLevel()},perform(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:()=>!0,perform(){return P.pickFiles(this.editor.insertFiles)}}}),mn.proxyMethod(\"getSelectionManager().setLocationRange\"),mn.proxyMethod(\"getSelectionManager().getLocationRange\");var pn=Object.freeze({__proto__:null,AttachmentEditorController:wi,CompositionController:Ti,Controller:Fi,EditorController:mn,InputController:qi,Level0InputController:Ji,Level2InputController:Qi,ToolbarController:gn}),fn=Object.freeze({__proto__:null,MutationObserver:Pi,SelectionChangeObserver:wt}),bn=Object.freeze({__proto__:null,FileVerificationOperation:Oi,ImagePreloadOperation:Ae});mt(\"trix-toolbar\",\"%t {\\n  display: block;\\n}\\n\\n%t {\\n  white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n  display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n  display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n  background-color: #ffdddd;\\n}\");class vn extends HTMLElement{connectedCallback(){\"\"===this.innerHTML&&(this.innerHTML=M.getDefaultHTML())}}let An=0;const xn=function(t){if(!t.hasAttribute(\"contenteditable\"))return t.setAttribute(\"contenteditable\",\"\"),function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.times=1,d(t,e)}(\"focus\",{onElement:t,withCallback:()=>yn(t)})},yn=function(t){return Cn(t),Rn(t)},Cn=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"enableObjectResizing\"))return document.execCommand(\"enableObjectResizing\",!1,!1),d(\"mscontrolselect\",{onElement:t,preventDefault:!0})},Rn=function(t){var i,n;if(null!==(i=(n=document).queryCommandSupported)&&void 0!==i&&i.call(n,\"DefaultParagraphSeparator\")){const{tagName:t}=e.default;if([\"div\",\"p\"].includes(t))return document.execCommand(\"DefaultParagraphSeparator\",!1,t)}},En=o.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"};mt(\"trix-editor\",\"%t {\\n    display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n    content: attr(placeholder);\\n    color: graytext;\\n    cursor: text;\\n    pointer-events: none;\\n    white-space: pre-line;\\n}\\n\\n%t a[contenteditable=false] {\\n    cursor: text;\\n}\\n\\n%t img {\\n    max-width: 100%;\\n    height: auto;\\n}\\n\\n%t \".concat(\"[data-trix-attachment]\",\" figcaption textarea {\\n    resize: none;\\n}\\n\\n%t \").concat(\"[data-trix-attachment]\",\" figcaption textarea.trix-autoresize-clone {\\n    position: absolute;\\n    left: -9999px;\\n    max-height: 0px;\\n}\\n\\n%t \").concat(\"[data-trix-attachment]\",\" figcaption[data-trix-placeholder]:empty::before {\\n    content: attr(data-trix-placeholder);\\n    color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n    display: \").concat(En.display,\" !important;\\n    width: \").concat(En.width,\" !important;\\n    padding: 0 !important;\\n    margin: 0 !important;\\n    border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n    vertical-align: top !important;\\n    margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n    vertical-align: bottom !important;\\n    margin-right: -1px !important;\\n}\"));class Sn extends HTMLElement{get trixId(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++An),this.trixId)}get labels(){const t=[];this.id&&this.ownerDocument&&t.push(...Array.from(this.ownerDocument.querySelectorAll(\"label[for='\".concat(this.id,\"']\"))||[]));const e=p(this,{matchingSelector:\"label\"});return e&&[this,null].includes(e.control)&&t.push(e),t}get toolbarElement(){var t;if(this.hasAttribute(\"toolbar\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"toolbar\"));if(this.parentNode){const t=\"trix-toolbar-\".concat(this.trixId);this.setAttribute(\"toolbar\",t);const e=C(\"trix-toolbar\",{id:t});return this.parentNode.insertBefore(e,this),e}}get form(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.form}get inputElement(){var t;if(this.hasAttribute(\"input\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"input\"));if(this.parentNode){const t=\"trix-input-\".concat(this.trixId);this.setAttribute(\"input\",t);const e=C(\"input\",{type:\"hidden\",id:t});return this.parentNode.insertBefore(e,this.nextElementSibling),e}}get editor(){var t;return null===(t=this.editorController)||void 0===t?void 0:t.editor}get name(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.name}get value(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.value}set value(t){var e;this.defaultValue=t,null===(e=this.editor)||void 0===e||e.loadHTML(this.defaultValue)}notify(t,e){if(this.editorController)return g(\"trix-\".concat(t),{onElement:this,attributes:e})}setInputElementValue(t){this.inputElement&&(this.inputElement.value=t)}connectedCallback(){this.hasAttribute(\"data-trix-internal\")||(xn(this),function(t){if(!t.hasAttribute(\"role\"))t.setAttribute(\"role\",\"textbox\")}(this),function(t){if(t.hasAttribute(\"aria-label\")||t.hasAttribute(\"aria-labelledby\"))return;const e=function(){const e=Array.from(t.labels).map((e=>{if(!e.contains(t))return e.textContent})).filter((t=>t)),i=e.join(\" \");return i?t.setAttribute(\"aria-label\",i):t.removeAttribute(\"aria-label\")};e(),d(\"focus\",{onElement:t,withCallback:e})}(this),this.editorController||(g(\"trix-before-initialize\",{onElement:this}),this.editorController=new mn({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame((()=>g(\"trix-initialize\",{onElement:this})))),this.editorController.registerSelectionManager(),this.registerResetListener(),this.registerClickListener(),function(t){if(!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t)t.focus()}(this))}disconnectedCallback(){var t;return null===(t=this.editorController)||void 0===t||t.unregisterSelectionManager(),this.unregisterResetListener(),this.unregisterClickListener()}registerResetListener(){return this.resetListener=this.resetBubbled.bind(this),window.addEventListener(\"reset\",this.resetListener,!1)}unregisterResetListener(){return window.removeEventListener(\"reset\",this.resetListener,!1)}registerClickListener(){return this.clickListener=this.clickBubbled.bind(this),window.addEventListener(\"click\",this.clickListener,!1)}unregisterClickListener(){return window.removeEventListener(\"click\",this.clickListener,!1)}resetBubbled(t){if(!t.defaultPrevented&&t.target===this.form)return this.reset()}clickBubbled(t){if(t.defaultPrevented)return;if(this.contains(t.target))return;const e=p(t.target,{matchingSelector:\"label\"});return e&&Array.from(this.labels).includes(e)?this.focus():void 0}reset(){this.value=this.defaultValue}}const kn={VERSION:\"2.0.4\",config:W,core:oi,models:Ri,views:Ei,controllers:pn,observers:fn,operations:bn,elements:Object.freeze({__proto__:null,TrixEditorElement:Sn,TrixToolbarElement:vn}),filters:Object.freeze({__proto__:null,Filter:di,attachmentGalleryFilter:gi})};Object.assign(kn,Ri),window.Trix=kn,setTimeout((function(){customElements.get(\"trix-toolbar\")||customElements.define(\"trix-toolbar\",vn),customElements.get(\"trix-editor\")||customElements.define(\"trix-editor\",Sn)}),0);export{kn as default};\n//# sourceMappingURL=trix.esm.min.js.map\n", "var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar activestorage = {exports: {}};\n\n(function (module, exports) {\n(function(global, factory) {\n  factory(exports) ;\n})(commonjsGlobal, (function(exports) {\n  var sparkMd5 = {\n    exports: {}\n  };\n  (function(module, exports) {\n    (function(factory) {\n      {\n        module.exports = factory();\n      }\n    })((function(undefined$1) {\n      var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n      function md5cycle(x, k) {\n        var a = x[0], b = x[1], c = x[2], d = x[3];\n        a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n        a = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n        d = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n        c = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n        b = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n        a = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n        d = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n        c = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n        b = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n        a = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n        d = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[10] - 42063 | 0;\n        c = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n        b = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n        a = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n        d = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n        c = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n        b = (b << 22 | b >>> 10) + c | 0;\n        a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n        a = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n        d = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n        c = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n        b = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n        a = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n        d = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n        c = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n        b = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n        a = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n        d = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n        c = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n        b = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n        a = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n        d = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n        c = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n        b = (b << 20 | b >>> 12) + c | 0;\n        a += (b ^ c ^ d) + k[5] - 378558 | 0;\n        a = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n        d = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n        c = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n        b = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n        a = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n        d = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n        c = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n        b = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n        a = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n        d = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n        c = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n        b = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n        a = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n        d = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n        c = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n        b = (b << 23 | b >>> 9) + c | 0;\n        a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n        a = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n        d = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n        c = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n        b = (b << 21 | b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n        a = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n        d = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n        c = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n        b = (b << 21 | b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n        a = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n        d = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n        c = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n        b = (b << 21 | b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n        a = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n        d = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n        c = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n        b = (b << 21 | b >>> 11) + c | 0;\n        x[0] = a + x[0] | 0;\n        x[1] = b + x[1] | 0;\n        x[2] = c + x[2] | 0;\n        x[3] = d + x[3] | 0;\n      }\n      function md5blk(s) {\n        var md5blks = [], i;\n        for (i = 0; i < 64; i += 4) {\n          md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n        }\n        return md5blks;\n      }\n      function md5blk_array(a) {\n        var md5blks = [], i;\n        for (i = 0; i < 64; i += 4) {\n          md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n        }\n        return md5blks;\n      }\n      function md51(s) {\n        var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n        for (i = 64; i <= n; i += 64) {\n          md5cycle(state, md5blk(s.substring(i - 64, i)));\n        }\n        s = s.substring(i - 64);\n        length = s.length;\n        tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n        for (i = 0; i < length; i += 1) {\n          tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n        }\n        tail[i >> 2] |= 128 << (i % 4 << 3);\n        if (i > 55) {\n          md5cycle(state, tail);\n          for (i = 0; i < 16; i += 1) {\n            tail[i] = 0;\n          }\n        }\n        tmp = n * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n        tail[14] = lo;\n        tail[15] = hi;\n        md5cycle(state, tail);\n        return state;\n      }\n      function md51_array(a) {\n        var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n        for (i = 64; i <= n; i += 64) {\n          md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n        }\n        a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n        length = a.length;\n        tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n        for (i = 0; i < length; i += 1) {\n          tail[i >> 2] |= a[i] << (i % 4 << 3);\n        }\n        tail[i >> 2] |= 128 << (i % 4 << 3);\n        if (i > 55) {\n          md5cycle(state, tail);\n          for (i = 0; i < 16; i += 1) {\n            tail[i] = 0;\n          }\n        }\n        tmp = n * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n        tail[14] = lo;\n        tail[15] = hi;\n        md5cycle(state, tail);\n        return state;\n      }\n      function rhex(n) {\n        var s = \"\", j;\n        for (j = 0; j < 4; j += 1) {\n          s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n        }\n        return s;\n      }\n      function hex(x) {\n        var i;\n        for (i = 0; i < x.length; i += 1) {\n          x[i] = rhex(x[i]);\n        }\n        return x.join(\"\");\n      }\n      if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n      if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n        (function() {\n          function clamp(val, length) {\n            val = val | 0 || 0;\n            if (val < 0) {\n              return Math.max(val + length, 0);\n            }\n            return Math.min(val, length);\n          }\n          ArrayBuffer.prototype.slice = function(from, to) {\n            var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n            if (to !== undefined$1) {\n              end = clamp(to, length);\n            }\n            if (begin > end) {\n              return new ArrayBuffer(0);\n            }\n            num = end - begin;\n            target = new ArrayBuffer(num);\n            targetArray = new Uint8Array(target);\n            sourceArray = new Uint8Array(this, begin, num);\n            targetArray.set(sourceArray);\n            return target;\n          };\n        })();\n      }\n      function toUtf8(str) {\n        if (/[\\u0080-\\uFFFF]/.test(str)) {\n          str = unescape(encodeURIComponent(str));\n        }\n        return str;\n      }\n      function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n        var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n        for (i = 0; i < length; i += 1) {\n          arr[i] = str.charCodeAt(i);\n        }\n        return returnUInt8Array ? arr : buff;\n      }\n      function arrayBuffer2Utf8Str(buff) {\n        return String.fromCharCode.apply(null, new Uint8Array(buff));\n      }\n      function concatenateArrayBuffers(first, second, returnUInt8Array) {\n        var result = new Uint8Array(first.byteLength + second.byteLength);\n        result.set(new Uint8Array(first));\n        result.set(new Uint8Array(second), first.byteLength);\n        return returnUInt8Array ? result : result.buffer;\n      }\n      function hexToBinaryString(hex) {\n        var bytes = [], length = hex.length, x;\n        for (x = 0; x < length - 1; x += 2) {\n          bytes.push(parseInt(hex.substr(x, 2), 16));\n        }\n        return String.fromCharCode.apply(String, bytes);\n      }\n      function SparkMD5() {\n        this.reset();\n      }\n      SparkMD5.prototype.append = function(str) {\n        this.appendBinary(toUtf8(str));\n        return this;\n      };\n      SparkMD5.prototype.appendBinary = function(contents) {\n        this._buff += contents;\n        this._length += contents.length;\n        var length = this._buff.length, i;\n        for (i = 64; i <= length; i += 64) {\n          md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n        }\n        this._buff = this._buff.substring(i - 64);\n        return this;\n      };\n      SparkMD5.prototype.end = function(raw) {\n        var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n        for (i = 0; i < length; i += 1) {\n          tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n        }\n        this._finish(tail, length);\n        ret = hex(this._hash);\n        if (raw) {\n          ret = hexToBinaryString(ret);\n        }\n        this.reset();\n        return ret;\n      };\n      SparkMD5.prototype.reset = function() {\n        this._buff = \"\";\n        this._length = 0;\n        this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n        return this;\n      };\n      SparkMD5.prototype.getState = function() {\n        return {\n          buff: this._buff,\n          length: this._length,\n          hash: this._hash.slice()\n        };\n      };\n      SparkMD5.prototype.setState = function(state) {\n        this._buff = state.buff;\n        this._length = state.length;\n        this._hash = state.hash;\n        return this;\n      };\n      SparkMD5.prototype.destroy = function() {\n        delete this._hash;\n        delete this._buff;\n        delete this._length;\n      };\n      SparkMD5.prototype._finish = function(tail, length) {\n        var i = length, tmp, lo, hi;\n        tail[i >> 2] |= 128 << (i % 4 << 3);\n        if (i > 55) {\n          md5cycle(this._hash, tail);\n          for (i = 0; i < 16; i += 1) {\n            tail[i] = 0;\n          }\n        }\n        tmp = this._length * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n        tail[14] = lo;\n        tail[15] = hi;\n        md5cycle(this._hash, tail);\n      };\n      SparkMD5.hash = function(str, raw) {\n        return SparkMD5.hashBinary(toUtf8(str), raw);\n      };\n      SparkMD5.hashBinary = function(content, raw) {\n        var hash = md51(content), ret = hex(hash);\n        return raw ? hexToBinaryString(ret) : ret;\n      };\n      SparkMD5.ArrayBuffer = function() {\n        this.reset();\n      };\n      SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n        var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n        this._length += arr.byteLength;\n        for (i = 64; i <= length; i += 64) {\n          md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n        }\n        this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n        return this;\n      };\n      SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n        var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n        for (i = 0; i < length; i += 1) {\n          tail[i >> 2] |= buff[i] << (i % 4 << 3);\n        }\n        this._finish(tail, length);\n        ret = hex(this._hash);\n        if (raw) {\n          ret = hexToBinaryString(ret);\n        }\n        this.reset();\n        return ret;\n      };\n      SparkMD5.ArrayBuffer.prototype.reset = function() {\n        this._buff = new Uint8Array(0);\n        this._length = 0;\n        this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n        return this;\n      };\n      SparkMD5.ArrayBuffer.prototype.getState = function() {\n        var state = SparkMD5.prototype.getState.call(this);\n        state.buff = arrayBuffer2Utf8Str(state.buff);\n        return state;\n      };\n      SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n        state.buff = utf8Str2ArrayBuffer(state.buff, true);\n        return SparkMD5.prototype.setState.call(this, state);\n      };\n      SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n      SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n      SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n        var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n        return raw ? hexToBinaryString(ret) : ret;\n      };\n      return SparkMD5;\n    }));\n  })(sparkMd5);\n  var SparkMD5 = sparkMd5.exports;\n  const fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n  class FileChecksum {\n    static create(file, callback) {\n      const instance = new FileChecksum(file);\n      instance.create(callback);\n    }\n    constructor(file) {\n      this.file = file;\n      this.chunkSize = 2097152;\n      this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n      this.chunkIndex = 0;\n    }\n    create(callback) {\n      this.callback = callback;\n      this.md5Buffer = new SparkMD5.ArrayBuffer;\n      this.fileReader = new FileReader;\n      this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n      this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n      this.readNextChunk();\n    }\n    fileReaderDidLoad(event) {\n      this.md5Buffer.append(event.target.result);\n      if (!this.readNextChunk()) {\n        const binaryDigest = this.md5Buffer.end(true);\n        const base64digest = btoa(binaryDigest);\n        this.callback(null, base64digest);\n      }\n    }\n    fileReaderDidError(event) {\n      this.callback(`Error reading ${this.file.name}`);\n    }\n    readNextChunk() {\n      if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n        const start = this.chunkIndex * this.chunkSize;\n        const end = Math.min(start + this.chunkSize, this.file.size);\n        const bytes = fileSlice.call(this.file, start, end);\n        this.fileReader.readAsArrayBuffer(bytes);\n        this.chunkIndex++;\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n  function getMetaValue(name) {\n    const element = findElement(document.head, `meta[name=\"${name}\"]`);\n    if (element) {\n      return element.getAttribute(\"content\");\n    }\n  }\n  function findElements(root, selector) {\n    if (typeof root == \"string\") {\n      selector = root;\n      root = document;\n    }\n    const elements = root.querySelectorAll(selector);\n    return toArray(elements);\n  }\n  function findElement(root, selector) {\n    if (typeof root == \"string\") {\n      selector = root;\n      root = document;\n    }\n    return root.querySelector(selector);\n  }\n  function dispatchEvent(element, type, eventInit = {}) {\n    const {disabled: disabled} = element;\n    const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n    const event = document.createEvent(\"Event\");\n    event.initEvent(type, bubbles || true, cancelable || true);\n    event.detail = detail || {};\n    try {\n      element.disabled = false;\n      element.dispatchEvent(event);\n    } finally {\n      element.disabled = disabled;\n    }\n    return event;\n  }\n  function toArray(value) {\n    if (Array.isArray(value)) {\n      return value;\n    } else if (Array.from) {\n      return Array.from(value);\n    } else {\n      return [].slice.call(value);\n    }\n  }\n  class BlobRecord {\n    constructor(file, checksum, url) {\n      this.file = file;\n      this.attributes = {\n        filename: file.name,\n        content_type: file.type || \"application/octet-stream\",\n        byte_size: file.size,\n        checksum: checksum\n      };\n      this.xhr = new XMLHttpRequest;\n      this.xhr.open(\"POST\", url, true);\n      this.xhr.responseType = \"json\";\n      this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n      this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n      this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n      const csrfToken = getMetaValue(\"csrf-token\");\n      if (csrfToken != undefined) {\n        this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n      }\n      this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n      this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n    }\n    get status() {\n      return this.xhr.status;\n    }\n    get response() {\n      const {responseType: responseType, response: response} = this.xhr;\n      if (responseType == \"json\") {\n        return response;\n      } else {\n        return JSON.parse(response);\n      }\n    }\n    create(callback) {\n      this.callback = callback;\n      this.xhr.send(JSON.stringify({\n        blob: this.attributes\n      }));\n    }\n    requestDidLoad(event) {\n      if (this.status >= 200 && this.status < 300) {\n        const {response: response} = this;\n        const {direct_upload: direct_upload} = response;\n        delete response.direct_upload;\n        this.attributes = response;\n        this.directUploadData = direct_upload;\n        this.callback(null, this.toJSON());\n      } else {\n        this.requestDidError(event);\n      }\n    }\n    requestDidError(event) {\n      this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n    }\n    toJSON() {\n      const result = {};\n      for (const key in this.attributes) {\n        result[key] = this.attributes[key];\n      }\n      return result;\n    }\n  }\n  class BlobUpload {\n    constructor(blob) {\n      this.blob = blob;\n      this.file = blob.file;\n      const {url: url, headers: headers} = blob.directUploadData;\n      this.xhr = new XMLHttpRequest;\n      this.xhr.open(\"PUT\", url, true);\n      this.xhr.responseType = \"text\";\n      for (const key in headers) {\n        this.xhr.setRequestHeader(key, headers[key]);\n      }\n      this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n      this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n    }\n    create(callback) {\n      this.callback = callback;\n      this.xhr.send(this.file.slice());\n    }\n    requestDidLoad(event) {\n      const {status: status, response: response} = this.xhr;\n      if (status >= 200 && status < 300) {\n        this.callback(null, response);\n      } else {\n        this.requestDidError(event);\n      }\n    }\n    requestDidError(event) {\n      this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n    }\n  }\n  let id = 0;\n  class DirectUpload {\n    constructor(file, url, delegate) {\n      this.id = ++id;\n      this.file = file;\n      this.url = url;\n      this.delegate = delegate;\n    }\n    create(callback) {\n      FileChecksum.create(this.file, ((error, checksum) => {\n        if (error) {\n          callback(error);\n          return;\n        }\n        const blob = new BlobRecord(this.file, checksum, this.url);\n        notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n        blob.create((error => {\n          if (error) {\n            callback(error);\n          } else {\n            const upload = new BlobUpload(blob);\n            notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n            upload.create((error => {\n              if (error) {\n                callback(error);\n              } else {\n                callback(null, blob.toJSON());\n              }\n            }));\n          }\n        }));\n      }));\n    }\n  }\n  function notify(object, methodName, ...messages) {\n    if (object && typeof object[methodName] == \"function\") {\n      return object[methodName](...messages);\n    }\n  }\n  class DirectUploadController {\n    constructor(input, file) {\n      this.input = input;\n      this.file = file;\n      this.directUpload = new DirectUpload(this.file, this.url, this);\n      this.dispatch(\"initialize\");\n    }\n    start(callback) {\n      const hiddenInput = document.createElement(\"input\");\n      hiddenInput.type = \"hidden\";\n      hiddenInput.name = this.input.name;\n      this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n      this.dispatch(\"start\");\n      this.directUpload.create(((error, attributes) => {\n        if (error) {\n          hiddenInput.parentNode.removeChild(hiddenInput);\n          this.dispatchError(error);\n        } else {\n          hiddenInput.value = attributes.signed_id;\n        }\n        this.dispatch(\"end\");\n        callback(error);\n      }));\n    }\n    uploadRequestDidProgress(event) {\n      const progress = event.loaded / event.total * 100;\n      if (progress) {\n        this.dispatch(\"progress\", {\n          progress: progress\n        });\n      }\n    }\n    get url() {\n      return this.input.getAttribute(\"data-direct-upload-url\");\n    }\n    dispatch(name, detail = {}) {\n      detail.file = this.file;\n      detail.id = this.directUpload.id;\n      return dispatchEvent(this.input, `direct-upload:${name}`, {\n        detail: detail\n      });\n    }\n    dispatchError(error) {\n      const event = this.dispatch(\"error\", {\n        error: error\n      });\n      if (!event.defaultPrevented) {\n        alert(error);\n      }\n    }\n    directUploadWillCreateBlobWithXHR(xhr) {\n      this.dispatch(\"before-blob-request\", {\n        xhr: xhr\n      });\n    }\n    directUploadWillStoreFileWithXHR(xhr) {\n      this.dispatch(\"before-storage-request\", {\n        xhr: xhr\n      });\n      xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n    }\n  }\n  const inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n  class DirectUploadsController {\n    constructor(form) {\n      this.form = form;\n      this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n    }\n    start(callback) {\n      const controllers = this.createDirectUploadControllers();\n      const startNextController = () => {\n        const controller = controllers.shift();\n        if (controller) {\n          controller.start((error => {\n            if (error) {\n              callback(error);\n              this.dispatch(\"end\");\n            } else {\n              startNextController();\n            }\n          }));\n        } else {\n          callback();\n          this.dispatch(\"end\");\n        }\n      };\n      this.dispatch(\"start\");\n      startNextController();\n    }\n    createDirectUploadControllers() {\n      const controllers = [];\n      this.inputs.forEach((input => {\n        toArray(input.files).forEach((file => {\n          const controller = new DirectUploadController(input, file);\n          controllers.push(controller);\n        }));\n      }));\n      return controllers;\n    }\n    dispatch(name, detail = {}) {\n      return dispatchEvent(this.form, `direct-uploads:${name}`, {\n        detail: detail\n      });\n    }\n  }\n  const processingAttribute = \"data-direct-uploads-processing\";\n  const submitButtonsByForm = new WeakMap;\n  let started = false;\n  function start() {\n    if (!started) {\n      started = true;\n      document.addEventListener(\"click\", didClick, true);\n      document.addEventListener(\"submit\", didSubmitForm, true);\n      document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n    }\n  }\n  function didClick(event) {\n    const {target: target} = event;\n    if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n      submitButtonsByForm.set(target.form, target);\n    }\n  }\n  function didSubmitForm(event) {\n    handleFormSubmissionEvent(event);\n  }\n  function didSubmitRemoteElement(event) {\n    if (event.target.tagName == \"FORM\") {\n      handleFormSubmissionEvent(event);\n    }\n  }\n  function handleFormSubmissionEvent(event) {\n    const form = event.target;\n    if (form.hasAttribute(processingAttribute)) {\n      event.preventDefault();\n      return;\n    }\n    const controller = new DirectUploadsController(form);\n    const {inputs: inputs} = controller;\n    if (inputs.length) {\n      event.preventDefault();\n      form.setAttribute(processingAttribute, \"\");\n      inputs.forEach(disable);\n      controller.start((error => {\n        form.removeAttribute(processingAttribute);\n        if (error) {\n          inputs.forEach(enable);\n        } else {\n          submitForm(form);\n        }\n      }));\n    }\n  }\n  function submitForm(form) {\n    let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n    if (button) {\n      const {disabled: disabled} = button;\n      button.disabled = false;\n      button.focus();\n      button.click();\n      button.disabled = disabled;\n    } else {\n      button = document.createElement(\"input\");\n      button.type = \"submit\";\n      button.style.display = \"none\";\n      form.appendChild(button);\n      button.click();\n      form.removeChild(button);\n    }\n    submitButtonsByForm.delete(form);\n  }\n  function disable(input) {\n    input.disabled = true;\n  }\n  function enable(input) {\n    input.disabled = false;\n  }\n  function autostart() {\n    if (window.ActiveStorage) {\n      start();\n    }\n  }\n  setTimeout(autostart, 1);\n  exports.DirectUpload = DirectUpload;\n  exports.start = start;\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n}));\n}(activestorage, activestorage.exports));\n\nclass AttachmentUpload {\n  constructor(attachment, element) {\n    this.attachment = attachment;\n    this.element = element;\n    this.directUpload = new activestorage.exports.DirectUpload(attachment.file, this.directUploadUrl, this);\n  }\n\n  start() {\n    this.directUpload.create(this.directUploadDidComplete.bind(this));\n  }\n\n  directUploadWillStoreFileWithXHR(xhr) {\n    xhr.upload.addEventListener(\"progress\", event => {\n      const progress = event.loaded / event.total * 100;\n      this.attachment.setUploadProgress(progress);\n    });\n  }\n\n  directUploadDidComplete(error, attributes) {\n    if (error) {\n      throw new Error(`Direct upload failed: ${error}`)\n    }\n\n    this.attachment.setAttributes({\n      sgid: attributes.attachable_sgid,\n      url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n    });\n  }\n\n  createBlobUrl(signedId, filename) {\n    return this.blobUrlTemplate\n      .replace(\":signed_id\", signedId)\n      .replace(\":filename\", encodeURIComponent(filename))\n  }\n\n  get directUploadUrl() {\n    return this.element.dataset.directUploadUrl\n  }\n\n  get blobUrlTemplate() {\n    return this.element.dataset.blobUrlTemplate\n  }\n}\n\naddEventListener(\"trix-attachment-add\", event => {\n  const { attachment, target } = event;\n\n  if (attachment.file) {\n    const upload = new AttachmentUpload(attachment, target);\n    upload.start();\n  }\n});\n", "/*!\n * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  function ownKeys(object, enumerableOnly) {\n    var keys = Object.keys(object);\n\n    if (Object.getOwnPropertySymbols) {\n      var symbols = Object.getOwnPropertySymbols(object);\n      enumerableOnly && (symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      })), keys.push.apply(keys, symbols);\n    }\n\n    return keys;\n  }\n\n  function _objectSpread2(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = null != arguments[i] ? arguments[i] : {};\n      i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n\n    return target;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n  }\n\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n  }\n\n  function _iterableToArray(iter) {\n    if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n  }\n\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n  var FAMILY_CLASSIC = 'classic';\n  var FAMILY_SHARP = 'sharp';\n  var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\n  function familyProxy(obj) {\n    // Defaults to the classic family if family is not available\n    return new Proxy(obj, {\n      get: function get(target, prop) {\n        return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n      }\n    });\n  }\n  var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n    'fa': 'solid',\n    'fas': 'solid',\n    'fa-solid': 'solid',\n    'far': 'regular',\n    'fa-regular': 'regular',\n    'fal': 'light',\n    'fa-light': 'light',\n    'fat': 'thin',\n    'fa-thin': 'thin',\n    'fad': 'duotone',\n    'fa-duotone': 'duotone',\n    'fab': 'brands',\n    'fa-brands': 'brands',\n    'fak': 'kit',\n    'fa-kit': 'kit'\n  }), _defineProperty(_familyProxy, FAMILY_SHARP, {\n    'fa': 'solid',\n    'fass': 'solid',\n    'fa-solid': 'solid'\n  }), _familyProxy));\n  var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n    'solid': 'fas',\n    'regular': 'far',\n    'light': 'fal',\n    'thin': 'fat',\n    'duotone': 'fad',\n    'brands': 'fab',\n    'kit': 'fak'\n  }), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n    'solid': 'fass'\n  }), _familyProxy2));\n  var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n    'fab': 'fa-brands',\n    'fad': 'fa-duotone',\n    'fak': 'fa-kit',\n    'fal': 'fa-light',\n    'far': 'fa-regular',\n    'fas': 'fa-solid',\n    'fat': 'fa-thin'\n  }), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n    'fass': 'fa-solid'\n  }), _familyProxy3));\n  var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n    'fa-brands': 'fab',\n    'fa-duotone': 'fad',\n    'fa-kit': 'fak',\n    'fa-light': 'fal',\n    'fa-regular': 'far',\n    'fa-solid': 'fas',\n    'fa-thin': 'fat'\n  }), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n    'fa-solid': 'fass'\n  }), _familyProxy4));\n  // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\n  var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n    '900': 'fas',\n    '400': 'far',\n    'normal': 'far',\n    '300': 'fal',\n    '100': 'fat'\n  }), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n    '900': 'fass'\n  }), _familyProxy5));\n  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  var DUOTONE_CLASSES = {\n    GROUP: 'duotone-group',\n    SWAP_OPACITY: 'swap-opacity',\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary'\n  };\n  var prefixes = new Set();\n  Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\n  Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\n  var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n    return \"\".concat(n, \"x\");\n  })).concat(oneToTwenty.map(function (n) {\n    return \"w-\".concat(n);\n  }));\n\n  function bunker(fn) {\n    try {\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      fn.apply(void 0, args);\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function normalizeIcons(icons) {\n    return Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n  }\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = normalizeIcons(icons);\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalizeIcons(icons));\n    } else {\n      namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll ease the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"monero\": [496, 512, [], \"f3d0\", \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"],\n    \"hooli\": [640, 512, [], \"f427\", \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"],\n    \"yelp\": [384, 512, [], \"f1e9\", \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"],\n    \"cc-visa\": [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"],\n    \"lastfm\": [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"],\n    \"shopware\": [512, 512, [], \"f5b5\", \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"],\n    \"creative-commons-nc\": [496, 512, [], \"f4e8\", \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"],\n    \"aws\": [640, 512, [], \"f375\", \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"],\n    \"redhat\": [512, 512, [], \"f7bc\", \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"],\n    \"yoast\": [448, 512, [], \"f2b1\", \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"],\n    \"cloudflare\": [640, 512, [], \"e07d\", \"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"],\n    \"ups\": [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"],\n    \"wpexplorer\": [512, 512, [], \"f2de\", \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"],\n    \"dyalog\": [416, 512, [], \"f399\", \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"],\n    \"bity\": [496, 512, [], \"f37a\", \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"],\n    \"stackpath\": [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"],\n    \"buysellads\": [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"],\n    \"first-order\": [448, 512, [], \"f2b0\", \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"],\n    \"modx\": [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"],\n    \"guilded\": [448, 512, [], \"e07e\", \"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"],\n    \"vnv\": [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"],\n    \"square-js\": [448, 512, [\"js-square\"], \"f3b9\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n    \"microsoft\": [448, 512, [], \"f3ca\", \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"],\n    \"qq\": [448, 512, [], \"f1d6\", \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"],\n    \"orcid\": [512, 512, [], \"f8d2\", \"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"],\n    \"java\": [384, 512, [], \"f4e4\", \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"],\n    \"invision\": [448, 512, [], \"f7b0\", \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"],\n    \"creative-commons-pd-alt\": [496, 512, [], \"f4ed\", \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"],\n    \"centercode\": [512, 512, [], \"f380\", \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"],\n    \"glide-g\": [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"],\n    \"drupal\": [448, 512, [], \"f1a9\", \"M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z\"],\n    \"hire-a-helper\": [512, 512, [], \"f3b0\", \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"],\n    \"creative-commons-by\": [496, 512, [], \"f4e7\", \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"],\n    \"unity\": [448, 512, [], \"e049\", \"M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z\"],\n    \"whmcs\": [448, 512, [], \"f40d\", \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"],\n    \"rocketchat\": [576, 512, [], \"f3e8\", \"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"],\n    \"vk\": [448, 512, [], \"f189\", \"M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z\"],\n    \"untappd\": [640, 512, [], \"f405\", \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"],\n    \"mailchimp\": [448, 512, [], \"f59e\", \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"],\n    \"css3-alt\": [384, 512, [], \"f38b\", \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"],\n    \"square-reddit\": [448, 512, [\"reddit-square\"], \"f1a2\", \"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"],\n    \"vimeo-v\": [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"],\n    \"contao\": [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"],\n    \"square-font-awesome\": [448, 512, [], \"e5ad\", \"M384.5,32.5h-320c-35.3,0-64,28.7-64,64v320c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64v-320 C448.5,61.2,419.8,32.5,384.5,32.5z M336.5,312.5c-31.6,11.2-41.2,16-59.8,16c-31.4,0-43.2-16-74.6-16c-10.2,0-18.2,1.6-25.6,4v-32 c7.4-2.2,15.4-4,25.6-4c31.2,0,43.2,16,74.6,16c10.2,0,17.8-1.4,27.8-4.6v-96c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.2-16-74.6-16 c-25.4,0-37.4,10.4-57.6,14.4v153.6c0,8.8-7.2,16-16,16c-8.8,0-16-7.2-16-16v-192c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16v6.4 c20.2-4,32.2-14.4,57.6-14.4c31.2,0,43.2,16,74.6,16c18.6,0,28.2-4.8,59.8-16V312.5z\"],\n    \"deskpro\": [480, 512, [], \"f38f\", \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"],\n    \"sistrix\": [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"],\n    \"square-instagram\": [448, 512, [\"instagram-square\"], \"e055\", \"M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z\"],\n    \"battle-net\": [512, 512, [], \"f835\", \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"],\n    \"the-red-yeti\": [512, 512, [], \"f69d\", \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"],\n    \"square-hacker-news\": [448, 512, [\"hacker-news-square\"], \"f3af\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\n    \"edge\": [512, 512, [], \"f282\", \"M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z\"],\n    \"napster\": [496, 512, [], \"f3d2\", \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"],\n    \"square-snapchat\": [448, 512, [\"snapchat-square\"], \"f2ad\", \"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z\"],\n    \"google-plus-g\": [640, 512, [], \"f0d5\", \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"],\n    \"artstation\": [512, 512, [], \"f77a\", \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"],\n    \"markdown\": [640, 512, [], \"f60f\", \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"],\n    \"sourcetree\": [448, 512, [], \"f7d3\", \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"],\n    \"google-plus\": [512, 512, [], \"f2b3\", \"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"],\n    \"diaspora\": [512, 512, [], \"f791\", \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"],\n    \"foursquare\": [368, 512, [], \"f180\", \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"],\n    \"stack-overflow\": [384, 512, [], \"f16c\", \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"],\n    \"github-alt\": [480, 512, [], \"f113\", \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"],\n    \"phoenix-squadron\": [512, 512, [], \"f511\", \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"],\n    \"pagelines\": [384, 512, [], \"f18c\", \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"],\n    \"algolia\": [448, 512, [], \"f36c\", \"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"],\n    \"red-river\": [448, 512, [], \"f3e3\", \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"],\n    \"creative-commons-sa\": [496, 512, [], \"f4ef\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"],\n    \"safari\": [512, 512, [], \"f267\", \"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"],\n    \"google\": [488, 512, [], \"f1a0\", \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"],\n    \"square-font-awesome-stroke\": [448, 512, [\"font-awesome-alt\"], \"f35c\", \"M201.6,152c-25.4,0-37.4,10.4-57.6,14.4V160c0-8.8-7.2-16-16-16s-16,7.2-16,16v192c0,0.8,0.1,1.6,0.2,2.4 c0.1,0.4,0.1,0.8,0.2,1.2c1.6,7.1,8,12.4,15.6,12.4s14-5.3,15.6-12.4c0.1-0.4,0.2-0.8,0.2-1.2c0.1-0.8,0.2-1.6,0.2-2.4V198.4 c4-0.8,7.7-1.8,11.2-3c14.3-4.7,26-11.4,46.4-11.4c31.4,0,43.2,16,74.6,16c8.9,0,15.9-1.1,24.2-3.5c1.2-0.3,2.4-0.7,3.6-1.1v96 c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.4-16-74.6-16c-10.2,0-18.2,1.8-25.6,4v32c7.4-2.4,15.4-4,25.6-4c31.4,0,43.2,16,74.6,16 c18.6,0,28.2-4.8,59.8-16V152c-31.6,11.2-41.2,16-59.8,16C244.8,168,232.8,152,201.6,152z M384,32H64C28.7,32,0,60.7,0,96v320 c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64V96C448,60.7,419.3,32,384,32z M416,416c0,17.6-14.4,32-32,32H64 c-17.6,0-32-14.4-32-32V96c0-17.6,14.4-32,32-32h320c17.6,0,32,14.4,32,32V416z\"],\n    \"atlassian\": [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"],\n    \"linkedin-in\": [448, 512, [], \"f0e1\", \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"],\n    \"digital-ocean\": [512, 512, [], \"f391\", \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"],\n    \"nimblr\": [384, 512, [], \"f5a8\", \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"],\n    \"chromecast\": [512, 512, [], \"f838\", \"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"],\n    \"evernote\": [384, 512, [], \"f839\", \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"],\n    \"hacker-news\": [448, 512, [], \"f1d4\", \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\n    \"creative-commons-sampling\": [496, 512, [], \"f4f0\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"],\n    \"adversal\": [512, 512, [], \"f36a\", \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"],\n    \"creative-commons\": [496, 512, [], \"f25e\", \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"],\n    \"watchman-monitoring\": [512, 512, [], \"e087\", \"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"],\n    \"fonticons\": [448, 512, [], \"f280\", \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"],\n    \"weixin\": [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"],\n    \"shirtsinbulk\": [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"],\n    \"codepen\": [512, 512, [], \"f1cb\", \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"],\n    \"git-alt\": [448, 512, [], \"f841\", \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"],\n    \"lyft\": [512, 512, [], \"f3c3\", \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"],\n    \"rev\": [448, 512, [], \"f5b2\", \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"],\n    \"windows\": [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"],\n    \"wizards-of-the-coast\": [640, 512, [], \"f730\", \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"],\n    \"square-viadeo\": [448, 512, [\"viadeo-square\"], \"f2aa\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"],\n    \"meetup\": [512, 512, [], \"f2e0\", \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"],\n    \"centos\": [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"],\n    \"adn\": [496, 512, [], \"f170\", \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"],\n    \"cloudsmith\": [332, 512, [], \"f384\", \"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"],\n    \"pied-piper-alt\": [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"],\n    \"square-dribbble\": [448, 512, [\"dribbble-square\"], \"f397\", \"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"],\n    \"codiepie\": [472, 512, [], \"f284\", \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"],\n    \"node\": [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"],\n    \"mix\": [448, 512, [], \"f3cb\", \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"],\n    \"steam\": [496, 512, [], \"f1b6\", \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"],\n    \"cc-apple-pay\": [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"],\n    \"scribd\": [384, 512, [], \"f28a\", \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"],\n    \"openid\": [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"],\n    \"instalod\": [512, 512, [], \"e081\", \"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"],\n    \"expeditedssl\": [496, 512, [], \"f23e\", \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"],\n    \"sellcast\": [448, 512, [], \"f2da\", \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"],\n    \"square-twitter\": [448, 512, [\"twitter-square\"], \"f081\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"],\n    \"r-project\": [581, 512, [], \"f4f7\", \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"],\n    \"delicious\": [448, 512, [], \"f1a5\", \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"],\n    \"freebsd\": [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"],\n    \"vuejs\": [448, 512, [], \"f41f\", \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"],\n    \"accusoft\": [640, 512, [], \"f369\", \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"],\n    \"ioxhost\": [640, 512, [], \"f208\", \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"],\n    \"fonticons-fi\": [384, 512, [], \"f3a2\", \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"],\n    \"app-store\": [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"],\n    \"cc-mastercard\": [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"],\n    \"itunes-note\": [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"],\n    \"golang\": [640, 512, [], \"e40f\", \"M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z\"],\n    \"kickstarter\": [448, 512, [], \"f3bb\", \"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"],\n    \"grav\": [512, 512, [], \"f2d6\", \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"],\n    \"weibo\": [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"],\n    \"uncharted\": [448, 512, [], \"e084\", \"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"],\n    \"firstdraft\": [384, 512, [], \"f3a1\", \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"],\n    \"square-youtube\": [448, 512, [61798, \"youtube-square\"], \"f431\", \"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"],\n    \"wikipedia-w\": [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"],\n    \"wpressr\": [496, 512, [\"rendact\"], \"f3e4\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"],\n    \"angellist\": [448, 512, [], \"f209\", \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"],\n    \"galactic-republic\": [496, 512, [], \"f50c\", \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"],\n    \"nfc-directional\": [512, 512, [], \"e530\", \"M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z\"],\n    \"skype\": [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"],\n    \"joget\": [496, 512, [], \"f3b7\", \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"],\n    \"fedora\": [448, 512, [], \"f798\", \"M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z\"],\n    \"stripe-s\": [384, 512, [], \"f42a\", \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"],\n    \"meta\": [640, 512, [], \"e49b\", \"M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z\"],\n    \"laravel\": [512, 512, [], \"f3bd\", \"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"],\n    \"hotjar\": [448, 512, [], \"f3b1\", \"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"],\n    \"bluetooth-b\": [320, 512, [], \"f294\", \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"],\n    \"sticker-mule\": [576, 512, [], \"f3f7\", \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"],\n    \"creative-commons-zero\": [496, 512, [], \"f4f3\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"],\n    \"hips\": [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"],\n    \"behance\": [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"],\n    \"reddit\": [512, 512, [], \"f1a1\", \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"],\n    \"discord\": [640, 512, [], \"f392\", \"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"],\n    \"chrome\": [512, 512, [], \"f268\", \"M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z\"],\n    \"app-store-ios\": [448, 512, [], \"f370\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"],\n    \"cc-discover\": [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"],\n    \"wpbeginner\": [512, 512, [], \"f297\", \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"],\n    \"confluence\": [512, 512, [], \"f78d\", \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"],\n    \"mdb\": [576, 512, [], \"f8ca\", \"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"],\n    \"dochub\": [416, 512, [], \"f394\", \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"],\n    \"accessible-icon\": [448, 512, [62107], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"],\n    \"ebay\": [640, 512, [], \"f4f4\", \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"],\n    \"amazon\": [448, 512, [], \"f270\", \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"],\n    \"unsplash\": [448, 512, [], \"e07c\", \"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"],\n    \"yarn\": [496, 512, [], \"f7e3\", \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"],\n    \"square-steam\": [448, 512, [\"steam-square\"], \"f1b7\", \"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"],\n    \"500px\": [448, 512, [], \"f26e\", \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"],\n    \"square-vimeo\": [448, 512, [\"vimeo-square\"], \"f194\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"],\n    \"asymmetrik\": [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"],\n    \"font-awesome\": [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384C385 407 366 416 329 416C266 416 242 384 179 384C159 384 143 388 128 392V328C143 324 159 320 179 320C242 320 266 352 329 352C349 352 364 349 384 343V135C364 141 349 144 329 144C266 144 242 112 179 112C128 112 104 133 64 141V448C64 466 50 480 32 480S0 466 0 448V64C0 46 14 32 32 32S64 46 64 64V77C104 69 128 48 179 48C242 48 266 80 329 80C366 80 385 71 448 48Z\"],\n    \"gratipay\": [496, 512, [], \"f184\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"],\n    \"apple\": [384, 512, [], \"f179\", \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"],\n    \"hive\": [512, 512, [], \"e07f\", \"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"],\n    \"gitkraken\": [592, 512, [], \"f3a6\", \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"],\n    \"keybase\": [448, 512, [], \"f4f5\", \"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"],\n    \"apple-pay\": [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"],\n    \"padlet\": [640, 512, [], \"e4a0\", \"M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z\"],\n    \"amazon-pay\": [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"],\n    \"square-github\": [448, 512, [\"github-square\"], \"f092\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"],\n    \"stumbleupon\": [512, 512, [], \"f1a4\", \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"],\n    \"fedex\": [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"],\n    \"phoenix-framework\": [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"],\n    \"shopify\": [448, 512, [], \"e057\", \"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"],\n    \"neos\": [512, 512, [], \"f612\", \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"],\n    \"hackerrank\": [512, 512, [], \"f5f7\", \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"],\n    \"researchgate\": [448, 512, [], \"f4f8\", \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"],\n    \"swift\": [448, 512, [], \"f8e1\", \"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"],\n    \"angular\": [448, 512, [], \"f420\", \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"],\n    \"speakap\": [448, 512, [], \"f3f3\", \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"],\n    \"angrycreative\": [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"],\n    \"y-combinator\": [448, 512, [], \"f23b\", \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"],\n    \"empire\": [496, 512, [], \"f1d1\", \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"],\n    \"envira\": [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"],\n    \"square-gitlab\": [448, 512, [\"gitlab-square\"], \"e5ae\", \"M48 32H400C426.5 32 448 53.5 448 80V432C448 458.5 426.5 480 400 480H48C21.5 480 0 458.5 0 432V80C0 53.5 21.5 32 48 32zM382.1 224.9L337.5 108.5C336.6 106.2 334.9 104.2 332.9 102.9C331.3 101.9 329.5 101.3 327.7 101.1C325.9 100.9 324 101.2 322.3 101.8C320.6 102.5 319 103.5 317.8 104.9C316.6 106.3 315.7 107.9 315.2 109.7L285 201.9H162.1L132.9 109.7C132.4 107.9 131.4 106.3 130.2 104.9C128.1 103.6 127.4 102.5 125.7 101.9C123.1 101.2 122.1 100.1 120.3 101.1C118.5 101.3 116.7 101.9 115.1 102.9C113.1 104.2 111.5 106.2 110.6 108.5L65.94 224.9L65.47 226.1C59.05 242.9 58.26 261.3 63.22 278.6C68.18 295.9 78.62 311.1 92.97 321.9L93.14 322L93.52 322.3L161.4 373.2L215.6 414.1C217.1 415.1 220.9 416.9 223.9 416.9C226.9 416.9 229.9 415.1 232.3 414.1L286.4 373.2L354.8 322L355 321.9C369.4 311 379.8 295.8 384.8 278.6C389.7 261.3 388.1 242.9 382.5 226.1L382.1 224.9z\"],\n    \"studiovinari\": [512, 512, [], \"f3f8\", \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"],\n    \"pied-piper\": [480, 512, [], \"f2ae\", \"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"],\n    \"wordpress\": [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"],\n    \"product-hunt\": [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"],\n    \"firefox\": [512, 512, [], \"f269\", \"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"],\n    \"linode\": [448, 512, [], \"f2b8\", \"M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z\"],\n    \"goodreads\": [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"],\n    \"square-odnoklassniki\": [448, 512, [\"odnoklassniki-square\"], \"f264\", \"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"],\n    \"jsfiddle\": [576, 512, [], \"f1cc\", \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"],\n    \"sith\": [448, 512, [], \"f512\", \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"],\n    \"themeisle\": [512, 512, [], \"f2b2\", \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"],\n    \"page4\": [496, 512, [], \"f3d7\", \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"],\n    \"hashnode\": [512, 512, [], \"e499\", \"M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z\"],\n    \"react\": [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"],\n    \"cc-paypal\": [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"],\n    \"squarespace\": [512, 512, [], \"f5be\", \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"],\n    \"cc-stripe\": [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"],\n    \"creative-commons-share\": [496, 512, [], \"f4f2\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"],\n    \"bitcoin\": [512, 512, [], \"f379\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"],\n    \"keycdn\": [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"],\n    \"opera\": [496, 512, [], \"f26a\", \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"],\n    \"itch-io\": [512, 512, [], \"f83a\", \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"],\n    \"umbraco\": [510, 512, [], \"f8e8\", \"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"],\n    \"galactic-senate\": [512, 512, [], \"f50d\", \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"],\n    \"ubuntu\": [496, 512, [], \"f7df\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"],\n    \"draft2digital\": [480, 512, [], \"f396\", \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"],\n    \"stripe\": [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"],\n    \"houzz\": [448, 512, [], \"f27c\", \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"],\n    \"gg\": [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"],\n    \"dhl\": [640, 512, [], \"f790\", \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"],\n    \"square-pinterest\": [448, 512, [\"pinterest-square\"], \"f0d3\", \"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"],\n    \"xing\": [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"],\n    \"blackberry\": [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"],\n    \"creative-commons-pd\": [496, 512, [], \"f4ec\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"],\n    \"playstation\": [576, 512, [], \"f3df\", \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"],\n    \"quinscape\": [512, 512, [], \"f459\", \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"],\n    \"less\": [640, 512, [], \"f41d\", \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"],\n    \"blogger-b\": [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"],\n    \"opencart\": [640, 512, [], \"f23d\", \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"],\n    \"vine\": [384, 512, [], \"f1ca\", \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"],\n    \"paypal\": [384, 512, [], \"f1ed\", \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"],\n    \"gitlab\": [512, 512, [], \"f296\", \"M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z\"],\n    \"typo3\": [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"],\n    \"reddit-alien\": [512, 512, [], \"f281\", \"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"],\n    \"yahoo\": [512, 512, [], \"f19e\", \"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"],\n    \"dailymotion\": [448, 512, [], \"e052\", \"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"],\n    \"affiliatetheme\": [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"],\n    \"pied-piper-pp\": [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"],\n    \"bootstrap\": [576, 512, [], \"f836\", \"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"],\n    \"odnoklassniki\": [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"],\n    \"nfc-symbol\": [576, 512, [], \"e531\", \"M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z\"],\n    \"ethereum\": [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"],\n    \"speaker-deck\": [512, 512, [], \"f83c\", \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"],\n    \"creative-commons-nc-eu\": [496, 512, [], \"f4e9\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"],\n    \"patreon\": [512, 512, [], \"f3d9\", \"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"],\n    \"avianex\": [512, 512, [], \"f374\", \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"],\n    \"ello\": [496, 512, [], \"f5f1\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"],\n    \"gofore\": [400, 512, [], \"f3a7\", \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"],\n    \"bimobject\": [448, 512, [], \"f378\", \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"],\n    \"facebook-f\": [320, 512, [], \"f39e\", \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"],\n    \"square-google-plus\": [448, 512, [\"google-plus-square\"], \"f0d4\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"],\n    \"mandalorian\": [448, 512, [], \"f50f\", \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"],\n    \"first-order-alt\": [496, 512, [], \"f50a\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"],\n    \"osi\": [512, 512, [], \"f41a\", \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"],\n    \"google-wallet\": [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"],\n    \"d-and-d-beyond\": [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"],\n    \"periscope\": [448, 512, [], \"f3da\", \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"],\n    \"fulcrum\": [320, 512, [], \"f50b\", \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"],\n    \"cloudscale\": [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"],\n    \"forumbee\": [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"],\n    \"mizuni\": [496, 512, [], \"f3cc\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"],\n    \"schlix\": [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"],\n    \"square-xing\": [448, 512, [\"xing-square\"], \"f169\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"],\n    \"bandcamp\": [512, 512, [], \"f2d5\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"],\n    \"wpforms\": [448, 512, [], \"f298\", \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"],\n    \"cloudversify\": [616, 512, [], \"f385\", \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"],\n    \"usps\": [576, 512, [], \"f7e1\", \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"],\n    \"megaport\": [496, 512, [], \"f5a3\", \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"],\n    \"magento\": [448, 512, [], \"f3c4\", \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"],\n    \"spotify\": [496, 512, [], \"f1bc\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"],\n    \"optin-monster\": [576, 512, [], \"f23c\", \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"],\n    \"fly\": [384, 512, [], \"f417\", \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"],\n    \"aviato\": [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"],\n    \"itunes\": [448, 512, [], \"f3b4\", \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"],\n    \"cuttlefish\": [440, 512, [], \"f38c\", \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"],\n    \"blogger\": [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"],\n    \"flickr\": [448, 512, [], \"f16e\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"],\n    \"viber\": [512, 512, [], \"f409\", \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"],\n    \"soundcloud\": [640, 512, [], \"f1be\", \"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"],\n    \"digg\": [512, 512, [], \"f1a6\", \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"],\n    \"tencent-weibo\": [384, 512, [], \"f1d5\", \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"],\n    \"symfony\": [512, 512, [], \"f83d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"],\n    \"maxcdn\": [512, 512, [], \"f136\", \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"],\n    \"etsy\": [384, 512, [], \"f2d7\", \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"],\n    \"facebook-messenger\": [512, 512, [], \"f39f\", \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"],\n    \"audible\": [640, 512, [], \"f373\", \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"],\n    \"think-peaks\": [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"],\n    \"bilibili\": [512, 512, [], \"e3d9\", \"M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z\"],\n    \"erlang\": [640, 512, [], \"f39d\", \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"],\n    \"cotton-bureau\": [512, 512, [], \"f89e\", \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"],\n    \"dashcube\": [448, 512, [], \"f210\", \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"],\n    \"42-group\": [640, 512, [\"innosoft\"], \"e080\", \"M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z\"],\n    \"stack-exchange\": [448, 512, [], \"f18d\", \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"],\n    \"elementor\": [512, 512, [], \"f430\", \"M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z\"],\n    \"square-pied-piper\": [448, 512, [\"pied-piper-square\"], \"e01e\", \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"],\n    \"creative-commons-nd\": [496, 512, [], \"f4eb\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"],\n    \"palfed\": [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"],\n    \"superpowers\": [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"],\n    \"resolving\": [496, 512, [], \"f3e7\", \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"],\n    \"xbox\": [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"],\n    \"searchengin\": [460, 512, [], \"f3eb\", \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"],\n    \"tiktok\": [448, 512, [], \"e07b\", \"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"],\n    \"square-facebook\": [448, 512, [\"facebook-square\"], \"f082\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"],\n    \"renren\": [512, 512, [], \"f18b\", \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"],\n    \"linux\": [448, 512, [], \"f17c\", \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"],\n    \"glide\": [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"],\n    \"linkedin\": [448, 512, [], \"f08c\", \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"],\n    \"hubspot\": [512, 512, [], \"f3b2\", \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"],\n    \"deploydog\": [512, 512, [], \"f38e\", \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"],\n    \"twitch\": [512, 512, [], \"f1e8\", \"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"],\n    \"ravelry\": [512, 512, [], \"f2d9\", \"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"],\n    \"mixer\": [512, 512, [], \"e056\", \"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"],\n    \"square-lastfm\": [448, 512, [\"lastfm-square\"], \"f203\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"],\n    \"vimeo\": [448, 512, [], \"f40a\", \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"],\n    \"mendeley\": [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"],\n    \"uniregistry\": [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"],\n    \"figma\": [384, 512, [], \"f799\", \"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"],\n    \"creative-commons-remix\": [496, 512, [], \"f4ee\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"],\n    \"cc-amazon-pay\": [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"],\n    \"dropbox\": [528, 512, [], \"f16b\", \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"],\n    \"instagram\": [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],\n    \"cmplid\": [640, 512, [], \"e360\", \"M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z\"],\n    \"facebook\": [512, 512, [62000], \"f09a\", \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"],\n    \"gripfire\": [384, 512, [], \"f3ac\", \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"],\n    \"jedi-order\": [448, 512, [], \"f50e\", \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"],\n    \"uikit\": [448, 512, [], \"f403\", \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"],\n    \"fort-awesome-alt\": [512, 512, [], \"f3a3\", \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"],\n    \"phabricator\": [496, 512, [], \"f3db\", \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"],\n    \"ussunnah\": [512, 512, [], \"f407\", \"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"],\n    \"earlybirds\": [480, 512, [], \"f39a\", \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"],\n    \"trade-federation\": [496, 512, [], \"f513\", \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"],\n    \"autoprefixer\": [640, 512, [], \"f41c\", \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"],\n    \"whatsapp\": [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"],\n    \"slideshare\": [512, 512, [], \"f1e7\", \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"],\n    \"google-play\": [512, 512, [], \"f3ab\", \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"],\n    \"viadeo\": [448, 512, [], \"f2a9\", \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"],\n    \"line\": [448, 512, [], \"f3c0\", \"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"],\n    \"google-drive\": [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"],\n    \"servicestack\": [496, 512, [], \"f3ec\", \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"],\n    \"simplybuilt\": [512, 512, [], \"f215\", \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"],\n    \"bitbucket\": [512, 512, [61810], \"f171\", \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"],\n    \"imdb\": [448, 512, [], \"f2d8\", \"M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z\"],\n    \"deezer\": [576, 512, [], \"e077\", \"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"],\n    \"raspberry-pi\": [407, 512, [], \"f7bb\", \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"],\n    \"jira\": [496, 512, [], \"f7b1\", \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"],\n    \"docker\": [640, 512, [], \"f395\", \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"],\n    \"screenpal\": [512, 512, [], \"e570\", \"M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z\"],\n    \"bluetooth\": [448, 512, [], \"f293\", \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"],\n    \"gitter\": [384, 512, [], \"f426\", \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"],\n    \"d-and-d\": [576, 512, [], \"f38d\", \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"],\n    \"microblog\": [448, 512, [], \"e01a\", \"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"],\n    \"cc-diners-club\": [576, 512, [], \"f24c\", \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"],\n    \"gg-circle\": [512, 512, [], \"f261\", \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"],\n    \"pied-piper-hat\": [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"],\n    \"kickstarter-k\": [384, 512, [], \"f3bc\", \"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"],\n    \"yandex\": [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"],\n    \"readme\": [576, 512, [], \"f4d5\", \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"],\n    \"html5\": [384, 512, [], \"f13b\", \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"],\n    \"sellsy\": [640, 512, [], \"f213\", \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"],\n    \"sass\": [640, 512, [], \"f41e\", \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"],\n    \"wirsindhandwerk\": [512, 512, [\"wsh\"], \"e2d0\", \"M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z\"],\n    \"buromobelexperte\": [448, 512, [], \"f37f\", \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"],\n    \"salesforce\": [640, 512, [], \"f83b\", \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"],\n    \"octopus-deploy\": [512, 512, [], \"e082\", \"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"],\n    \"medapps\": [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"],\n    \"ns8\": [640, 512, [], \"f3d5\", \"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"],\n    \"pinterest-p\": [384, 512, [], \"f231\", \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"],\n    \"apper\": [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"],\n    \"fort-awesome\": [512, 512, [], \"f286\", \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"],\n    \"waze\": [512, 512, [], \"f83f\", \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"],\n    \"cc-jcb\": [576, 512, [], \"f24b\", \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"],\n    \"snapchat\": [512, 512, [62124, \"snapchat-ghost\"], \"f2ab\", \"M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z\"],\n    \"fantasy-flight-games\": [512, 512, [], \"f6dc\", \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"],\n    \"rust\": [512, 512, [], \"e07a\", \"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"],\n    \"wix\": [640, 512, [], \"f5cf\", \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"],\n    \"square-behance\": [448, 512, [\"behance-square\"], \"f1b5\", \"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"],\n    \"supple\": [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"],\n    \"rebel\": [512, 512, [], \"f1d0\", \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"],\n    \"css3\": [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"],\n    \"staylinked\": [440, 512, [], \"f3f5\", \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"],\n    \"kaggle\": [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"],\n    \"space-awesome\": [512, 512, [], \"e5ac\", \"M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z\"],\n    \"deviantart\": [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"],\n    \"cpanel\": [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"],\n    \"goodreads-g\": [384, 512, [], \"f3a9\", \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"],\n    \"square-git\": [448, 512, [\"git-square\"], \"f1d2\", \"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"],\n    \"square-tumblr\": [448, 512, [\"tumblr-square\"], \"f174\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"],\n    \"trello\": [448, 512, [], \"f181\", \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"],\n    \"creative-commons-nc-jp\": [496, 512, [], \"f4ea\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"],\n    \"get-pocket\": [448, 512, [], \"f265\", \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"],\n    \"perbyte\": [448, 512, [], \"e083\", \"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"],\n    \"grunt\": [384, 512, [], \"f3ad\", \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"],\n    \"weebly\": [512, 512, [], \"f5cc\", \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"],\n    \"connectdevelop\": [576, 512, [], \"f20e\", \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"],\n    \"leanpub\": [576, 512, [], \"f212\", \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"],\n    \"black-tie\": [448, 512, [], \"f27e\", \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"],\n    \"themeco\": [448, 512, [], \"f5c6\", \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"],\n    \"python\": [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"],\n    \"android\": [576, 512, [], \"f17b\", \"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"],\n    \"bots\": [640, 512, [], \"e340\", \"M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z\"],\n    \"free-code-camp\": [576, 512, [], \"f2c5\", \"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"],\n    \"hornbill\": [512, 512, [], \"f592\", \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"],\n    \"js\": [448, 512, [], \"f3b8\", \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n    \"ideal\": [576, 512, [], \"e013\", \"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"],\n    \"git\": [512, 512, [], \"f1d3\", \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"],\n    \"dev\": [448, 512, [], \"f6cc\", \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"],\n    \"sketch\": [512, 512, [], \"f7c6\", \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"],\n    \"yandex-international\": [320, 512, [], \"f414\", \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"],\n    \"cc-amex\": [576, 512, [], \"f1f3\", \"M48 480C21.49 480 0 458.5 0 432V80C0 53.49 21.49 32 48 32H528C554.5 32 576 53.49 576 80V82.43H500.5L483.5 130L466.6 82.43H369.4V145.6L341.3 82.43H262.7L181 267.1H246.8V430.9H450.5L482.4 395.8L514.3 430.9H576V432C576 458.5 554.5 480 528 480H48zM482.6 364L440.4 410.3H390.5L458 338.6L390.5 266.1H441.9L483.4 312.8L525.4 266.1H576L508 338.2L576 410.3H524.6L482.6 364zM576 296.9V380.2L536.7 338.3L576 296.9zM307.6 377.1H390.6V410.3H268.6V267.1H390.6V300.2H307.6V322.6H388.5V354.9H307.6V377.2V377.1zM537.3 145.7L500.4 246.3H466L429.2 146V246.3H390.5V103H451.7L483.6 192.3L515.8 103H576V246.3H537.3V145.7zM334.5 217.6H268.6L256.7 246.3H213.7L276.1 103H327.3L390.6 246.3H346.5L334.5 217.6zM301.5 138.5L282 185.4H320.9L301.5 138.5z\"],\n    \"uber\": [448, 512, [], \"f402\", \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"],\n    \"github\": [496, 512, [], \"f09b\", \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"],\n    \"php\": [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"],\n    \"alipay\": [448, 512, [], \"f642\", \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"],\n    \"youtube\": [576, 512, [61802], \"f167\", \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"],\n    \"skyatlas\": [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"],\n    \"firefox-browser\": [512, 512, [], \"e007\", \"M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z\"],\n    \"replyd\": [448, 512, [], \"f3e6\", \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"],\n    \"suse\": [640, 512, [], \"f7d6\", \"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"],\n    \"jenkins\": [512, 512, [], \"f3b6\", \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"],\n    \"twitter\": [512, 512, [], \"f099\", \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"],\n    \"rockrms\": [496, 512, [], \"f3e9\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"],\n    \"pinterest\": [496, 512, [], \"f0d2\", \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"],\n    \"buffer\": [448, 512, [], \"f837\", \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"],\n    \"npm\": [576, 512, [], \"f3d4\", \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"],\n    \"yammer\": [512, 512, [], \"f840\", \"M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z\"],\n    \"btc\": [384, 512, [], \"f15a\", \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"],\n    \"dribbble\": [512, 512, [], \"f17d\", \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"],\n    \"stumbleupon-circle\": [496, 512, [], \"f1a3\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"],\n    \"internet-explorer\": [512, 512, [], \"f26b\", \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"],\n    \"telegram\": [496, 512, [62462, \"telegram-plane\"], \"f2c6\", \"M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z\"],\n    \"old-republic\": [496, 512, [], \"f510\", \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"],\n    \"square-whatsapp\": [448, 512, [\"whatsapp-square\"], \"f40c\", \"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"],\n    \"node-js\": [448, 512, [], \"f3d3\", \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"],\n    \"edge-legacy\": [512, 512, [], \"e078\", \"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"],\n    \"slack\": [448, 512, [62447, \"slack-hash\"], \"f198\", \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"],\n    \"medrt\": [544, 512, [], \"f3c8\", \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"],\n    \"usb\": [640, 512, [], \"f287\", \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"],\n    \"tumblr\": [320, 512, [], \"f173\", \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"],\n    \"vaadin\": [448, 512, [], \"f408\", \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"],\n    \"quora\": [448, 512, [], \"f2c4\", \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"],\n    \"reacteurope\": [576, 512, [], \"f75d\", \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"],\n    \"medium\": [640, 512, [62407, \"medium-m\"], \"f23a\", \"M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z\"],\n    \"amilia\": [448, 512, [], \"f36d\", \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"],\n    \"mixcloud\": [640, 512, [], \"f289\", \"M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z\"],\n    \"flipboard\": [448, 512, [], \"f44d\", \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"],\n    \"viacoin\": [384, 512, [], \"f237\", \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"],\n    \"critical-role\": [448, 512, [], \"f6c9\", \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"],\n    \"sitrox\": [448, 512, [], \"e44a\", \"M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z\"],\n    \"discourse\": [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"],\n    \"joomla\": [448, 512, [], \"f1aa\", \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"],\n    \"mastodon\": [448, 512, [], \"f4f6\", \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"],\n    \"airbnb\": [448, 512, [], \"f834\", \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"],\n    \"wolf-pack-battalion\": [512, 512, [], \"f514\", \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"],\n    \"buy-n-large\": [576, 512, [], \"f8a6\", \"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"],\n    \"gulp\": [256, 512, [], \"f3ae\", \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"],\n    \"creative-commons-sampling-plus\": [496, 512, [], \"f4f1\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"],\n    \"strava\": [384, 512, [], \"f428\", \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"],\n    \"ember\": [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"],\n    \"canadian-maple-leaf\": [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"],\n    \"teamspeak\": [512, 512, [], \"f4f9\", \"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"],\n    \"pushed\": [432, 512, [], \"f3e1\", \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"],\n    \"wordpress-simple\": [512, 512, [], \"f411\", \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"],\n    \"nutritionix\": [400, 512, [], \"f3d6\", \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"],\n    \"wodu\": [640, 512, [], \"e088\", \"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"],\n    \"google-pay\": [640, 512, [], \"e079\", \"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"],\n    \"intercom\": [448, 512, [], \"f7af\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"],\n    \"zhihu\": [640, 512, [], \"f63f\", \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"],\n    \"korvue\": [446, 512, [], \"f42f\", \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"],\n    \"pix\": [512, 512, [], \"e43a\", \"M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z\"],\n    \"steam-symbol\": [448, 512, [], \"f3f6\", \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"]\n  };\n\n  bunker(function () {\n    defineIcons('fab', icons);\n    defineIcons('fa-brands', icons);\n  });\n\n}());\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  function ownKeys(object, enumerableOnly) {\n    var keys = Object.keys(object);\n\n    if (Object.getOwnPropertySymbols) {\n      var symbols = Object.getOwnPropertySymbols(object);\n      enumerableOnly && (symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      })), keys.push.apply(keys, symbols);\n    }\n\n    return keys;\n  }\n\n  function _objectSpread2(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = null != arguments[i] ? arguments[i] : {};\n      i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n\n    return target;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n  }\n\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n  }\n\n  function _iterableToArray(iter) {\n    if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n  }\n\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n  var FAMILY_CLASSIC = 'classic';\n  var FAMILY_SHARP = 'sharp';\n  var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\n  function familyProxy(obj) {\n    // Defaults to the classic family if family is not available\n    return new Proxy(obj, {\n      get: function get(target, prop) {\n        return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n      }\n    });\n  }\n  var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n    'fa': 'solid',\n    'fas': 'solid',\n    'fa-solid': 'solid',\n    'far': 'regular',\n    'fa-regular': 'regular',\n    'fal': 'light',\n    'fa-light': 'light',\n    'fat': 'thin',\n    'fa-thin': 'thin',\n    'fad': 'duotone',\n    'fa-duotone': 'duotone',\n    'fab': 'brands',\n    'fa-brands': 'brands',\n    'fak': 'kit',\n    'fa-kit': 'kit'\n  }), _defineProperty(_familyProxy, FAMILY_SHARP, {\n    'fa': 'solid',\n    'fass': 'solid',\n    'fa-solid': 'solid'\n  }), _familyProxy));\n  var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n    'solid': 'fas',\n    'regular': 'far',\n    'light': 'fal',\n    'thin': 'fat',\n    'duotone': 'fad',\n    'brands': 'fab',\n    'kit': 'fak'\n  }), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n    'solid': 'fass'\n  }), _familyProxy2));\n  var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n    'fab': 'fa-brands',\n    'fad': 'fa-duotone',\n    'fak': 'fa-kit',\n    'fal': 'fa-light',\n    'far': 'fa-regular',\n    'fas': 'fa-solid',\n    'fat': 'fa-thin'\n  }), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n    'fass': 'fa-solid'\n  }), _familyProxy3));\n  var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n    'fa-brands': 'fab',\n    'fa-duotone': 'fad',\n    'fa-kit': 'fak',\n    'fa-light': 'fal',\n    'fa-regular': 'far',\n    'fa-solid': 'fas',\n    'fa-thin': 'fat'\n  }), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n    'fa-solid': 'fass'\n  }), _familyProxy4));\n  // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\n  var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n    '900': 'fas',\n    '400': 'far',\n    'normal': 'far',\n    '300': 'fal',\n    '100': 'fat'\n  }), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n    '900': 'fass'\n  }), _familyProxy5));\n  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  var DUOTONE_CLASSES = {\n    GROUP: 'duotone-group',\n    SWAP_OPACITY: 'swap-opacity',\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary'\n  };\n  var prefixes = new Set();\n  Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\n  Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\n  var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n    return \"\".concat(n, \"x\");\n  })).concat(oneToTwenty.map(function (n) {\n    return \"w-\".concat(n);\n  }));\n\n  function bunker(fn) {\n    try {\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      fn.apply(void 0, args);\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function normalizeIcons(icons) {\n    return Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n  }\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = normalizeIcons(icons);\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalizeIcons(icons));\n    } else {\n      namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll ease the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"trash-can\": [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M160 400C160 408.8 152.8 416 144 416C135.2 416 128 408.8 128 400V192C128 183.2 135.2 176 144 176C152.8 176 160 183.2 160 192V400zM240 400C240 408.8 232.8 416 224 416C215.2 416 208 408.8 208 400V192C208 183.2 215.2 176 224 176C232.8 176 240 183.2 240 192V400zM320 400C320 408.8 312.8 416 304 416C295.2 416 288 408.8 288 400V192C288 183.2 295.2 176 304 176C312.8 176 320 183.2 320 192V400zM317.5 24.94L354.2 80H424C437.3 80 448 90.75 448 104C448 117.3 437.3 128 424 128H416V432C416 476.2 380.2 512 336 512H112C67.82 512 32 476.2 32 432V128H24C10.75 128 0 117.3 0 104C0 90.75 10.75 80 24 80H93.82L130.5 24.94C140.9 9.357 158.4 0 177.1 0H270.9C289.6 0 307.1 9.358 317.5 24.94H317.5zM151.5 80H296.5L277.5 51.56C276 49.34 273.5 48 270.9 48H177.1C174.5 48 171.1 49.34 170.5 51.56L151.5 80zM80 432C80 449.7 94.33 464 112 464H336C353.7 464 368 449.7 368 432V128H80V432z\"],\n    \"message\": [512, 512, [\"comment-alt\"], \"f27a\", \"M447.1 0h-384c-35.25 0-64 28.75-64 63.1v287.1c0 35.25 28.75 63.1 64 63.1h96v83.98c0 9.836 11.02 15.55 19.12 9.7l124.9-93.68h144c35.25 0 64-28.75 64-63.1V63.1C511.1 28.75 483.2 0 447.1 0zM464 352c0 8.75-7.25 16-16 16h-160l-80 60v-60H64c-8.75 0-16-7.25-16-16V64c0-8.75 7.25-16 16-16h384c8.75 0 16 7.25 16 16V352z\"],\n    \"file-lines\": [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM96 280C96 293.3 106.8 304 120 304h144C277.3 304 288 293.3 288 280S277.3 256 264 256h-144C106.8 256 96 266.8 96 280zM264 352h-144C106.8 352 96 362.8 96 376s10.75 24 24 24h144c13.25 0 24-10.75 24-24S277.3 352 264 352z\"],\n    \"calendar-days\": [448, 512, [\"calendar-alt\"], \"f073\", \"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 248H128V192H48V248zM48 296V360H128V296H48zM176 296V360H272V296H176zM320 296V360H400V296H320zM400 192H320V248H400V192zM400 408H320V464H384C392.8 464 400 456.8 400 448V408zM272 408H176V464H272V408zM128 408H48V448C48 456.8 55.16 464 64 464H128V408zM272 192H176V248H272V192z\"],\n    \"hand-point-right\": [512, 512, [], \"f0a4\", \"M320 408c0-6.428-.8457-12.66-2.434-18.6C338.2 376.7 352 353.9 352 328c0-6.428-.8457-12.66-2.434-18.6C370.2 296.7 384 273.9 384 248c0-2.705-.1484-5.373-.4414-8H440C479.7 240 512 207.7 512 168S479.7 96 440 96H243.7C227.5 76.51 203.2 64 176 64H126.1C94.02 64 64.47 81.1 49 108.6L17.65 164.5C6.104 185.1 0 208.4 0 231.8v107.9C0 417.1 64.6 480 144 480h104C287.7 480 320 447.7 320 408zM280 304c13.23 0 24 10.78 24 24S293.2 352 280 352H232.1C218.9 352 208 341.2 208 328S218.8 304 232 304H280zM312 224c13.23 0 24 10.78 24 24S325.2 272 312 272h-48c-3.029 0-5.875-.7012-8.545-1.73C260.7 259.9 264 248.4 264 236V224H312zM440 144c13.23 0 24 10.78 24 24S453.2 192 440 192h-176V152c0-2.686-.5566-5.217-.793-7.84C263.5 144.2 263.7 144 264 144H440zM48 339.7V231.8c0-15.25 3.984-30.41 11.52-43.88l31.34-55.78C97.84 119.7 111.4 112 126.1 112H176c22.06 0 40 17.94 40 40v84c0 15.44-12.56 28-28 28S160 251.4 160 236V184C160 170.8 149.3 160 136 160S112 170.8 112 184v52c0 33.23 21.58 61.25 51.36 71.54C161.3 314 160 320.9 160 328c0 5.041 1.166 9.836 2.178 14.66C137.4 354 120 378.1 120 408c0 7.684 1.557 14.94 3.836 21.87C80.56 420.9 48 383.9 48 339.7zM192 432c-13.23 0-24-10.78-24-24S178.8 384 192 384h56c13.23 0 24 10.78 24 24s-10.77 24-24 24H192z\"],\n    \"face-smile-beam\": [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-grin-stars\": [512, 512, [129321, \"grin-stars\"], \"f587\", \"M199.8 167.3L237.9 172.3C240.1 172.7 243.5 174.8 244.5 177.8C245.4 180.7 244.6 183.9 242.4 186L214.5 212.5L221.5 250.3C222 253.4 220.8 256.4 218.3 258.2C215.8 260.1 212.5 260.3 209.8 258.8L175.1 240.5L142.2 258.8C139.5 260.3 136.2 260.1 133.7 258.2C131.2 256.4 129.1 253.4 130.5 250.3L137.5 212.5L109.6 186C107.4 183.9 106.6 180.7 107.5 177.8C108.5 174.8 111 172.7 114.1 172.3L152.2 167.3L168.8 132.6C170.1 129.8 172.9 128 175.1 128C179.1 128 181.9 129.8 183.2 132.6L199.8 167.3zM359.8 167.3L397.9 172.3C400.1 172.7 403.5 174.8 404.5 177.8C405.4 180.7 404.6 183.9 402.4 186L374.5 212.5L381.5 250.3C382 253.4 380.8 256.4 378.3 258.2C375.8 260.1 372.5 260.3 369.8 258.8L336 240.5L302.2 258.8C299.5 260.3 296.2 260.1 293.7 258.2C291.2 256.4 289.1 253.4 290.5 250.3L297.5 212.5L269.6 186C267.4 183.9 266.6 180.7 267.5 177.8C268.5 174.8 271 172.7 274.1 172.3L312.2 167.3L328.8 132.6C330.1 129.8 332.9 128 336 128C339.1 128 341.9 129.8 343.2 132.6L359.8 167.3zM349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"],\n    \"address-book\": [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M272 288h-64C163.8 288 128 323.8 128 368C128 376.8 135.2 384 144 384h192c8.836 0 16-7.164 16-16C352 323.8 316.2 288 272 288zM240 256c35.35 0 64-28.65 64-64s-28.65-64-64-64c-35.34 0-64 28.65-64 64S204.7 256 240 256zM496 320H480v96h16c8.836 0 16-7.164 16-16v-64C512 327.2 504.8 320 496 320zM496 64H480v96h16C504.8 160 512 152.8 512 144v-64C512 71.16 504.8 64 496 64zM496 192H480v96h16C504.8 288 512 280.8 512 272v-64C512 199.2 504.8 192 496 192zM384 0H96C60.65 0 32 28.65 32 64v384c0 35.35 28.65 64 64 64h288c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM400 448c0 8.836-7.164 16-16 16H96c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h288c8.836 0 16 7.162 16 16V448z\"],\n    \"comments\": [640, 512, [128490, 61670], \"f086\", \"M208 0C322.9 0 416 78.8 416 176C416 273.2 322.9 352 208 352C189.3 352 171.2 349.7 153.9 345.8C123.3 364.8 79.13 384 24.95 384C14.97 384 5.93 378.1 2.018 368.9C-1.896 359.7-.0074 349.1 6.739 341.9C7.26 341.5 29.38 317.4 45.73 285.9C17.18 255.8 0 217.6 0 176C0 78.8 93.13 0 208 0zM164.6 298.1C179.2 302.3 193.8 304 208 304C296.2 304 368 246.6 368 176C368 105.4 296.2 48 208 48C119.8 48 48 105.4 48 176C48 211.2 65.71 237.2 80.57 252.9L104.1 277.8L88.31 308.1C84.74 314.1 80.73 321.9 76.55 328.5C94.26 323.4 111.7 315.5 128.7 304.1L145.4 294.6L164.6 298.1zM441.6 128.2C552 132.4 640 209.5 640 304C640 345.6 622.8 383.8 594.3 413.9C610.6 445.4 632.7 469.5 633.3 469.9C640 477.1 641.9 487.7 637.1 496.9C634.1 506.1 625 512 615 512C560.9 512 516.7 492.8 486.1 473.8C468.8 477.7 450.7 480 432 480C350 480 279.1 439.8 245.2 381.5C262.5 379.2 279.1 375.3 294.9 369.9C322.9 407.1 373.9 432 432 432C446.2 432 460.8 430.3 475.4 426.1L494.6 422.6L511.3 432.1C528.3 443.5 545.7 451.4 563.5 456.5C559.3 449.9 555.3 442.1 551.7 436.1L535.9 405.8L559.4 380.9C574.3 365.3 592 339.2 592 304C592 237.7 528.7 183.1 447.1 176.6L448 176C448 159.5 445.8 143.5 441.6 128.2H441.6z\"],\n    \"paste\": [512, 512, [\"file-clipboard\"], \"f0ea\", \"M80 96v16c0 17.7 14.3 32 32 32h60.8c16.6-28.7 47.6-48 83.2-48h62c-7.1-27.6-32.2-48-62-48H215.4C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48H64C28.7 48 0 76.7 0 112V384c0 35.3 28.7 64 64 64h96V400H64c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H80zm64-40a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM256 464c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H384v48c0 17.7 14.3 32 32 32h48V448c0 8.8-7.2 16-16 16H256zm192 48c35.3 0 64-28.7 64-64V227.9c0-12.7-5.1-24.9-14.1-33.9l-51.9-51.9c-9-9-21.2-14.1-33.9-14.1H256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448z\"],\n    \"face-grin-tongue-squint\": [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1V157.1zM378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V392.7C135.1 375.1 116.9 351.3 105.2 323.5C100.2 311.7 112.2 301 124.5 304.8C164.1 316.9 208.9 323.8 256.3 323.8C303.7 323.8 348.4 316.9 388.1 304.8C400.4 301 412.4 311.7 407.4 323.5C395.6 351.5 376.3 375.5 352 393.1V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 255.1C464 141.1 370.9 47.1 256 47.1L256 48zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"],\n    \"face-flushed\": [512, 512, [128563, \"flushed\"], \"f579\", \"M320 336C333.3 336 344 346.7 344 360C344 373.3 333.3 384 320 384H192C178.7 384 168 373.3 168 360C168 346.7 178.7 336 192 336H320zM136.4 224C136.4 210.7 147.1 200 160.4 200C173.6 200 184.4 210.7 184.4 224C184.4 237.3 173.6 248 160.4 248C147.1 248 136.4 237.3 136.4 224zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 197.5 186.5 176 160 176C133.5 176 112 197.5 112 224C112 250.5 133.5 272 160 272zM376.4 224C376.4 237.3 365.6 248 352.4 248C339.1 248 328.4 237.3 328.4 224C328.4 210.7 339.1 200 352.4 200C365.6 200 376.4 210.7 376.4 224zM432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224zM352 176C325.5 176 304 197.5 304 224C304 250.5 325.5 272 352 272C378.5 272 400 250.5 400 224C400 197.5 378.5 176 352 176zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"],\n    \"square-caret-right\": [448, 512, [\"caret-square-right\"], \"f152\", \"M200.3 142.4C193.3 135.9 183.1 134.2 174.4 138C165.7 141.8 160 150.5 160 159.1v192C160 361.5 165.7 370.2 174.4 374c8.719 3.812 18.91 2.094 25.91-4.375l104-96C309.2 269.1 312 262.7 312 256s-2.812-13.09-7.719-17.62L200.3 142.4zM384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416z\"],\n    \"square-minus\": [448, 512, [61767, \"minus-square\"], \"f146\", \"M312 232C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H312zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"],\n    \"compass\": [512, 512, [129517], \"f14e\", \"M306.7 325.1L162.4 380.6C142.1 388.1 123.9 369 131.4 349.6L186.9 205.3C190.1 196.8 196.8 190.1 205.3 186.9L349.6 131.4C369 123.9 388.1 142.1 380.6 162.4L325.1 306.7C321.9 315.2 315.2 321.9 306.7 325.1V325.1zM255.1 224C238.3 224 223.1 238.3 223.1 256C223.1 273.7 238.3 288 255.1 288C273.7 288 288 273.7 288 256C288 238.3 273.7 224 255.1 224V224zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"square-caret-down\": [448, 512, [\"caret-square-down\"], \"f150\", \"M320 192H128C118.5 192 109.8 197.7 105.1 206.4C102.2 215.1 103.9 225.3 110.4 232.3l96 104C210.9 341.2 217.3 344 224 344s13.09-2.812 17.62-7.719l96-104c6.469-7 8.188-17.19 4.375-25.91C338.2 197.7 329.5 192 320 192zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z\"],\n    \"face-kiss-beam\": [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M304.7 297.7C308.9 302.8 312 309.1 312 316C312 322.9 308.9 329.2 304.7 334.3C300.4 339.5 294.5 344 287.9 347.7C285.2 349.3 282.3 350.7 279.2 352C282.3 353.3 285.2 354.7 287.9 356.3C294.5 359.1 300.4 364.5 304.7 369.7C308.9 374.8 312 381.1 312 388C312 394.9 308.9 401.2 304.7 406.3C300.4 411.5 294.5 416 287.9 419.7C274.7 427.1 257.4 432 240 432C236.4 432 233.2 429.5 232.3 426C231.3 422.5 232.9 418.8 236.1 417L236.1 417L236.3 416.9C236.5 416.8 236.8 416.6 237.2 416.3C238 415.9 239.2 415.1 240.6 414.2C243.4 412.4 247.2 409.7 250.8 406.6C254.6 403.5 258 400 260.5 396.6C262.1 393 264 390.2 264 388C264 385.8 262.1 382.1 260.5 379.4C258 375.1 254.6 372.5 250.8 369.4C247.2 366.3 243.4 363.6 240.6 361.8C239.2 360.9 238 360.1 237.2 359.7C236.8 359.4 236.5 359.2 236.3 359.1L236.1 358.1L236.1 358.1C233.6 357.6 232 354.9 232 352C232 349.1 233.6 346.4 236.1 345L236.1 345L236.3 344.9C236.5 344.8 236.8 344.6 237.2 344.3C238 343.9 239.2 343.1 240.6 342.2C243.4 340.4 247.2 337.7 250.8 334.6C254.6 331.5 258 328.1 260.5 324.6C262.1 321 264 318.2 264 316C264 313.8 262.1 310.1 260.5 307.4C258 303.1 254.6 300.5 250.8 297.4C247.2 294.3 243.4 291.6 240.6 289.8C239.2 288.9 238 288.1 237.2 287.7C236.8 287.4 236.5 287.2 236.3 287.1L236.1 286.1L236.1 286.1C232.9 285.2 231.3 281.5 232.3 277.1C233.2 274.5 236.4 272 240 272C257.4 272 274.7 276.9 287.9 284.3C294.5 287.1 300.4 292.5 304.7 297.7L304.7 297.7zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"lightbulb\": [384, 512, [128161], \"f0eb\", \"M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM192 0C90.02 .3203 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.8 289.2 .0039 192 0zM288.4 260.1c-15.66 17.85-35.04 46.3-49.05 75.89h-94.61c-14.01-29.59-33.39-58.04-49.04-75.88C75.24 236.8 64 206.1 64 175.1C64 113.3 112.1 48.25 191.1 48C262.6 48 320 105.4 320 175.1C320 206.1 308.8 236.8 288.4 260.1zM176 80C131.9 80 96 115.9 96 160c0 8.844 7.156 16 16 16S128 168.8 128 160c0-26.47 21.53-48 48-48c8.844 0 16-7.148 16-15.99S184.8 80 176 80z\"],\n    \"flag\": [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24V64 350.5 400v88c0 13.3 10.7 24 24 24s24-10.7 24-24V388l80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52V24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8V334.7l-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5v-237z\"],\n    \"square-check\": [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M211.8 339.8C200.9 350.7 183.1 350.7 172.2 339.8L108.2 275.8C97.27 264.9 97.27 247.1 108.2 236.2C119.1 225.3 136.9 225.3 147.8 236.2L192 280.4L300.2 172.2C311.1 161.3 328.9 161.3 339.8 172.2C350.7 183.1 350.7 200.9 339.8 211.8L211.8 339.8zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"],\n    \"circle-dot\": [512, 512, [128280, \"dot-circle\"], \"f192\", \"M160 256C160 202.1 202.1 160 256 160C309 160 352 202.1 352 256C352 309 309 352 256 352C202.1 352 160 309 160 256zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-dizzy\": [512, 512, [\"dizzy\"], \"f567\", \"M192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM103 135C112.4 125.7 127.6 125.7 136.1 135L160 158.1L183 135C192.4 125.7 207.6 125.7 216.1 135C226.3 144.4 226.3 159.6 216.1 168.1L193.9 192L216.1 215C226.3 224.4 226.3 239.6 216.1 248.1C207.6 258.3 192.4 258.3 183 248.1L160 225.9L136.1 248.1C127.6 258.3 112.4 258.3 103 248.1C93.66 239.6 93.66 224.4 103 215L126.1 192L103 168.1C93.66 159.6 93.66 144.4 103 135V135zM295 135C304.4 125.7 319.6 125.7 328.1 135L352 158.1L375 135C384.4 125.7 399.6 125.7 408.1 135C418.3 144.4 418.3 159.6 408.1 168.1L385.9 192L408.1 215C418.3 224.4 418.3 239.6 408.1 248.1C399.6 258.3 384.4 258.3 375 248.1L352 225.9L328.1 248.1C319.6 258.3 304.4 258.3 295 248.1C285.7 239.6 285.7 224.4 295 215L318.1 192L295 168.1C285.7 159.6 285.7 144.4 295 135V135zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"futbol\": [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M177.1 228.6L207.9 320h96.5l29.62-91.38L256 172.1L177.1 228.6zM255.1 0C114.6 0 .0001 114.6 .0001 256S114.6 512 256 512s255.1-114.6 255.1-255.1S397.4 0 255.1 0zM435.2 361.1l-103.9-1.578l-30.67 99.52C286.2 462.2 271.3 464 256 464s-30.19-1.773-44.56-4.93L180.8 359.6L76.83 361.1c-14.93-25.35-24.79-54.01-27.8-84.72L134.3 216.4L100.7 118.1c19.85-22.34 44.32-40.45 72.04-52.62L256 128l83.29-62.47c27.72 12.17 52.19 30.27 72.04 52.62L377.7 216.4l85.23 59.97C459.1 307.1 450.1 335.8 435.2 361.1z\"],\n    \"pen-to-square\": [512, 512, [\"edit\"], \"f044\", \"M373.1 24.97C401.2-3.147 446.8-3.147 474.9 24.97L487 37.09C515.1 65.21 515.1 110.8 487 138.9L289.8 336.2C281.1 344.8 270.4 351.1 258.6 354.5L158.6 383.1C150.2 385.5 141.2 383.1 135 376.1C128.9 370.8 126.5 361.8 128.9 353.4L157.5 253.4C160.9 241.6 167.2 230.9 175.8 222.2L373.1 24.97zM440.1 58.91C431.6 49.54 416.4 49.54 407 58.91L377.9 88L424 134.1L453.1 104.1C462.5 95.6 462.5 80.4 453.1 71.03L440.1 58.91zM203.7 266.6L186.9 325.1L245.4 308.3C249.4 307.2 252.9 305.1 255.8 302.2L390.1 168L344 121.9L209.8 256.2C206.9 259.1 204.8 262.6 203.7 266.6zM200 64C213.3 64 224 74.75 224 88C224 101.3 213.3 112 200 112H88C65.91 112 48 129.9 48 152V424C48 446.1 65.91 464 88 464H360C382.1 464 400 446.1 400 424V312C400 298.7 410.7 288 424 288C437.3 288 448 298.7 448 312V424C448 472.6 408.6 512 360 512H88C39.4 512 0 472.6 0 424V152C0 103.4 39.4 64 88 64H200z\"],\n    \"hourglass-half\": [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.75 10.75 0 24 0H360C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24V24zM99.78 384H284.2C281 379.6 277.4 375.4 273.5 371.5L192 289.9L110.5 371.5C106.6 375.4 102.1 379.6 99.78 384H99.78zM284.2 128C296.1 110.4 304 89.03 304 66.98V48H80V66.98C80 89.03 87 110.4 99.78 128H284.2z\"],\n    \"eye-slash\": [640, 512, [], \"f070\", \"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM189.8 123.5L235.8 159.5C258.3 139.9 287.8 128 320 128C390.7 128 448 185.3 448 256C448 277.2 442.9 297.1 433.8 314.7L487.6 356.9C521.1 322.8 545.9 283.1 558.6 256C544.1 225.1 518.4 183.5 479.9 147.7C438.8 109.6 385.2 79.1 320 79.1C269.5 79.1 225.1 97.73 189.8 123.5L189.8 123.5zM394.9 284.2C398.2 275.4 400 265.9 400 255.1C400 211.8 364.2 175.1 320 175.1C319.3 175.1 318.7 176 317.1 176C319.3 181.1 320 186.5 320 191.1C320 202.2 317.6 211.8 313.4 220.3L394.9 284.2zM404.3 414.5L446.2 447.5C409.9 467.1 367.8 480 320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L120.8 191.2C102.1 214.5 89.76 237.6 81.45 255.1C95.02 286 121.6 328.5 160.1 364.3C201.2 402.4 254.8 432 320 432C350.7 432 378.8 425.4 404.3 414.5H404.3zM192 255.1C192 253.1 192.1 250.3 192.3 247.5L248.4 291.7C258.9 312.8 278.5 328.6 302 333.1L358.2 378.2C346.1 381.1 333.3 384 319.1 384C249.3 384 191.1 326.7 191.1 255.1H192z\"],\n    \"hand\": [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M408 80c-3.994 0-7.91 .3262-11.73 .9551c-9.586-28.51-36.57-49.11-68.27-49.11c-6.457 0-12.72 .8555-18.68 2.457C296.6 13.73 273.9 0 248 0C222.1 0 199.3 13.79 186.6 34.44C180.7 32.85 174.5 32 168.1 32C128.4 32 96.01 64.3 96.01 104v121.6C90.77 224.6 85.41 224 80.01 224c-.0026 0 .0026 0 0 0C36.43 224 0 259.2 0 304.1c0 20.29 7.558 39.52 21.46 54.45l81.25 87.24C141.9 487.9 197.4 512 254.9 512h33.08C393.9 512 480 425.9 480 320V152C480 112.3 447.7 80 408 80zM432 320c0 79.41-64.59 144-143.1 144H254.9c-44.41 0-86.83-18.46-117.1-50.96l-79.76-85.63c-6.202-6.659-9.406-15.4-9.406-23.1c0-22.16 18.53-31.4 31.35-31.4c8.56 0 17.1 3.416 23.42 10.18l26.72 28.69C131.8 312.7 133.9 313.4 135.9 313.4c4.106 0 8.064-3.172 8.064-8.016V104c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152C192 264.8 199.2 272 208 272s15.1-7.163 15.1-15.1L224 72c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v184C272 264.8 279.2 272 288 272s15.99-7.164 15.99-15.1l.0077-152.2c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152.2C352 264.8 359.2 272 368 272s15.1-7.163 15.1-15.1V152c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24V320z\"],\n    \"hand-spock\": [576, 512, [128406], \"f259\", \"M234.9 48.02c10.43 0 20.72 5.834 24.13 19.17l47.33 184.1c2.142 8.456 9.174 12.62 16.21 12.62c7.326 0 14.66-4.505 16.51-13.37l31.72-155.1c2.921-14.09 13.76-20.57 24.67-20.57c13.01 0 26.14 9.19 26.14 25.62c0 2.19-.2333 4.508-.7313 6.951l-28.48 139.2c-.2389 1.156-.3514 2.265-.3514 3.323c0 8.644 7.504 13.9 14.86 13.9c5.869 0 11.65-3.341 13.46-10.98l24.73-104.2c.2347-.9802 4.12-19.76 24.28-19.76c13.21 0 26.64 9.4 26.64 24.79c0 2.168-.2665 4.455-.8378 6.852l-48.06 204.7c-13.59 57.85-65.15 98.74-124.5 98.74l-48.79-.0234c-40.7-.0196-79.86-15.58-109.5-43.51l-75.93-71.55c-5.938-5.584-8.419-11.1-8.419-18.2c0-13.88 12.45-26.69 26.38-26.69c5.756 0 11.76 2.182 17.26 7.376l51.08 48.14c1.682 1.569 3.599 2.249 5.448 2.249c4.192 0 8.04-3.49 8.04-8.001c0-23.76-3.372-47.39-10.12-70.28L142 161.1C141.2 159.1 140.8 156.3 140.8 153.7c0-15.23 13.48-24.82 26.75-24.82c10.11 0 20.1 5.559 23.94 18.42l31.22 105.8c2.231 7.546 8.029 10.8 13.9 10.8c7.752 0 15.64-5.659 15.64-14.57c0-1.339-.1783-2.752-.562-4.23L209.3 80.06C208.7 77.45 208.3 74.97 208.3 72.62C208.3 57.33 221.7 48.02 234.9 48.02zM234.9 0C201.5 0 160.4 25.24 160.4 72.72c0 2.807 .1579 5.632 .4761 8.463C129.9 83.9 92.84 108.9 92.84 153.8c0 7.175 1.038 14.47 3.148 21.68l24.33 81.94C115.8 256.5 111.1 256 106.4 256C65.74 256 32 290.6 32 330.8c0 19.59 8.162 38.58 23.6 53.1l75.89 71.51c38.68 36.45 89.23 56.53 142.3 56.56L322.6 512c82.1 0 152.5-55.83 171.3-135.8l48.06-204.7C543.3 165.7 544 159.7 544 153.9c0-54.55-49.55-72.95-74.59-72.95c-.7689 0-1.534 .0117-2.297 .0352c-10.49-39.43-46.46-54.11-71.62-54.11c-34.1 0-64.45 24.19-71.63 58.83L319.2 108.5l-13.7-53.29C297.1 22.22 268.7 0 234.9 0z\"],\n    \"face-kiss\": [512, 512, [128535, \"kiss\"], \"f596\", \"M304.7 281.7C308.9 286.8 312 293.1 312 300C312 306.9 308.9 313.2 304.7 318.3C300.4 323.5 294.5 328 287.9 331.7C285.2 333.3 282.3 334.7 279.2 336C282.3 337.3 285.2 338.7 287.9 340.3C294.5 343.1 300.4 348.5 304.7 353.7C308.9 358.8 312 365.1 312 372C312 378.9 308.9 385.2 304.7 390.3C300.4 395.5 294.5 400 287.9 403.7C274.7 411.1 257.4 416 240 416C236.4 416 233.2 413.5 232.3 410C231.3 406.5 232.9 402.8 236.1 401L236.1 401L236.3 400.9C236.5 400.8 236.8 400.6 237.2 400.3C238 399.9 239.2 399.1 240.6 398.2C243.4 396.4 247.2 393.7 250.8 390.6C254.6 387.5 258 384 260.5 380.6C262.1 377 264 374.2 264 372C264 369.8 262.1 366.1 260.5 363.4C258 359.1 254.6 356.5 250.8 353.4C247.2 350.3 243.4 347.6 240.6 345.8C239.2 344.9 238 344.1 237.2 343.7L236.5 343.2L236.3 343.1L236.1 342.1L236.1 342.1C233.6 341.6 232 338.9 232 336C232 333.1 233.6 330.4 236.1 329L236.1 329L236.3 328.9C236.5 328.8 236.8 328.6 237.2 328.3C238 327.9 239.2 327.1 240.6 326.2C243.4 324.4 247.2 321.7 250.8 318.6C254.6 315.5 258 312.1 260.5 308.6C262.1 305 264 302.2 264 300C264 297.8 262.1 294.1 260.5 291.4C258 287.1 254.6 284.5 250.8 281.4C247.2 278.3 243.4 275.6 240.6 273.8C239.2 272.9 238 272.1 237.2 271.7C236.8 271.4 236.5 271.2 236.3 271.1L236.1 270.1L236.1 270.1C232.9 269.2 231.3 265.5 232.3 261.1C233.2 258.5 236.4 256 240 256C257.4 256 274.7 260.9 287.9 268.3C294.5 271.1 300.4 276.5 304.7 281.7V281.7zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-grin-tongue\": [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 255.1 48H256zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"],\n    \"chess-bishop\": [320, 512, [9821], \"f43a\", \"M296 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512h272C309.3 512 320 501.3 320 488S309.3 464 296 464zM0 304c0 51.63 30.12 85.25 64 96v32h48v-67.13l-33.5-10.63C63.75 349.5 48 333.9 48 304c0-84.1 93.2-206.5 112.6-206.5c19.63 0 60.01 67.18 70.28 85.8l-66.13 66.13c-3.125 3.125-4.688 7.219-4.688 11.31S161.6 268.9 164.8 272L176 283.2c3.125 3.125 7.219 4.688 11.31 4.688s8.188-1.562 11.31-4.688L253 229C264.4 256.8 272 283.5 272 304c0 29.88-15.75 45.5-30.5 50.25L208 364.9V432H256v-32c33.88-10.75 64-44.38 64-96c0-73.38-67.75-197.2-120.6-241.5C213.4 59.12 224 47 224 32c0-17.62-14.38-32-32-32H128C110.4 0 96 14.38 96 32c0 15 10.62 27.12 24.62 30.5C67.75 106.8 0 230.6 0 304z\"],\n    \"face-grin-wink\": [512, 512, [\"grin-wink\"], \"f58c\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-grin-wide\": [512, 512, [128515, \"grin-alt\"], \"f581\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM224 192C224 227.3 209.7 256 192 256C174.3 256 160 227.3 160 192C160 156.7 174.3 128 192 128C209.7 128 224 156.7 224 192zM288 192C288 156.7 302.3 128 320 128C337.7 128 352 156.7 352 192C352 227.3 337.7 256 320 256C302.3 256 288 227.3 288 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-frown-open\": [512, 512, [128550, \"frown-open\"], \"f57a\", \"M179.3 369.3C166.1 374.5 153.1 365.1 158.4 352.9C175.1 314.7 214.3 287.8 259.9 287.8C305.6 287.8 344.8 314.7 361.4 352.1C366.7 365.2 352.9 374.5 340.6 369.3C316.2 359 288.8 353.2 259.9 353.2C231 353.2 203.7 358.1 179.3 369.3L179.3 369.3zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"hand-point-up\": [448, 512, [9757], \"f0a6\", \"M376 192c-6.428 0-12.66 .8457-18.6 2.434C344.7 173.8 321.9 160 296 160c-6.428 0-12.66 .8457-18.6 2.434C264.7 141.8 241.9 128 216 128C213.3 128 210.6 128.1 208 128.4V72C208 32.3 175.7 0 136 0S64 32.3 64 72v196.3C44.51 284.5 32 308.8 32 336v49.88c0 32.1 17.1 61.65 44.63 77.12l55.83 31.35C153.1 505.9 176.4 512 199.8 512h107.9C385.1 512 448 447.4 448 368V264C448 224.3 415.7 192 376 192zM272 232c0-13.23 10.78-24 24-24S320 218.8 320 232v47.91C320 293.1 309.2 304 296 304S272 293.2 272 280V232zM192 200C192 186.8 202.8 176 216 176s24 10.77 24 24v48c0 3.029-.7012 5.875-1.73 8.545C227.9 251.3 216.4 248 204 248H192V200zM112 72c0-13.23 10.78-24 24-24S160 58.77 160 72v176H120c-2.686 0-5.217 .5566-7.84 .793C112.2 248.5 112 248.3 112 248V72zM307.7 464H199.8c-15.25 0-30.41-3.984-43.88-11.52l-55.78-31.34C87.72 414.2 80 400.6 80 385.9V336c0-22.06 17.94-40 40-40h84c15.44 0 28 12.56 28 28S219.4 352 204 352H152C138.8 352 128 362.8 128 376s10.75 24 24 24h52c33.23 0 61.25-21.58 71.54-51.36C282 350.7 288.9 352 296 352c5.041 0 9.836-1.166 14.66-2.178C322 374.6 346.1 392 376 392c7.684 0 14.94-1.557 21.87-3.836C388.9 431.4 351.9 464 307.7 464zM400 320c0 13.23-10.78 24-24 24S352 333.2 352 320V264c0-13.23 10.78-24 24-24s24 10.77 24 24V320z\"],\n    \"bookmark\": [384, 512, [128278, 61591], \"f02e\", \"M336 0h-288C21.49 0 0 21.49 0 48v431.9c0 24.7 26.79 40.08 48.12 27.64L192 423.6l143.9 83.93C357.2 519.1 384 504.6 384 479.9V48C384 21.49 362.5 0 336 0zM336 452L192 368l-144 84V54C48 50.63 50.63 48 53.1 48h276C333.4 48 336 50.63 336 54V452z\"],\n    \"hand-point-down\": [448, 512, [], \"f0a7\", \"M448 248V144C448 64.6 385.1 0 307.7 0H199.8C176.4 0 153.1 6.104 132.5 17.65L76.63 49C49.1 64.47 32 94.02 32 126.1V176c0 27.23 12.51 51.53 32 67.69V440C64 479.7 96.3 512 136 512s72-32.3 72-72v-56.44C210.6 383.9 213.3 384 216 384c25.95 0 48.73-13.79 61.4-34.43C283.3 351.2 289.6 352 296 352c25.95 0 48.73-13.79 61.4-34.43C363.3 319.2 369.6 320 376 320C415.7 320 448 287.7 448 248zM272 232c0-13.23 10.78-24 24-24S320 218.9 320 232.1V280c0 13.23-10.78 24-24 24S272 293.2 272 280V232zM192 264h12c12.39 0 23.93-3.264 34.27-8.545C239.3 258.1 240 260.1 240 264v48c0 13.23-10.78 24-24 24S192 325.2 192 312V264zM112 264c0-.2813 .1504-.5137 .1602-.793C114.8 263.4 117.3 264 120 264H160v176c0 13.23-10.78 24-24 24S112 453.2 112 440V264zM397.9 123.8C390.9 121.6 383.7 120 376 120c-29.04 0-53.96 17.37-65.34 42.18C305.8 161.2 301 160 296 160c-7.139 0-13.96 1.273-20.46 3.355C265.2 133.6 237.2 112 204 112H152C138.8 112 128 122.8 128 136S138.8 160 152 160h52c15.44 0 28 12.56 28 28S219.4 216 204 216H120C97.94 216 80 198.1 80 176V126.1c0-14.77 7.719-28.28 20.16-35.27l55.78-31.34C169.4 51.98 184.6 48 199.8 48h107.9C351.9 48 388.9 80.56 397.9 123.8zM400 248c0 13.23-10.78 24-24 24S352 261.2 352 248V192c0-13.23 10.78-24 24-24S400 178.8 400 192V248z\"],\n    \"folder\": [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M447.1 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H63.1c-35.35 0-64 28.66-64 64v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C511.1 124.7 483.3 96 447.1 96zM463.1 416c0 8.824-7.178 16-16 16h-384c-8.822 0-16-7.176-16-16V96c0-8.824 7.178-16 16-16h117.5c4.273 0 8.293 1.664 11.31 4.688L255.1 144h192c8.822 0 16 7.176 16 16V416z\"],\n    \"user\": [448, 512, [128100, 62144], \"f007\", \"M272 304h-96C78.8 304 0 382.8 0 480c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32C448 382.8 369.2 304 272 304zM48.99 464C56.89 400.9 110.8 352 176 352h96c65.16 0 119.1 48.95 127 112H48.99zM224 256c70.69 0 128-57.31 128-128c0-70.69-57.31-128-128-128S96 57.31 96 128C96 198.7 153.3 256 224 256zM224 48c44.11 0 80 35.89 80 80c0 44.11-35.89 80-80 80S144 172.1 144 128C144 83.89 179.9 48 224 48z\"],\n    \"square-caret-left\": [448, 512, [\"caret-square-left\"], \"f191\", \"M384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416zM273.6 138c-8.719-3.812-18.91-2.094-25.91 4.375l-104 96C138.8 242.9 136 249.3 136 256s2.812 13.09 7.719 17.62l104 96c7 6.469 17.19 8.188 25.91 4.375C282.3 370.2 288 361.5 288 352V160C288 150.5 282.3 141.8 273.6 138z\"],\n    \"star\": [576, 512, [11088, 61446], \"f005\", \"M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z\"],\n    \"chess-knight\": [384, 512, [9822], \"f441\", \"M44 320.6l14.5 6.5c-17.01 20.24-26.44 45.91-26.44 72.35C32.06 399.7 32.12 432 32.12 432h48v-32c0-24.75 14-47.5 36.13-58.63l38.13-23.37c13.25-6.625 21.75-20.25 21.75-35.13v-58.75l-15.37 9C155.6 235.8 151.9 240.4 150.5 245.9L143 271c-2.25 7.625-8 13.88-15.38 16.75L117.1 292C114 293.3 110.7 293.9 107.4 293.9c-3.626 0-7.263-.7514-10.66-2.254L63.5 276.9C54.12 272.6 48 263.2 48 252.9V140.5c0-5.125 2.125-10.12 5.75-13.88l7.375-7.375L49.5 96C48.5 94.12 48 92 48 89.88C48 84.38 52.38 80 57.88 80h105c86.75 0 156.1 70.38 156.1 157.1V432h48.06l-.0625-194.9C367.9 124 276 32 162.9 32H57.88C25.88 32 0 57.88 0 89.88c0 8.5 1.75 16.88 5.125 24.62C1.75 122.8 0 131.6 0 140.5v112.4C0 282.2 17.25 308.8 44 320.6zM80.12 164c0 11 8.875 20 20 20c11 0 20-9 20-20s-9-20-20-20C89 144 80.12 153 80.12 164zM360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464z\"],\n    \"face-laugh-squint\": [512, 512, [\"laugh-squint\"], \"f59b\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM223.4 178.6C234.1 184.3 234.1 199.7 223.4 205.4L133.5 253.3C125.6 257.6 116 251.8 116 242.9C116 240.1 116.1 237.4 118.8 235.2L154.8 192L118.8 148.8C116.1 146.6 116 143.9 116 141.1C116 132.2 125.6 126.4 133.5 130.7L223.4 178.6zM393.2 148.8L357.2 192L393.2 235.2C395 237.4 396 240.1 396 242.9C396 251.8 386.4 257.6 378.5 253.3L288.6 205.4C277.9 199.7 277.9 184.3 288.6 178.6L378.5 130.7C386.4 126.4 396 132.2 396 141.1C396 143.9 395 146.6 393.2 148.8V148.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-laugh\": [512, 512, [\"laugh\"], \"f599\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM304.4 192C304.4 174.3 318.7 160 336.4 160C354 160 368.4 174.3 368.4 192C368.4 209.7 354 224 336.4 224C318.7 224 304.4 209.7 304.4 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"folder-open\": [576, 512, [128194, 128449, 61717], \"f07c\", \"M572.6 270.3l-96 192C471.2 473.2 460.1 480 447.1 480H64c-35.35 0-64-28.66-64-64V96c0-35.34 28.65-64 64-64h117.5c16.97 0 33.25 6.742 45.26 18.75L275.9 96H416c35.35 0 64 28.66 64 64v32h-48V160c0-8.824-7.178-16-16-16H256L192.8 84.69C189.8 81.66 185.8 80 181.5 80H64C55.18 80 48 87.18 48 96v288l71.16-142.3C124.6 230.8 135.7 224 147.8 224h396.2C567.7 224 583.2 249 572.6 270.3z\"],\n    \"clipboard\": [384, 512, [128203], \"f328\", \"M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n    \"chess-queen\": [512, 512, [9819], \"f445\", \"M256 112c30.88 0 56-25.12 56-56S286.9 0 256 0S199.1 25.12 199.1 56S225.1 112 256 112zM511.1 197.4c0-5.178-2.509-10.2-7.096-13.26L476.4 168.2c-2.5-1.75-5.497-2.62-8.497-2.62c-5.501 .125-10.63 2.87-13.75 7.245c-9.001 12-23.16 19.13-38.16 19.13c-3.125 0-6.089-.2528-9.089-.8778c-23.13-4.25-38.88-26.25-38.88-49.75C367.1 134 361.1 128 354.6 128h-38.75c-6.001 0-11.63 4-12.88 9.875C298.2 160.1 278.7 176 255.1 176c-22.75 0-42.25-15.88-47-38.12C207.7 132 202.2 128 196.1 128h-38.75C149.1 128 143.1 134 143.1 141.4c0 18.49-13.66 50.62-47.95 50.62c-15.13 0-29.3-7.118-38.3-19.24C54.6 168.4 49.66 165.7 44.15 165.6c-3 0-5.931 .8951-8.432 2.645l-28.63 16C2.509 187.2 0 192.3 0 197.4c0 2.438 .5583 4.901 1.72 7.185L109.9 432h53.13L69.85 236.4C78.35 238.8 87.11 240 95.98 240c2.432 0 56.83 1.503 84.76-52.5C198.1 210.5 226.6 224 255.9 224c29.38 0 57.01-13.38 75.26-36.25C336.1 197.6 360.6 240 416 240c8.751 0 17.5-1.125 26-3.5L349 432h53.13l108.1-227.4C511.4 202.3 511.1 199.8 511.1 197.4zM424 464H87.98c-13.26 0-24 10.75-24 23.1S74.72 512 87.98 512h336c13.26 0 24-10.75 24-23.1S437.3 464 424 464z\"],\n    \"hand-back-fist\": [448, 512, [\"hand-rock\"], \"f255\", \"M377.1 68.05C364.4 50.65 343.7 40 321.2 40h-13.53c-3.518 0-7.039 .2754-10.53 .8184C284.8 31.33 269.6 26 253.5 26H240c-3.977 0-7.904 .3691-11.75 1.084C216.7 10.71 197.6 0 176 0H160C124.7 0 96 28.65 96 64v49.71L63.04 143.3C43.3 160 32 184.6 32 210.9v78.97c0 32.1 17.11 61.65 44.65 77.12L112 386.9v101.1C112 501.3 122.7 512 135.1 512S160 501.3 160 488v-129.9c-1.316-.6543-2.775-.9199-4.062-1.639l-55.78-31.34C87.72 318.2 80 304.6 80 289.9V210.9c0-12.31 5.281-23.77 14.5-31.39L112 163.8V208C112 216.8 119.2 224 128 224s16-7.156 16-16V64c0-8.828 7.188-16 16-16h16C184.8 48 192 55.17 192 64v16c0 9.578 7.942 16.04 16.15 16.04c6.432 0 12.31-4.018 14.73-10.17C223.3 84.84 228.3 74 240 74h13.53c20.97 0 17.92 19.58 34.27 19.58c8.177 0 9.9-5.584 19.88-5.584h13.53c25.54 0 18.27 28.23 38.66 28.23c.1562 0 .3125-.002 .4668-.0078L375.4 116C388.1 116 400 127.7 400 142V272c0 36.15-19.54 67.32-48 83.69v132.3C352 501.3 362.7 512 375.1 512S400 501.3 400 488v-108.1C430.1 352.8 448 313.6 448 272V142C448 102.1 416.8 69.44 377.1 68.05z\"],\n    \"square-caret-up\": [448, 512, [\"caret-square-up\"], \"f151\", \"M241.6 175.7C237.1 170.8 230.7 168 224 168S210.9 170.8 206.4 175.7l-96 104c-6.469 7-8.188 17.19-4.375 25.91C109.8 314.3 118.5 320 127.1 320h192c9.531 0 18.16-5.656 22-14.38c3.813-8.719 2.094-18.91-4.375-25.91L241.6 175.7zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z\"],\n    \"chart-bar\": [512, 512, [\"bar-chart\"], \"f080\", \"M24 32C37.25 32 48 42.75 48 56V408C48 421.3 58.75 432 72 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H72C32.24 480 0 447.8 0 408V56C0 42.75 10.75 32 24 32zM128 136C128 122.7 138.7 112 152 112H360C373.3 112 384 122.7 384 136C384 149.3 373.3 160 360 160H152C138.7 160 128 149.3 128 136zM296 208C309.3 208 320 218.7 320 232C320 245.3 309.3 256 296 256H152C138.7 256 128 245.3 128 232C128 218.7 138.7 208 152 208H296zM424 304C437.3 304 448 314.7 448 328C448 341.3 437.3 352 424 352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H424z\"],\n    \"window-restore\": [512, 512, [], \"f2d2\", \"M432 48H208C190.3 48 176 62.33 176 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V336H432C449.7 336 464 321.7 464 304V80C464 62.33 449.7 48 432 48zM320 128C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192C0 156.7 28.65 128 64 128H320zM64 464H320C328.8 464 336 456.8 336 448V256H48V448C48 456.8 55.16 464 64 464z\"],\n    \"square-plus\": [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M200 344V280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H200V168C200 154.7 210.7 144 224 144C237.3 144 248 154.7 248 168V232H312C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H248V344C248 357.3 237.3 368 224 368C210.7 368 200 357.3 200 344zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"],\n    \"image\": [512, 512, [], \"f03e\", \"M152 120c-26.51 0-48 21.49-48 48s21.49 48 48 48s48-21.49 48-48S178.5 120 152 120zM447.1 32h-384C28.65 32-.0091 60.65-.0091 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96C511.1 60.65 483.3 32 447.1 32zM463.1 409.3l-136.8-185.9C323.8 218.8 318.1 216 312 216c-6.113 0-11.82 2.768-15.21 7.379l-106.6 144.1l-37.09-46.1c-3.441-4.279-8.934-6.809-14.77-6.809c-5.842 0-11.33 2.529-14.78 6.809l-75.52 93.81c0-.0293 0 .0293 0 0L47.99 96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V409.3z\"],\n    \"folder-closed\": [512, 512, [], \"e185\", \"M448 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C512 124.7 483.3 96 448 96zM64 80h117.5c4.273 0 8.293 1.664 11.31 4.688L256 144h192c8.822 0 16 7.176 16 16v32h-416V96C48 87.18 55.18 80 64 80zM448 432H64c-8.822 0-16-7.176-16-16V240h416V416C464 424.8 456.8 432 448 432z\"],\n    \"lemon\": [448, 512, [127819], \"f094\", \"M439.9 144.6c15.34-26.38 8.372-62.41-16.96-87.62c-25.21-25.32-61.22-32.26-87.61-16.95c-9.044 5.218-27.15 3.702-48.08 1.968c-50.78-4.327-127.4-10.73-207.6 69.56C-.6501 191.9 5.801 268.5 10.07 319.3c1.749 20.96 3.28 39.07-1.984 48.08c-15.35 26.4-8.357 62.45 16.92 87.57c16.26 16.37 37.05 25.09 56.83 25.09c10.89 0 21.46-2.64 30.83-8.092c9.013-5.249 27.12-3.718 48.08-1.968c50.69 4.233 127.4 10.7 207.6-69.56c80.27-80.28 73.82-156.9 69.56-207.7C436.2 171.8 434.7 153.7 439.9 144.6zM398.4 120.5c-12.87 22.09-10.67 48.41-8.326 76.25c4.155 49.3 8.841 105.2-55.67 169.7c-64.53 64.49-120.5 59.78-169.7 55.68c-27.85-2.328-54.12-4.53-76.26 8.311c-6.139 3.64-19.17 1.031-29.58-9.451c-10.39-10.33-12.95-23.35-9.372-29.49c12.87-22.09 10.67-48.41 8.326-76.25C53.72 265.1 49.04 210.1 113.5 145.5c48.27-48.27 91.71-57.8 131.2-57.8c13.28 0 26.12 1.078 38.52 2.125c27.9 2.359 54.17 4.561 76.26-8.311c6.123-3.577 19.18-1.031 29.49 9.357C399.4 101.2 402 114.4 398.4 120.5zM239.5 124.1c2.156 8.561-3.062 17.25-11.62 19.43C183.6 154.7 122.7 215.6 111.6 259.9C109.7 267.1 103.2 271.1 96.05 271.1c-1.281 0-2.593-.1562-3.905-.4687C83.58 269.3 78.4 260.6 80.52 252.1C94.67 195.8 163.8 126.7 220.1 112.5C228.8 110.4 237.3 115.5 239.5 124.1z\"],\n    \"handshake\": [640, 512, [], \"f2b5\", \"M506.1 127.1c-17.97-20.17-61.46-61.65-122.7-71.1c-22.5-3.354-45.39 3.606-63.41 18.21C302 60.47 279.1 53.42 256.5 56.86C176.8 69.17 126.7 136.2 124.6 139.1c-7.844 10.69-5.531 25.72 5.125 33.57c4.281 3.157 9.281 4.657 14.19 4.657c7.406 0 14.69-3.375 19.38-9.782c.4062-.5626 40.19-53.91 100.5-63.23c7.457-.9611 14.98 .67 21.56 4.483L227.2 168.2C214.8 180.5 207.1 196.1 207.1 214.5c0 17.5 6.812 33.94 19.16 46.29C239.5 273.2 255.9 279.1 273.4 279.1s33.94-6.813 46.31-19.19l11.35-11.35l124.2 100.9c2.312 1.875 2.656 5.251 .5 7.97l-27.69 35.75c-1.844 2.25-5.25 2.594-7.156 1.063l-22.22-18.69l-26.19 27.75c-2.344 2.875-5.344 3.563-6.906 3.719c-1.656 .1562-4.562 .125-6.812-1.719l-32.41-27.66L310.7 392.3l-2.812 2.938c-5.844 7.157-14.09 11.66-23.28 12.6c-9.469 .8126-18.25-1.75-24.5-6.782L170.3 319.8H96V128.3L0 128.3v255.6l64 .0404c11.74 0 21.57-6.706 27.14-16.14h60.64l77.06 69.66C243.7 449.6 261.9 456 280.8 456c2.875 0 5.781-.125 8.656-.4376c13.62-1.406 26.41-6.063 37.47-13.5l.9062 .8126c12.03 9.876 27.28 14.41 42.69 12.78c13.19-1.375 25.28-7.032 33.91-15.35c21.09 8.188 46.09 2.344 61.25-16.47l27.69-35.75c18.47-22.82 14.97-56.48-7.844-75.01l-120.3-97.76l8.381-8.382c9.375-9.376 9.375-24.57 0-33.94c-9.375-9.376-24.56-9.376-33.94 0L285.8 226.8C279.2 233.5 267.7 233.5 261.1 226.8c-3.312-3.282-5.125-7.657-5.125-12.31c0-4.688 1.812-9.064 5.281-12.53l85.91-87.64c7.812-7.845 18.53-11.75 28.94-10.03c59.75 9.22 100.2 62.73 100.6 63.29c3.088 4.155 7.264 6.946 11.84 8.376H544v175.1c0 17.67 14.33 32.05 31.1 32.05L640 384V128.1L506.1 127.1zM48 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99S64 327.2 64 336.1C64 344.8 56.75 352 48 352zM592 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99s16 7.117 16 15.99C608 344.8 600.8 352 592 352z\"],\n    \"gem\": [512, 512, [128142], \"f3a5\", \"M168.5 72L256 165l87.5-93h-175zM383.9 99.1L311.5 176h129L383.9 99.1zm50 124.9H256 78.1L256 420.3 433.9 224zM71.5 176h129L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"],\n    \"circle-play\": [512, 512, [61469, \"play-circle\"], \"f144\", \"M188.3 147.1C195.8 142.8 205.1 142.1 212.5 147.5L356.5 235.5C363.6 239.9 368 247.6 368 256C368 264.4 363.6 272.1 356.5 276.5L212.5 364.5C205.1 369 195.8 369.2 188.3 364.9C180.7 360.7 176 352.7 176 344V167.1C176 159.3 180.7 151.3 188.3 147.1V147.1zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"circle-check\": [512, 512, [61533, \"check-circle\"], \"f058\", \"M243.8 339.8C232.9 350.7 215.1 350.7 204.2 339.8L140.2 275.8C129.3 264.9 129.3 247.1 140.2 236.2C151.1 225.3 168.9 225.3 179.8 236.2L224 280.4L332.2 172.2C343.1 161.3 360.9 161.3 371.8 172.2C382.7 183.1 382.7 200.9 371.8 211.8L243.8 339.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"circle-stop\": [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M328 160h-144C170.8 160 160 170.8 160 184v144C160 341.2 170.8 352 184 352h144c13.2 0 24-10.8 24-24v-144C352 170.8 341.2 160 328 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"],\n    \"id-badge\": [384, 512, [], \"f2c1\", \"M320 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h256c35.35 0 64-28.65 64-64V64C384 28.65 355.3 0 320 0zM336 448c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h64V64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V48h64c8.836 0 16 7.162 16 16V448zM192 288c35.35 0 64-28.65 64-64s-28.65-64-64-64C156.7 160 128 188.7 128 224S156.7 288 192 288zM224 320H160c-44.18 0-80 35.82-80 80C80 408.8 87.16 416 96 416h192c8.836 0 16-7.164 16-16C304 355.8 268.2 320 224 320z\"],\n    \"face-laugh-beam\": [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"registered\": [512, 512, [174], \"f25d\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM352 208c0-44.13-35.88-80-80-80L184 128c-13.25 0-24 10.75-24 24v208c0 13.25 10.75 24 24 24s24-10.75 24-24v-72h59.79l38.46 82.19C310.3 378.9 319 384 328 384c3.438 0 6.875-.7187 10.19-2.25c12-5.625 17.16-19.91 11.56-31.94l-34.87-74.5C337.1 261.1 352 236.3 352 208zM272 240h-64v-64h64c17.66 0 32 14.34 32 32S289.7 240 272 240z\"],\n    \"address-card\": [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M208 256c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 227.3 172.7 256 208 256zM464 232h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 232 464 232zM240 288h-64C131.8 288 96 323.8 96 368C96 376.8 103.2 384 112 384h192c8.836 0 16-7.164 16-16C320 323.8 284.2 288 240 288zM464 152h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 152 464 152zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416z\"],\n    \"face-tired\": [512, 512, [128555, \"tired\"], \"f5c8\", \"M176.5 320.3C196.1 302.1 223.8 288 256 288C288.2 288 315.9 302.1 335.5 320.3C354.5 338.1 368 362 368 384C368 389.4 365.3 394.4 360.8 397.4C356.2 400.3 350.5 400.8 345.6 398.7L328.4 391.1C305.6 381.2 280.9 376 256 376C231.1 376 206.4 381.2 183.6 391.1L166.4 398.7C161.5 400.8 155.8 400.3 151.2 397.4C146.7 394.4 144 389.4 144 384C144 362 157.5 338.1 176.5 320.3zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"font-awesome\": [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.09 22.54-82.34 32-119.5 32c-62.82 0-86.6-32-149.3-32c-21.69 0-38.48 3.791-53.74 8.766C110.1 397.5 96 386.1 96 371.7v-.7461c0-9.275 5.734-17.6 14.42-20.86C129.1 342.8 150.2 336 179.2 336c62.73 0 86.51 32 149.3 32c25.5 0 42.85-4.604 71.47-14.7v-240C379.2 120.6 357.7 128 328.5 128c-.0039 0 .0039 0 0 0c-62.81 0-86.61-32-149.3-32C122.1 96 98.8 122.1 48 126.1V456C48 469.3 37.25 480 24 480S0 469.3 0 456V56C0 42.74 10.75 32 24 32S48 42.74 48 56v22.99C98.8 74.14 122.1 48 179.2 48c62.77 0 86.45 32 149.3 32C366.1 80 386.8 69.85 448 48z\"],\n    \"face-smile-wink\": [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"file-word\": [384, 512, [], \"f1c2\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM214.6 248C211.3 238.4 202.2 232 192 232s-19.25 6.406-22.62 16L144.7 318.1l-25.89-77.66C114.6 227.8 101 221.2 88.41 225.2C75.83 229.4 69.05 243 73.23 255.6l48 144C124.5 409.3 133.5 415.9 143.8 416c10.17 0 19.45-6.406 22.83-16L192 328.1L217.4 400C220.8 409.6 229.8 416 240 416c10.27-.0938 19.53-6.688 22.77-16.41l48-144c4.188-12.59-2.594-26.16-15.17-30.38c-12.61-4.125-26.2 2.594-30.36 15.19l-25.89 77.66L214.6 248z\"],\n    \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM200 224H128C119.2 224 112 231.2 112 240v168c0 13.25 10.75 24 24 24S160 421.3 160 408v-32h44c44.21 0 79.73-37.95 75.69-82.98C276.1 253.2 240 224 200 224zM204 328H160V272h44c15.44 0 28 12.56 28 28S219.4 328 204 328z\"],\n    \"envelope-open\": [512, 512, [62135], \"f2b6\", \"M493.6 163c-24.88-19.62-45.5-35.37-164.3-121.6C312.7 29.21 279.7 0 256.4 0H255.6C232.3 0 199.3 29.21 182.6 41.38C63.88 127.6 43.25 143.4 18.38 163C6.75 172 0 186 0 200.8v247.2C0 483.3 28.65 512 64 512h384c35.35 0 64-28.67 64-64.01V200.8C512 186 505.3 172 493.6 163zM464 448c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V276.7l136.1 113.4C204.3 406.8 229.8 416 256 416s51.75-9.211 71.97-26.01L464 276.7V448zM464 214.2l-166.8 138.1c-23.19 19.28-59.34 19.27-82.47 .0156L48 214.2l.1055-13.48c23.24-18.33 42.25-32.97 162.9-120.6c3.082-2.254 6.674-5.027 10.63-8.094C229.4 65.99 246.7 52.59 256 48.62c9.312 3.973 26.62 17.37 34.41 23.41c3.959 3.066 7.553 5.84 10.76 8.186C421.6 167.7 440.7 182.4 464 200.8V214.2z\"],\n    \"file-zipper\": [384, 512, [\"file-archive\"], \"f1c6\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h48V64h64V48.13h48.01L224 128c0 17.67 14.33 32 32 32h79.1V448zM176 96h-64v32h64V96zM176 160h-64v32h64V160zM176 224h-64l-30.56 116.5C73.51 379.5 103.7 416 144.3 416c40.26 0 70.45-36.3 62.68-75.15L176 224zM160 368H128c-8.836 0-16-7.164-16-16s7.164-16 16-16h32c8.836 0 16 7.164 16 16S168.8 368 160 368z\"],\n    \"square\": [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM384 80H64C55.16 80 48 87.16 48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80z\"],\n    \"snowflake\": [512, 512, [10052, 10054], \"f2dc\", \"M484.4 294.4c1.715 6.402 .6758 12.89-2.395 18.21s-8.172 9.463-14.57 11.18l-31.46 8.43l32.96 19.03C480.4 357.8 484.4 372.5 477.8 384s-21.38 15.41-32.86 8.783l-32.96-19.03l8.43 31.46c3.432 12.81-4.162 25.96-16.97 29.39s-25.96-4.162-29.39-16.97l-20.85-77.82L280 297.6v84.49l56.97 56.97c9.375 9.375 9.375 24.56 0 33.94C332.3 477.7 326.1 480 320 480s-12.28-2.344-16.97-7.031L280 449.9V488c0 13.25-10.75 24-24 24s-24-10.75-24-24v-38.06l-23.03 23.03c-9.375 9.375-24.56 9.375-33.94 0s-9.375-24.56 0-33.94L232 382.1V297.6l-73.17 42.25l-20.85 77.82c-3.432 12.81-16.58 20.4-29.39 16.97s-20.4-16.58-16.97-29.39l8.43-31.46l-32.96 19.03C55.61 399.4 40.85 395.5 34.22 384s-2.615-26.16 8.859-32.79l32.96-19.03l-31.46-8.43c-12.81-3.432-20.4-16.58-16.97-29.39s16.58-20.4 29.39-16.97l77.82 20.85L208 255.1L134.8 213.8L57.01 234.6C44.2 238 31.05 230.4 27.62 217.6s4.162-25.96 16.97-29.39l31.46-8.432L43.08 160.8C31.61 154.2 27.6 139.5 34.22 128s21.38-15.41 32.86-8.785l32.96 19.03L91.62 106.8C88.18 93.98 95.78 80.83 108.6 77.39s25.96 4.162 29.39 16.97l20.85 77.82L232 214.4V129.9L175 72.97c-9.375-9.375-9.375-24.56 0-33.94s24.56-9.375 33.94 0L232 62.06V24C232 10.75 242.8 0 256 0s24 10.75 24 24v38.06l23.03-23.03c9.375-9.375 24.56-9.375 33.94 0s9.375 24.56 0 33.94L280 129.9v84.49l73.17-42.25l20.85-77.82c3.432-12.81 16.58-20.4 29.39-16.97c6.402 1.715 11.5 5.861 14.57 11.18s4.109 11.81 2.395 18.21l-8.43 31.46l32.96-19.03C456.4 112.6 471.2 116.5 477.8 128s2.615 26.16-8.859 32.78l-32.96 19.03l31.46 8.432c12.81 3.432 20.4 16.58 16.97 29.39s-16.58 20.4-29.39 16.97l-77.82-20.85L304 255.1l73.17 42.25l77.82-20.85C467.8 273.1 480.1 281.6 484.4 294.4z\"],\n    \"newspaper\": [512, 512, [128240], \"f1ea\", \"M456 32h-304C121.1 32 96 57.13 96 88v320c0 13.22-10.77 24-24 24S48 421.2 48 408V112c0-13.25-10.75-24-24-24S0 98.75 0 112v296C0 447.7 32.3 480 72 480h352c48.53 0 88-39.47 88-88v-304C512 57.13 486.9 32 456 32zM464 392c0 22.06-17.94 40-40 40H139.9C142.5 424.5 144 416.4 144 408v-320c0-4.406 3.594-8 8-8h304c4.406 0 8 3.594 8 8V392zM264 272h-64C186.8 272 176 282.8 176 296S186.8 320 200 320h64C277.3 320 288 309.3 288 296S277.3 272 264 272zM408 272h-64C330.8 272 320 282.8 320 296S330.8 320 344 320h64c13.25 0 24-10.75 24-24S421.3 272 408 272zM264 352h-64c-13.25 0-24 10.75-24 24s10.75 24 24 24h64c13.25 0 24-10.75 24-24S277.3 352 264 352zM408 352h-64C330.8 352 320 362.8 320 376s10.75 24 24 24h64c13.25 0 24-10.75 24-24S421.3 352 408 352zM400 112h-192c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64C432 126.3 417.7 112 400 112z\"],\n    \"face-kiss-wink-heart\": [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M345.3 472.1C347.3 479.7 350.9 486.4 355.7 491.8C325.1 504.8 291.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 285.3 507.1 313.4 498 339.7C486.9 334.1 474.5 333.1 461.8 334.6C459.7 329.4 457 324.6 453.9 320.1C460.5 299.9 464 278.4 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C285.4 464 313.5 457.9 338.9 446.8L345.3 472.1zM288.7 334.3C284.4 339.5 278.5 344 271.9 347.7C269.2 349.3 266.3 350.7 263.2 352C266.3 353.3 269.2 354.7 271.9 356.3C278.5 359.1 284.4 364.5 288.7 369.7C292.9 374.8 296 381.1 296 388C296 394.9 292.9 401.2 288.7 406.3C284.4 411.5 278.5 416 271.9 419.7C258.7 427.1 241.4 432 224 432C220.4 432 217.2 429.5 216.3 426C215.3 422.5 216.9 418.8 220.1 417L220.1 417L220.3 416.9C220.5 416.8 220.8 416.6 221.2 416.3C222 415.9 223.2 415.1 224.6 414.2C227.4 412.4 231.2 409.7 234.8 406.6C238.6 403.5 242 400 244.5 396.6C246.1 393 248 390.2 248 388C248 385.8 246.1 382.1 244.5 379.4C242 375.1 238.6 372.5 234.8 369.4C231.2 366.3 227.4 363.6 224.6 361.8C223.2 360.9 222 360.1 221.2 359.7C220.8 359.4 220.5 359.2 220.3 359.1L220.1 358.1L220.1 358.1C217.6 357.6 216 354.9 216 352C216 349.1 217.6 346.4 220.1 345L220.1 345L220.3 344.9C220.5 344.8 220.8 344.6 221.2 344.3C222 343.9 223.2 343.1 224.6 342.2C227.4 340.4 231.2 337.7 234.8 334.6C238.6 331.5 242 328.1 244.5 324.6C246.1 321 248 318.2 248 316C248 313.8 246.1 310.1 244.5 307.4C242 303.1 238.6 300.5 234.8 297.4C231.2 294.3 227.4 291.6 224.6 289.8C223.2 288.9 222 288.1 221.2 287.7C220.8 287.4 220.5 287.2 220.3 287.1L220.1 286.1L220.1 286.1C216.9 285.2 215.3 281.5 216.3 277.1C217.2 274.5 220.4 272 224 272C241.4 272 258.7 276.9 271.9 284.3C278.5 287.1 284.4 292.5 288.7 297.7C292.9 302.8 296 309.1 296 316C296 322.9 292.9 329.2 288.7 334.3V334.3zM144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220zM439.4 373.3L459.5 367.6C481.7 361.4 504.6 375.2 510.6 398.4C516.5 421.7 503.3 445.6 481.1 451.8L396.1 475.6C387.5 478 378.6 472.9 376.3 464.2L353.4 374.9C347.5 351.6 360.7 327.7 382.9 321.5C405.2 315.3 428 329.1 433.1 352.3L439.4 373.3z\"],\n    \"star-half-stroke\": [576, 512, [\"star-half-alt\"], \"f5c0\", \"M378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8zM287.1 384.7C291.9 384.7 295.7 385.6 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.1 79.09L287.1 384.7z\"],\n    \"file-excel\": [384, 512, [], \"f1c3\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM229.1 233.3L192 280.9L154.9 233.3C146.8 222.8 131.8 220.9 121.3 229.1C110.8 237.2 108.9 252.3 117.1 262.8L161.6 320l-44.53 57.25c-8.156 10.47-6.25 25.56 4.188 33.69C125.7 414.3 130.8 416 135.1 416c7.156 0 14.25-3.188 18.97-9.25L192 359.1l37.06 47.65C233.8 412.8 240.9 416 248 416c5.125 0 10.31-1.656 14.72-5.062c10.44-8.125 12.34-23.22 4.188-33.69L222.4 320l44.53-57.25c8.156-10.47 6.25-25.56-4.188-33.69C252.2 220.9 237.2 222.8 229.1 233.3z\"],\n    \"face-grin-beam\": [512, 512, [128516, \"grin-beam\"], \"f582\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"object-ungroup\": [640, 512, [], \"f248\", \"M64 0C90.86 0 113.9 16.55 123.3 40H324.7C334.1 16.55 357.1 0 384 0C419.3 0 448 28.65 448 64C448 90.86 431.5 113.9 408 123.3V228.7C431.5 238.1 448 261.1 448 288C448 323.3 419.3 352 384 352C357.1 352 334.1 335.5 324.7 312H123.3C113.9 335.5 90.86 352 64 352C28.65 352 0 323.3 0 288C0 261.1 16.55 238.1 40 228.7V123.3C16.55 113.9 0 90.86 0 64C0 28.65 28.65 0 64 0V0zM64 80C72.84 80 80 72.84 80 64C80 56.1 74.28 49.54 66.75 48.24C65.86 48.08 64.94 48 64 48C55.16 48 48 55.16 48 64C48 64.07 48 64.14 48 64.21C48.01 65.07 48.09 65.92 48.24 66.75C49.54 74.28 56.1 80 64 80zM384 48C383.1 48 382.1 48.08 381.2 48.24C373.7 49.54 368 56.1 368 64C368 72.84 375.2 80 384 80C391.9 80 398.5 74.28 399.8 66.75C399.9 65.86 400 64.94 400 64C400 55.16 392.8 48 384 48V48zM324.7 88H123.3C116.9 104 104 116.9 88 123.3V228.7C104 235.1 116.9 247.1 123.3 264H324.7C331.1 247.1 343.1 235.1 360 228.7V123.3C343.1 116.9 331.1 104 324.7 88zM400 288C400 287.1 399.9 286.1 399.8 285.2C398.5 277.7 391.9 272 384 272C375.2 272 368 279.2 368 288C368 295.9 373.7 302.5 381.2 303.8C382.1 303.9 383.1 304 384 304C392.8 304 400 296.8 400 288zM64 272C56.1 272 49.54 277.7 48.24 285.2C48.08 286.1 48 287.1 48 288C48 296.8 55.16 304 64 304L64.22 303.1C65.08 303.1 65.93 303.9 66.75 303.8C74.28 302.5 80 295.9 80 288C80 279.2 72.84 272 64 272zM471.3 248C465.8 235.9 457.8 225.2 448 216.4V200H516.7C526.1 176.5 549.1 160 576 160C611.3 160 640 188.7 640 224C640 250.9 623.5 273.9 600 283.3V388.7C623.5 398.1 640 421.1 640 448C640 483.3 611.3 512 576 512C549.1 512 526.1 495.5 516.7 472H315.3C305.9 495.5 282.9 512 256 512C220.7 512 192 483.3 192 448C192 421.1 208.5 398.1 232 388.7V352H280V388.7C296 395.1 308.9 407.1 315.3 424H516.7C523.1 407.1 535.1 395.1 552 388.7V283.3C535.1 276.9 523.1 264 516.7 248H471.3zM592 224C592 215.2 584.8 208 576 208C575.1 208 574.1 208.1 573.2 208.2C565.7 209.5 560 216.1 560 224C560 232.8 567.2 240 576 240C583.9 240 590.5 234.3 591.8 226.8C591.9 225.9 592 224.9 592 224zM240 448C240 456.8 247.2 464 256 464C256.9 464 257.9 463.9 258.8 463.8C266.3 462.5 272 455.9 272 448C272 439.2 264.8 432 256 432C248.1 432 241.5 437.7 240.2 445.2C240.1 446.1 240 447.1 240 448zM573.2 463.8C574.1 463.9 575.1 464 576 464C584.8 464 592 456.8 592 448C592 447.1 591.9 446.2 591.8 445.3L591.8 445.2C590.5 437.7 583.9 432 576 432C567.2 432 560 439.2 560 448C560 455.9 565.7 462.5 573.2 463.8V463.8z\"],\n    \"circle-right\": [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M280.2 150.2C273.1 143.8 262.1 142.2 254.3 146.1S239.1 158.5 239.1 167.1l.002 56L152 224C138.8 224 128 234.8 128 248v16C128 277.3 138.8 288 152 288L240 287.1v56c0 9.531 5.656 18.16 14.38 22c8.75 3.812 18.91 2.094 25.91-4.375l96-88.75C381.2 268.3 384 261.9 384 255.2c-.3125-7.781-2.875-13.25-7.844-17.75L280.2 150.2zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"],\n    \"face-rolling-eyes\": [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M168 376C168 362.7 178.7 352 192 352H320C333.3 352 344 362.7 344 376C344 389.3 333.3 400 320 400H192C178.7 400 168 389.3 168 376zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 209.7 201.7 196.8 191.8 188C191.9 189.3 192 190.6 192 192C192 209.7 177.7 224 160 224C142.3 224 128 209.7 128 192C128 190.6 128.1 189.3 128.2 188C118.3 196.8 112 209.7 112 224C112 250.5 133.5 272 160 272V272zM272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224zM352 272C378.5 272 400 250.5 400 224C400 209.7 393.7 196.8 383.8 188C383.9 189.3 384 190.6 384 192C384 209.7 369.7 224 352 224C334.3 224 320 209.7 320 192C320 190.6 320.1 189.3 320.2 188C310.3 196.8 304 209.7 304 224C304 250.5 325.5 272 352 272zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"],\n    \"object-group\": [576, 512, [], \"f247\", \"M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM48 115.8C38.18 106.1 32 94.22 32 80C32 53.49 53.49 32 80 32C94.22 32 106.1 38.18 115.8 48H460.2C469 38.18 481.8 32 496 32C522.5 32 544 53.49 544 80C544 94.22 537.8 106.1 528 115.8V396.2C537.8 405 544 417.8 544 432C544 458.5 522.5 480 496 480C481.8 480 469 473.8 460.2 464H115.8C106.1 473.8 94.22 480 80 480C53.49 480 32 458.5 32 432C32 417.8 38.18 405 48 396.2V115.8zM96 125.3V386.7C109.6 391.6 120.4 402.4 125.3 416H450.7C455.6 402.4 466.4 391.6 480 386.7V125.3C466.4 120.4 455.6 109.6 450.7 96H125.3C120.4 109.6 109.6 120.4 96 125.3z\"],\n    \"heart\": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M244 84L255.1 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 0 232.4 0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84C243.1 84 244 84.01 244 84L244 84zM255.1 163.9L210.1 117.1C188.4 96.28 157.6 86.4 127.3 91.44C81.55 99.07 48 138.7 48 185.1V190.9C48 219.1 59.71 246.1 80.34 265.3L256 429.3L431.7 265.3C452.3 246.1 464 219.1 464 190.9V185.1C464 138.7 430.4 99.07 384.7 91.44C354.4 86.4 323.6 96.28 301.9 117.1L255.1 163.9z\"],\n    \"face-surprise\": [512, 512, [128558, \"surprise\"], \"f5c2\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"circle-pause\": [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M200 160C186.8 160 176 170.8 176 184v144C176 341.3 186.8 352 200 352S224 341.3 224 328v-144C224 170.8 213.3 160 200 160zM312 160C298.8 160 288 170.8 288 184v144c0 13.25 10.75 24 24 24s24-10.75 24-24v-144C336 170.8 325.3 160 312 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"],\n    \"circle\": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"circle-up\": [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M272.9 135.7C268.3 130.8 261.9 128 255.2 128C247.5 128.3 241.1 130.9 237.5 135.8l-87.25 96C143.8 238.9 142.2 249 146.1 257.7C149.9 266.4 158.5 272 167.1 272h56L224 360c0 13.25 10.75 24 24 24h16c13.25 0 23.1-10.75 23.1-24L287.1 272h56c9.531 0 18.16-5.656 22-14.38c3.811-8.75 2.092-18.91-4.377-25.91L272.9 135.7zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"],\n    \"file-audio\": [384, 512, [], \"f1c7\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM171.5 259.5L136 296H92C85.38 296 80 301.4 80 308v56C80 370.7 85.38 376 92 376H136l35.5 36.5C179.1 420 192 414.8 192 404v-136C192 257.3 179.1 251.9 171.5 259.5zM235.1 260.7c-6.25 6.25-6.25 16.38 0 22.62C235.3 283.5 256 305.1 256 336c0 30.94-20.77 52.53-20.91 52.69c-6.25 6.25-6.25 16.38 0 22.62C238.2 414.4 242.3 416 246.4 416s8.188-1.562 11.31-4.688C258.1 410.1 288 380.5 288 336s-29.05-74.06-30.28-75.31C251.5 254.4 241.3 254.4 235.1 260.7z\"],\n    \"file-image\": [384, 512, [128443], \"f1c5\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM215.3 292c-4.68 0-9.051 2.34-11.65 6.234L164 357.8l-11.68-17.53C149.7 336.3 145.3 334 140.7 334c-4.682 0-9.053 2.34-11.65 6.234l-46.67 70c-2.865 4.297-3.131 9.82-.6953 14.37C84.09 429.2 88.84 432 93.1 432h196c5.163 0 9.907-2.844 12.34-7.395c2.436-4.551 2.17-10.07-.6953-14.37l-74.67-112C224.4 294.3 220 292 215.3 292zM128 288c17.67 0 32-14.33 32-32S145.7 224 128 224S96 238.3 96 256S110.3 288 128 288z\"],\n    \"circle-question\": [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 336c-18 0-32 14-32 32s13.1 32 32 32c17.1 0 32-14 32-32S273.1 336 256 336zM289.1 128h-51.1C199 128 168 159 168 198c0 13 11 24 24 24s24-11 24-24C216 186 225.1 176 237.1 176h51.1C301.1 176 312 186 312 198c0 8-4 14.1-11 18.1L244 251C236 256 232 264 232 272V288c0 13 11 24 24 24S280 301 280 288V286l45.1-28c21-13 34-36 34-60C360 159 329 128 289.1 128z\"],\n    \"face-meh-blank\": [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"eye\": [576, 512, [128065], \"f06e\", \"M160 256C160 185.3 217.3 128 288 128C358.7 128 416 185.3 416 256C416 326.7 358.7 384 288 384C217.3 384 160 326.7 160 256zM288 336C332.2 336 368 300.2 368 256C368 211.8 332.2 176 288 176C287.3 176 286.7 176 285.1 176C287.3 181.1 288 186.5 288 192C288 227.3 259.3 256 224 256C218.5 256 213.1 255.3 208 253.1C208 254.7 208 255.3 208 255.1C208 300.2 243.8 336 288 336L288 336zM95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6V112.6zM288 80C222.8 80 169.2 109.6 128.1 147.7C89.6 183.5 63.02 225.1 49.44 256C63.02 286 89.6 328.5 128.1 364.3C169.2 402.4 222.8 432 288 432C353.2 432 406.8 402.4 447.9 364.3C486.4 328.5 512.1 286 526.6 256C512.1 225.1 486.4 183.5 447.9 147.7C406.8 109.6 353.2 80 288 80V80z\"],\n    \"face-sad-cry\": [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.1 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM297.9 230.6C289.9 223 289.5 210.4 297 202.3C311.6 186.8 332.3 180 351.6 180C370.1 180 391.7 186.8 406.2 202.3C413.8 210.4 413.4 223 405.3 230.6C397.2 238.1 384.6 237.7 377 229.7C371.6 223.8 362.3 220 351.6 220C340.1 220 331.7 223.8 326.2 229.7C318.7 237.7 306 238.1 297.9 230.6zM208 320C208 293.5 229.5 272 256 272C282.5 272 304 293.5 304 320V352C304 378.5 282.5 400 256 400C229.5 400 208 378.5 208 352V320zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM400 406.1C439.4 368.2 464 314.1 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 314.1 72.55 368.2 112 406.1V288C112 274.7 122.7 264 136 264C149.3 264 160 274.7 160 288V440.6C188.7 455.5 221.4 464 256 464C290.6 464 323.3 455.5 352 440.6V288C352 274.7 362.7 264 376 264C389.3 264 400 274.7 400 288V406.1z\"],\n    \"file-code\": [384, 512, [], \"f1c9\", \"M162.1 257.8c-7.812-7.812-20.47-7.812-28.28 0l-48 48c-7.812 7.812-7.812 20.5 0 28.31l48 48C137.8 386.1 142.9 388 148 388s10.23-1.938 14.14-5.844c7.812-7.812 7.812-20.5 0-28.31L128.3 320l33.86-33.84C169.1 278.3 169.1 265.7 162.1 257.8zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM221.9 257.8c-7.812 7.812-7.812 20.5 0 28.31L255.7 320l-33.86 33.84c-7.812 7.812-7.812 20.5 0 28.31C225.8 386.1 230.9 388 236 388s10.23-1.938 14.14-5.844l48-48c7.812-7.812 7.812-20.5 0-28.31l-48-48C242.3 250 229.7 250 221.9 257.8z\"],\n    \"window-maximize\": [512, 512, [128470], \"f2d0\", \"M7.724 65.49C13.36 55.11 21.79 46.47 32 40.56C39.63 36.15 48.25 33.26 57.46 32.33C59.61 32.11 61.79 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 93.79 .112 91.61 .3306 89.46C1.204 80.85 3.784 72.75 7.724 65.49V65.49zM48 416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V224H48V416z\"],\n    \"face-frown\": [512, 512, [9785, \"frown\"], \"f119\", \"M143.9 398.6C131.4 394.1 124.9 380.3 129.4 367.9C146.9 319.4 198.9 288 256 288C313.1 288 365.1 319.4 382.6 367.9C387.1 380.3 380.6 394.1 368.1 398.6C355.7 403.1 341.9 396.6 337.4 384.1C328.2 358.5 297.2 336 256 336C214.8 336 183.8 358.5 174.6 384.1C170.1 396.6 156.3 403.1 143.9 398.6V398.6zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"floppy-disk\": [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M224 256c-35.2 0-64 28.8-64 64c0 35.2 28.8 64 64 64c35.2 0 64-28.8 64-64C288 284.8 259.2 256 224 256zM433.1 129.1l-83.9-83.9C341.1 37.06 328.8 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 151.2 442.9 138.9 433.1 129.1zM128 80h144V160H128V80zM400 416c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V96c0-8.838 7.164-16 16-16h16v104c0 13.25 10.75 24 24 24h192C309.3 208 320 197.3 320 184V83.88l78.25 78.25C399.4 163.2 400 164.8 400 166.3V416z\"],\n    \"comment-dots\": [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M144 208C126.3 208 112 222.2 112 239.1C112 257.7 126.3 272 144 272s31.1-14.25 31.1-32S161.8 208 144 208zM256 207.1c-17.75 0-31.1 14.25-31.1 32s14.25 31.1 31.1 31.1s31.1-14.25 31.1-31.1S273.8 207.1 256 207.1zM368 208c-17.75 0-31.1 14.25-31.1 32s14.25 32 31.1 32c17.75 0 31.99-14.25 31.99-32C400 222.2 385.8 208 368 208zM256 31.1c-141.4 0-255.1 93.12-255.1 208c0 47.62 19.91 91.25 52.91 126.3c-14.87 39.5-45.87 72.88-46.37 73.25c-6.624 7-8.373 17.25-4.624 26C5.818 474.2 14.38 480 24 480c61.49 0 109.1-25.75 139.1-46.25c28.87 9 60.16 14.25 92.9 14.25c141.4 0 255.1-93.13 255.1-207.1S397.4 31.1 256 31.1zM256 400c-26.75 0-53.12-4.125-78.36-12.12l-22.75-7.125L135.4 394.5c-14.25 10.12-33.87 21.38-57.49 29c7.374-12.12 14.37-25.75 19.87-40.25l10.62-28l-20.62-21.87C69.81 314.1 48.06 282.2 48.06 240c0-88.25 93.24-160 207.1-160s207.1 71.75 207.1 160S370.8 400 256 400z\"],\n    \"face-grin-squint\": [512, 512, [128518, \"grin-squint\"], \"f585\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"hand-pointer\": [448, 512, [], \"f25a\", \"M208 288C199.2 288 192 295.2 192 304v96C192 408.8 199.2 416 208 416s16-7.164 16-16v-96C224 295.2 216.8 288 208 288zM272 288C263.2 288 256 295.2 256 304v96c0 8.836 7.162 16 15.1 16S288 408.8 288 400l-.0013-96C287.1 295.2 280.8 288 272 288zM376.9 201.2c-13.74-17.12-34.8-27.45-56.92-27.45h-13.72c-3.713 0-7.412 .291-11.07 .8652C282.7 165.1 267.4 160 251.4 160h-11.44V72c0-39.7-32.31-72-72.01-72c-39.7 0-71.98 32.3-71.98 72v168.5C84.85 235.1 75.19 235.4 69.83 235.4c-44.35 0-69.83 37.23-69.83 69.85c0 14.99 4.821 29.51 13.99 41.69l78.14 104.2C120.7 489.3 166.2 512 213.7 512h109.7c6.309 0 12.83-.957 18.14-2.645c28.59-5.447 53.87-19.41 73.17-40.44C436.1 446.3 448 416.2 448 384.2V274.3C448 234.6 416.3 202.3 376.9 201.2zM400 384.2c0 19.62-7.219 38.06-20.44 52.06c-12.53 13.66-29.03 22.67-49.69 26.56C327.4 463.6 325.3 464 323.4 464H213.7c-32.56 0-63.65-15.55-83.18-41.59L52.36 318.2C49.52 314.4 48.02 309.8 48.02 305.2c0-16.32 14.5-21.75 21.72-21.75c4.454 0 12.01 1.55 17.34 8.703l28.12 37.5c3.093 4.105 7.865 6.419 12.8 6.419c11.94 0 16.01-10.7 16.01-16.01V72c0-13.23 10.78-24 23.1-24c13.22 0 24 10.77 24 24v130.7c0 6.938 5.451 16.01 16.03 16.01C219.5 218.7 220.1 208 237.7 208h13.72c21.5 0 18.56 19.21 34.7 19.21c8.063 0 9.805-5.487 20.15-5.487h13.72c26.96 0 17.37 27.43 40.77 27.43l14.07-.0037c13.88 0 25.16 11.28 25.16 25.14V384.2zM336 288C327.2 288 320 295.2 320 304v96c0 8.836 7.164 16 16 16s16-7.164 16-16v-96C352 295.2 344.8 288 336 288z\"],\n    \"hand-scissors\": [512, 512, [], \"f257\", \"M270.1 480h97.92C447.4 480 512 417.1 512 339.7V231.8c0-23.45-6.106-46.73-17.66-67.33l-31.35-55.85C447.5 81.1 417.1 64 385.9 64h-46.97c-26.63 0-51.56 11.63-68.4 31.93l-15.46 18.71L127.3 68.44C119 65.46 110.5 64.05 102.1 64.05c-30.02 0-58.37 18.06-69.41 47.09C15.06 156.8 46.19 194 76.75 204.9l2.146 .7637L68.79 206.4C30.21 209 0 241.2 0 279.3c0 39.7 33.27 72.09 73.92 72.09c1.745 0 3.501-.0605 5.268-.1833l88.79-6.135v8.141c0 22.11 10.55 43.11 28.05 56.74C197.4 448.8 230.2 480 270.1 480zM269.1 432c-14.34 0-26-11.03-26-24.62c0 0 .0403-14.31 .0403-14.71c0-6.894-4.102-14.2-10.67-16.39c-10.39-3.5-17.38-12.78-17.38-23.06v-13.53c0-16.98 13.7-16.4 13.7-29.89c0-9.083-7.392-15.96-15.96-15.96c-.3646 0-.7311 .0125-1.099 .0377c0 0-138.1 9.505-138.7 9.505c-14.32 0-25.93-11.04-25.93-24.49c0-13.28 10.7-23.74 24.1-24.64l163.2-11.28c2.674-.1882 14.92-2.907 14.92-16.18c0-6.675-4.284-12.58-10.65-14.85L92.84 159.7C85.39 156.1 75.97 149.4 75.97 136.7c0-11.14 9.249-24.66 25.97-24.66c3.043 0 6.141 .5115 9.166 1.59l234.1 85.03c1.801 .6581 3.644 .9701 5.456 .9701c8.96 0 16-7.376 16-15.1c0-6.514-4.068-12.69-10.59-15.04l-64.81-23.47l15.34-18.56C315.2 117.3 326.6 112 338.9 112h46.97c14.77 0 28.28 7.719 35.27 20.16L452.5 188c7.531 13.41 11.52 28.56 11.52 43.81v107.9c0 50.91-43.06 92.31-96 92.31H269.1z\"],\n    \"face-grin-tears\": [640, 512, [128514, \"grin-tears\"], \"f588\", \"M519.4 334.4C522.7 342.5 527.8 352.1 535.9 361.1C539.9 365 544.1 368.4 548.6 371.4C506.4 454.8 419.9 512 319.1 512C220.1 512 133.6 454.8 91.4 371.4C95.87 368.4 100.1 365 104.1 361.1C112.2 352.1 117.3 342.5 120.6 334.4C121.8 331.5 122.9 328.6 123.9 325.5C152.5 406.2 229.5 464 319.1 464C410.5 464 487.5 406.2 516.1 325.5C517.1 328.6 518.2 331.5 519.4 334.4V334.4zM319.1 47.1C218.6 47.1 134.2 120.5 115.7 216.5C109.1 213.4 101.4 212.2 93.4 213.3C86.59 214.3 77.18 215.7 66.84 217.7C85.31 94.5 191.6 0 319.1 0C448.4 0 554.7 94.5 573.2 217.7C562.8 215.7 553.4 214.3 546.6 213.3C538.6 212.2 530.9 213.4 524.2 216.5C505.8 120.5 421.4 48 319.1 48V47.1zM78.5 341.1C59.98 356.7 32.01 355.5 14.27 337.7C-4.442 319-4.825 288.9 13.55 270.6C22.19 261.9 43.69 255.4 64.05 250.1C77.02 248.2 89.53 246.2 97.94 245C103.3 244.2 107.8 248.7 106.1 254.1C103.9 275.6 95.58 324.3 81.43 338.4C80.49 339.4 79.51 340.3 78.5 341.1V341.1zM561.5 341.1C560.7 340.5 559.1 339.8 559.2 339.1C559 338.9 558.8 338.7 558.6 338.4C544.4 324.3 536.1 275.6 533 254.1C532.2 248.7 536.7 244.2 542.1 245C543.1 245.2 544.2 245.3 545.4 245.5C553.6 246.7 564.6 248.5 575.1 250.1C596.3 255.4 617.8 261.9 626.4 270.6C644.8 288.9 644.4 319 625.7 337.7C607.1 355.5 580 356.7 561.5 341.1L561.5 341.1zM319.9 399.1C269.6 399.1 225.5 374.6 200.9 336.5C190.5 320.4 207.7 303.1 226.3 308.4C255.3 315.1 286.8 318.8 319.9 318.8C353 318.8 384.6 315.1 413.5 308.4C432.2 303.1 449.4 320.4 438.1 336.5C414.4 374.6 370.3 399.1 319.9 399.1zM281.6 228.8L281.4 228.5C281.2 228.3 281 228 280.7 227.6C280 226.8 279.1 225.7 277.9 224.3C275.4 221.4 271.9 217.7 267.7 213.1C258.9 206.2 248.8 200 239.1 200C231.2 200 221.1 206.2 212.3 213.1C208.1 217.7 204.6 221.4 202.1 224.3C200.9 225.7 199.1 226.8 199.3 227.6C198.1 228 198.8 228.3 198.6 228.5L198.4 228.8L198.4 228.8C196.3 231.6 192.7 232.7 189.5 231.6C186.2 230.5 183.1 227.4 183.1 224C183.1 206.1 190.7 188.4 200.6 175.2C210.4 162.2 224.5 152 239.1 152C255.5 152 269.6 162.2 279.4 175.2C289.3 188.4 295.1 206.1 295.1 224C295.1 227.4 293.8 230.5 290.5 231.6C287.3 232.7 283.7 231.6 281.6 228.8L281.6 228.8zM441.6 228.8L441.6 228.8L441.4 228.5C441.2 228.3 441 228 440.7 227.6C440 226.8 439.1 225.7 437.9 224.3C435.4 221.4 431.9 217.7 427.7 213.1C418.9 206.2 408.8 200 400 200C391.2 200 381.1 206.2 372.3 213.1C368.1 217.7 364.6 221.4 362.1 224.3C360.9 225.7 359.1 226.8 359.3 227.6C358.1 228 358.8 228.3 358.6 228.5L358.4 228.8L358.4 228.8C356.3 231.6 352.7 232.7 349.5 231.6C346.2 230.5 344 227.4 344 223.1C344 206.1 350.7 188.4 360.6 175.2C370.4 162.2 384.5 151.1 400 151.1C415.5 151.1 429.6 162.2 439.4 175.2C449.3 188.4 456 206.1 456 223.1C456 227.4 453.8 230.5 450.5 231.6C447.3 232.7 443.7 231.6 441.6 228.8V228.8z\"],\n    \"calendar-xmark\": [448, 512, [\"calendar-times\"], \"f273\", \"M257.9 328L304.1 375C314.3 384.4 314.3 399.6 304.1 408.1C295.6 418.3 280.4 418.3 271 408.1L224 361.9L176.1 408.1C167.6 418.3 152.4 418.3 143 408.1C133.7 399.6 133.7 384.4 143 375L190.1 328L143 280.1C133.7 271.6 133.7 256.4 143 247C152.4 237.7 167.6 237.7 176.1 247L224 294.1L271 247C280.4 237.7 295.6 237.7 304.1 247C314.3 256.4 314.3 271.6 304.1 280.1L257.9 328zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"],\n    \"file-video\": [384, 512, [], \"f1c8\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM240 288c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-16.52l43.84 30.2C292.3 403.5 304 397.6 304 387.4V284.6c0-10.16-11.64-16.16-20.16-10.32L240 304.5V288z\"],\n    \"file-pdf\": [384, 512, [], \"f1c1\", \"M320 464C328.8 464 336 456.8 336 448V416H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V416H48V448C48 456.8 55.16 464 64 464H320zM256 160C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V192H0V64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V192H336V160H256zM88 224C118.9 224 144 249.1 144 280C144 310.9 118.9 336 88 336H80V368C80 376.8 72.84 384 64 384C55.16 384 48 376.8 48 368V240C48 231.2 55.16 224 64 224H88zM112 280C112 266.7 101.3 256 88 256H80V304H88C101.3 304 112 293.3 112 280zM160 240C160 231.2 167.2 224 176 224H200C226.5 224 248 245.5 248 272V336C248 362.5 226.5 384 200 384H176C167.2 384 160 376.8 160 368V240zM192 352H200C208.8 352 216 344.8 216 336V272C216 263.2 208.8 256 200 256H192V352zM336 224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256H304V288H336C344.8 288 352 295.2 352 304C352 312.8 344.8 320 336 320H304V368C304 376.8 296.8 384 288 384C279.2 384 272 376.8 272 368V240C272 231.2 279.2 224 288 224H336z\"],\n    \"comment\": [512, 512, [128489, 61669], \"f075\", \"M256 32C114.6 32 .0272 125.1 .0272 240c0 47.63 19.91 91.25 52.91 126.2c-14.88 39.5-45.87 72.88-46.37 73.25c-6.625 7-8.375 17.25-4.625 26C5.818 474.2 14.38 480 24 480c61.5 0 109.1-25.75 139.1-46.25C191.1 442.8 223.3 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32zM256.1 400c-26.75 0-53.12-4.125-78.38-12.12l-22.75-7.125l-19.5 13.75c-14.25 10.12-33.88 21.38-57.5 29c7.375-12.12 14.37-25.75 19.88-40.25l10.62-28l-20.62-21.87C69.82 314.1 48.07 282.2 48.07 240c0-88.25 93.25-160 208-160s208 71.75 208 160S370.8 400 256.1 400z\"],\n    \"envelope\": [512, 512, [128386, 9993, 61443], \"f0e0\", \"M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"],\n    \"hourglass\": [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M360 0C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0L360 0zM192 289.9L110.5 371.5C90.96 390.1 80 417.4 80 445V464H304V445C304 417.4 293 390.1 273.5 371.5L192 289.9zM192 222.1L273.5 140.5C293 121 304 94.56 304 66.98V47.1H80V66.98C80 94.56 90.96 121 110.5 140.5L192 222.1z\"],\n    \"calendar-check\": [448, 512, [], \"f274\", \"M216.1 408.1C207.6 418.3 192.4 418.3 183 408.1L119 344.1C109.7 335.6 109.7 320.4 119 311C128.4 301.7 143.6 301.7 152.1 311L200 358.1L295 263C304.4 253.7 319.6 253.7 328.1 263C338.3 272.4 338.3 287.6 328.1 296.1L216.1 408.1zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"],\n    \"hard-drive\": [512, 512, [128436, \"hdd\"], \"f0a0\", \"M304 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C328 354.7 317.3 344 304 344zM448 32h-384c-35.35 0-64 28.65-64 64v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V96C512 60.65 483.3 32 448 32zM464 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h384C456.8 304 464 311.2 464 320V416zM464 258.3C458.9 256.9 453.6 256 448 256H64C58.44 256 53.14 256.9 48 258.3V96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V258.3zM400 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C424 354.7 413.3 344 400 344z\"],\n    \"face-grin-squint-tears\": [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.18C446-5.046 477.5-4.646 497.1 14.92C516.6 34.49 517 65.95 497.8 85.18C483 99.97 432.2 108.8 409.6 111.9C403.1 112.8 399.2 108 400.1 102.4C403.3 79.94 412 28.97 426.8 14.18H426.8zM74.98 74.98C158.2-8.253 284.5-22.19 382.2 33.17C380.6 37.96 379.3 42.81 378.1 47.52C375 59.67 372.6 72.08 370.8 82.52C290.1 28.93 180.1 37.74 108.9 108.9C37.75 180.1 28.94 290 82.49 370.8C72.01 372.6 59.6 374.1 47.46 378.1C42.76 379.3 37.93 380.6 33.15 382.1C-22.19 284.5-8.245 158.2 74.98 74.98V74.98zM478.8 129.9C534.2 227.5 520.2 353.8 437 437C353.8 520.3 227.5 534.2 129.8 478.8C131.3 474 132.7 469.2 133.9 464.5C136.1 452.3 139.4 439.9 141.2 429.5C221.9 483.1 331.9 474.3 403.1 403.1C474.3 331.9 483.1 221.1 429.5 141.2C439.1 139.4 452.4 137 464.5 133.9C469.2 132.7 474.1 131.4 478.8 129.9L478.8 129.9zM359.2 226.9C369.3 210.6 393 210 397 228.8C406.6 273.1 393.4 322.3 357.8 357.9C322.2 393.5 273 406.7 228.6 397.1C209.9 393.1 210.5 369.4 226.8 359.3C252 343.6 276.1 323.9 300.4 300.5C323.8 277.1 343.5 252.1 359.2 226.9L359.2 226.9zM189.5 235.7C201.1 232.1 211.1 242.1 208.5 254.6L178.8 352.1C176.2 360.7 165.4 363.4 159 357C157.1 355 155.8 352.5 155.6 349.7L150.5 293.6L94.43 288.5C91.66 288.3 89.07 287.1 87.1 285.1C80.76 278.7 83.46 267.9 92.05 265.3L189.5 235.7zM288.5 94.43L293.6 150.5L349.7 155.6C352.5 155.8 355 157.1 357 159C363.4 165.4 360.7 176.2 352.1 178.8L254.6 208.5C242.1 211.1 232.1 201.1 235.7 189.5L265.3 92.05C267.9 83.46 278.7 80.76 285.1 87.1C287.1 89.07 288.3 91.66 288.5 94.43V94.43zM14.18 426.8C28.97 412 79.85 403.2 102.4 400.1C108 399.2 112.8 403.1 111.9 409.6C108.7 432.1 99.97 483 85.18 497.8C65.95 517 34.5 516.6 14.93 497.1C-4.645 477.5-5.046 446 14.18 426.8H14.18z\"],\n    \"rectangle-list\": [576, 512, [\"list-alt\"], \"f022\", \"M128 192C110.3 192 96 177.7 96 160C96 142.3 110.3 128 128 128C145.7 128 160 142.3 160 160C160 177.7 145.7 192 128 192zM200 160C200 146.7 210.7 136 224 136H448C461.3 136 472 146.7 472 160C472 173.3 461.3 184 448 184H224C210.7 184 200 173.3 200 160zM200 256C200 242.7 210.7 232 224 232H448C461.3 232 472 242.7 472 256C472 269.3 461.3 280 448 280H224C210.7 280 200 269.3 200 256zM200 352C200 338.7 210.7 328 224 328H448C461.3 328 472 338.7 472 352C472 365.3 461.3 376 448 376H224C210.7 376 200 365.3 200 352zM128 224C145.7 224 160 238.3 160 256C160 273.7 145.7 288 128 288C110.3 288 96 273.7 96 256C96 238.3 110.3 224 128 224zM128 384C110.3 384 96 369.7 96 352C96 334.3 110.3 320 128 320C145.7 320 160 334.3 160 352C160 369.7 145.7 384 128 384zM0 96C0 60.65 28.65 32 64 32H512C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V96C528 87.16 520.8 80 512 80H64C55.16 80 48 87.16 48 96z\"],\n    \"calendar-plus\": [448, 512, [], \"f271\", \"M224 232C237.3 232 248 242.7 248 256V304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H248V400C248 413.3 237.3 424 224 424C210.7 424 200 413.3 200 400V352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H200V256C200 242.7 210.7 232 224 232zM152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"],\n    \"circle-left\": [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M360 224L272 224v-56c0-9.531-5.656-18.16-14.38-22C248.9 142.2 238.7 143.9 231.7 150.4l-96 88.75C130.8 243.7 128 250.1 128 256.8c.3125 7.781 2.875 13.25 7.844 17.75l96 87.25c7.031 6.406 17.19 8.031 25.88 4.188s14.28-12.44 14.28-21.94l-.002-56L360 288C373.3 288 384 277.3 384 264v-16C384 234.8 373.3 224 360 224zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"],\n    \"money-bill-1\": [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M400 256C400 317.9 349.9 368 288 368C226.1 368 176 317.9 176 256C176 194.1 226.1 144 288 144C349.9 144 400 194.1 400 256zM272 224V288H264C255.2 288 248 295.2 248 304C248 312.8 255.2 320 264 320H312C320.8 320 328 312.8 328 304C328 295.2 320.8 288 312 288H304V208C304 199.2 296.8 192 288 192H272C263.2 192 256 199.2 256 208C256 216.8 263.2 224 272 224zM0 128C0 92.65 28.65 64 64 64H512C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128zM48 176V336C83.35 336 112 364.7 112 400H464C464 364.7 492.7 336 528 336V176C492.7 176 464 147.3 464 112H112C112 147.3 83.35 176 48 176z\"],\n    \"clock\": [512, 512, [128339, \"clock-four\"], \"f017\", \"M232 120C232 106.7 242.7 96 256 96C269.3 96 280 106.7 280 120V243.2L365.3 300C376.3 307.4 379.3 322.3 371.1 333.3C364.6 344.3 349.7 347.3 338.7 339.1L242.7 275.1C236 271.5 232 264 232 255.1L232 120zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256z\"],\n    \"keyboard\": [576, 512, [9000], \"f11c\", \"M512 64H64C28.65 64 0 92.65 0 128v256c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V128C576 92.65 547.3 64 512 64zM528 384c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V128c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V384zM140 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 157.3 146.7 152 140 152zM196 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 194.7 189.3 200 196 200zM276 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 194.7 269.3 200 276 200zM356 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 194.7 349.3 200 356 200zM460 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 157.3 466.7 152 460 152zM140 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 237.3 146.7 232 140 232zM196 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 274.7 189.3 280 196 280zM276 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 274.7 269.3 280 276 280zM356 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 274.7 349.3 280 356 280zM460 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 237.3 466.7 232 460 232zM400 320h-224C167.1 320 160 327.1 160 336V352c0 8.875 7.125 16 16 16h224c8.875 0 16-7.125 16-16v-16C416 327.1 408.9 320 400 320z\"],\n    \"closed-captioning\": [576, 512, [], \"f20a\", \"M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416zM236.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C116.5 206.2 106.5 230.4 106.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C159.5 280.9 154.5 268.8 154.5 256s5-24.88 14.06-33.94C187.3 203.3 217.8 203.3 236.5 222.1zM428.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C308.5 206.2 298.5 230.4 298.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C351.5 280.9 346.5 268.8 346.5 256s5-24.88 14.06-33.94C379.3 203.3 409.8 203.3 428.5 222.1z\"],\n    \"images\": [576, 512, [], \"f302\", \"M512 32H160c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64H512c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 320c0 8.822-7.178 16-16 16h-16l-109.3-160.9C383.7 170.7 378.7 168 373.3 168c-5.352 0-10.35 2.672-13.31 7.125l-62.74 94.11L274.9 238.6C271.9 234.4 267.1 232 262 232c-5.109 0-9.914 2.441-12.93 6.574L176 336H160c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16H512c8.822 0 16 7.178 16 16V320zM224 112c-17.67 0-32 14.33-32 32s14.33 32 32 32c17.68 0 32-14.33 32-32S241.7 112 224 112zM456 480H120C53.83 480 0 426.2 0 360v-240C0 106.8 10.75 96 24 96S48 106.8 48 120v240c0 39.7 32.3 72 72 72h336c13.25 0 24 10.75 24 24S469.3 480 456 480z\"],\n    \"face-grin\": [512, 512, [128512, \"grin\"], \"f580\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"face-meh\": [512, 512, [128528, \"meh\"], \"f11a\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM328 328C341.3 328 352 338.7 352 352C352 365.3 341.3 376 328 376H184C170.7 376 160 365.3 160 352C160 338.7 170.7 328 184 328H328zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"],\n    \"id-card\": [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M368 344h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 344 368 344zM208 320c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 291.3 172.7 320 208 320zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16h-192c0-44.18-35.82-80-80-80h-64C131.8 352 96 387.8 96 432H64c-8.822 0-16-7.178-16-16V160h480V416zM368 264h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 264 368 264z\"],\n    \"sun\": [512, 512, [9728], \"f185\", \"M505.2 324.8l-47.73-68.78l47.75-68.81c7.359-10.62 8.797-24.12 3.844-36.06c-4.969-11.94-15.52-20.44-28.22-22.72l-82.39-14.88l-14.89-82.41c-2.281-12.72-10.76-23.25-22.69-28.22c-11.97-4.936-25.42-3.498-36.12 3.844L256 54.49L187.2 6.709C176.5-.6016 163.1-2.039 151.1 2.896c-11.92 4.971-20.4 15.5-22.7 28.19l-14.89 82.44L31.15 128.4C18.42 130.7 7.854 139.2 2.9 151.2C-2.051 163.1-.5996 176.6 6.775 187.2l47.73 68.78l-47.75 68.81c-7.359 10.62-8.795 24.12-3.844 36.06c4.969 11.94 15.52 20.44 28.22 22.72l82.39 14.88l14.89 82.41c2.297 12.72 10.78 23.25 22.7 28.22c11.95 4.906 25.44 3.531 36.09-3.844L256 457.5l68.83 47.78C331.3 509.7 338.8 512 346.3 512c4.906 0 9.859-.9687 14.56-2.906c11.92-4.969 20.4-15.5 22.7-28.19l14.89-82.44l82.37-14.88c12.73-2.281 23.3-10.78 28.25-22.75C514.1 348.9 512.6 335.4 505.2 324.8zM456.8 339.2l-99.61 18l-18 99.63L256 399.1L172.8 456.8l-18-99.63l-99.61-18L112.9 255.1L55.23 172.8l99.61-18l18-99.63L256 112.9l83.15-57.75l18.02 99.66l99.61 18L399.1 255.1L456.8 339.2zM256 143.1c-61.85 0-111.1 50.14-111.1 111.1c0 61.85 50.15 111.1 111.1 111.1s111.1-50.14 111.1-111.1C367.1 194.1 317.8 143.1 256 143.1zM256 319.1c-35.28 0-63.99-28.71-63.99-63.99S220.7 192 256 192s63.99 28.71 63.99 63.1S291.3 319.1 256 319.1z\"],\n    \"face-laugh-wink\": [512, 512, [\"laugh-wink\"], \"f59c\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM281.9 214.6C273.9 207 273.5 194.4 281 186.3C295.6 170.8 316.3 164 335.6 164C354.1 164 375.7 170.8 390.2 186.3C397.8 194.4 397.4 207 389.3 214.6C381.2 222.1 368.6 221.7 361 213.7C355.6 207.8 346.3 204 335.6 204C324.1 204 315.7 207.8 310.2 213.7C302.7 221.7 290 222.1 281.9 214.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"circle-down\": [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M344 240h-56L287.1 152c0-13.25-10.75-24-24-24h-16C234.7 128 223.1 138.8 223.1 152L224 240h-56c-9.531 0-18.16 5.656-22 14.38C142.2 263.1 143.9 273.3 150.4 280.3l88.75 96C243.7 381.2 250.1 384 256.8 384c7.781-.3125 13.25-2.875 17.75-7.844l87.25-96c6.406-7.031 8.031-17.19 4.188-25.88S353.5 240 344 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"],\n    \"thumbs-down\": [512, 512, [128078, 61576], \"f165\", \"M128 288V64.03c0-17.67-14.33-31.1-32-31.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64C113.7 320 128 305.7 128 288zM481.5 229.1c1.234-5.092 1.875-10.32 1.875-15.64c0-22.7-11.44-43.13-29.28-55.28c.4219-3.015 .6406-6.076 .6406-9.122c0-22.32-11.06-42.6-28.83-54.83c-2.438-34.71-31.47-62.2-66.8-62.2h-52.53c-35.94 0-71.55 11.87-100.3 33.41L169.6 92.93c-6.285 4.71-9.596 11.85-9.596 19.13c0 12.76 10.29 24.04 24.03 24.04c5.013 0 10.07-1.565 14.38-4.811l36.66-27.51c20.48-15.34 45.88-23.81 71.5-23.81h52.53c10.45 0 18.97 8.497 18.97 18.95c0 3.5-1.11 4.94-1.11 9.456c0 26.97 29.77 17.91 29.77 40.64c0 9.254-6.392 10.96-6.392 22.25c0 13.97 10.85 21.95 19.58 23.59c8.953 1.671 15.45 9.481 15.45 18.56c0 13.04-11.39 13.37-11.39 28.91c0 12.54 9.702 23.08 22.36 23.94C456.2 266.1 464 275.2 464 284.1c0 10.43-8.516 18.93-18.97 18.93H307.4c-12.44 0-24 10.02-24 23.1c0 4.038 1.02 8.078 3.066 11.72C304.4 371.7 312 403.8 312 411.2c0 8.044-5.984 20.79-22.06 20.79c-12.53 0-14.27-.9059-24.94-28.07c-24.75-62.91-61.74-99.9-80.98-99.9c-13.8 0-24.02 11.27-24.02 23.99c0 7.041 3.083 14.02 9.016 18.76C238.1 402 211.4 480 289.9 480C333.8 480 360 445 360 411.2c0-12.7-5.328-35.21-14.83-59.33h99.86C481.1 351.9 512 321.9 512 284.1C512 261.8 499.9 241 481.5 229.1z\"],\n    \"chess-pawn\": [320, 512, [9823], \"f443\", \"M296 463.1H23.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24h272c13.25 0 23.1-10.75 23.1-23.1S309.3 463.1 296 463.1zM55.1 287.1L80 287.1v29.5c0 40.25-3.5 81.25-23.38 114.5h53.5C125.1 394.1 128 354.6 128 317.5v-29.5h64v29.5c0 37.13 2.875 77.5 17.88 114.5h53.5C243.5 398.7 240 357.7 240 317.5V287.1l24-.0001C277.3 287.1 288 277.3 288 263.1c0-13.25-10.75-24-23.1-24H241c23.75-21.88 38.1-53.12 38.1-87.1c0-9.393-1.106-19.05-3.451-28.86C272.3 105.4 244.9 32 159.1 32C93.75 32 40 85.75 40 151.1c0 34.88 15.12 66.12 39 88H55.1C42.75 239.1 32 250.7 32 263.1C32 277.3 42.75 287.1 55.1 287.1zM160 79.1c39.75 0 72 32.25 72 72S199.8 223.1 160 223.1S88 191.7 88 151.1S120.2 79.1 160 79.1z\"],\n    \"credit-card\": [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M168 336C181.3 336 192 346.7 192 360C192 373.3 181.3 384 168 384H120C106.7 384 96 373.3 96 360C96 346.7 106.7 336 120 336H168zM360 336C373.3 336 384 346.7 384 360C384 373.3 373.3 384 360 384H248C234.7 384 224 373.3 224 360C224 346.7 234.7 336 248 336H360zM512 32C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H512zM512 80H64C55.16 80 48 87.16 48 96V128H528V96C528 87.16 520.8 80 512 80zM528 224H48V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V224z\"],\n    \"bell\": [448, 512, [128276, 61602], \"f0f3\", \"M256 32V49.88C328.5 61.39 384 124.2 384 200V233.4C384 278.8 399.5 322.9 427.8 358.4L442.7 377C448.5 384.2 449.6 394.1 445.6 402.4C441.6 410.7 433.2 416 424 416H24C14.77 416 6.365 410.7 2.369 402.4C-1.628 394.1-.504 384.2 5.26 377L20.17 358.4C48.54 322.9 64 278.8 64 233.4V200C64 124.2 119.5 61.39 192 49.88V32C192 14.33 206.3 0 224 0C241.7 0 256 14.33 256 32V32zM216 96C158.6 96 112 142.6 112 200V233.4C112 281.3 98.12 328 72.31 368H375.7C349.9 328 336 281.3 336 233.4V200C336 142.6 289.4 96 232 96H216zM288 448C288 464.1 281.3 481.3 269.3 493.3C257.3 505.3 240.1 512 224 512C207 512 190.7 505.3 178.7 493.3C166.7 481.3 160 464.1 160 448H288z\"],\n    \"file\": [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z\"],\n    \"hospital\": [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M296 96C296 87.16 303.2 80 312 80H328C336.8 80 344 87.16 344 96V120H368C376.8 120 384 127.2 384 136V152C384 160.8 376.8 168 368 168H344V192C344 200.8 336.8 208 328 208H312C303.2 208 296 200.8 296 192V168H272C263.2 168 256 160.8 256 152V136C256 127.2 263.2 120 272 120H296V96zM408 0C447.8 0 480 32.24 480 72V80H568C607.8 80 640 112.2 640 152V440C640 479.8 607.8 512 568 512H71.98C32.19 512 0 479.8 0 440V152C0 112.2 32.24 80 72 80H160V72C160 32.24 192.2 0 232 0L408 0zM480 128V464H568C581.3 464 592 453.3 592 440V336H536C522.7 336 512 325.3 512 312C512 298.7 522.7 288 536 288H592V240H536C522.7 240 512 229.3 512 216C512 202.7 522.7 192 536 192H592V152C592 138.7 581.3 128 568 128H480zM48 152V192H104C117.3 192 128 202.7 128 216C128 229.3 117.3 240 104 240H48V288H104C117.3 288 128 298.7 128 312C128 325.3 117.3 336 104 336H48V440C48 453.3 58.74 464 71.98 464H160V128H72C58.75 128 48 138.7 48 152V152zM208 464H272V400C272 373.5 293.5 352 320 352C346.5 352 368 373.5 368 400V464H432V72C432 58.75 421.3 48 408 48H232C218.7 48 208 58.75 208 72V464z\"],\n    \"chess-rook\": [384, 512, [9820], \"f447\", \"M360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464zM345.1 32h-308C17 32 0 49 0 70v139.4C0 218.8 4 227.5 11 233.6L48 265.8c0 8.885 .0504 17.64 .0504 26.46c0 39.32-1.001 79.96-11.93 139.8h49C94.95 374.3 96.11 333.3 96.11 285.5C96.11 270.7 96 255.1 96 238.2L48 196.5V80h64V128H160V80h64V128h48V80h64v116.5L288 238.2c0 16.77-.1124 32.25-.1124 47.1c0 47.79 1.164 89.15 10.99 146.7h49c-10.92-59.83-11.93-100.6-11.93-139.9C335.9 283.3 336 274.6 336 265.8l37-32.13C380 227.5 384 218.8 384 209.4V70C384 49 367 32 345.1 32zM192 224C174.4 224 160 238.4 160 256v64h64V256C224 238.4 209.6 224 192 224z\"],\n    \"star-half\": [576, 512, [61731], \"f089\", \"M293.3 .6123C304.2 3.118 311.9 12.82 311.9 24V408.7C311.9 417.5 307.1 425.7 299.2 429.8L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.1 115.1 483.9L142.2 328.4L31.11 218.3C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C271.2 3.46 282.4-1.893 293.3 .6127L293.3 .6123zM263.9 128.4L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L263.9 394.3L263.9 128.4z\"],\n    \"chess-king\": [448, 512, [9818], \"f43f\", \"M391.9 464H55.95c-13.25 0-23.1 10.75-23.1 23.1S42.7 512 55.95 512h335.1c13.25 0 23.1-10.75 23.1-23.1S405.2 464 391.9 464zM448 216c0-11.82-3.783-23.51-11.08-33.17c-10.3-14.39-27-22.88-44.73-22.88L247.9 160V104h31.1c13.2 0 24.06-10.8 24.06-24S293.1 56 279.9 56h-31.1V23.1C247.9 10.8 237.2 0 223.1 0S199.9 10.8 199.9 23.1V56H167.9c-13.2 0-23.97 10.8-23.97 24S154.7 104 167.9 104h31.1V160H55.95C24.72 160 0 185.3 0 215.9C0 221.6 .8893 227.4 2.704 233L68.45 432h50.5L48.33 218.4C48.09 217.6 47.98 216.9 47.98 216.1C47.98 212.3 50.93 208 55.95 208h335.9c6.076 0 8.115 5.494 8.115 8.113c0 .6341-.078 1.269-.2405 1.887L328.8 432h50.62l65.1-199.2C447.2 227.3 448 221.7 448 216z\"],\n    \"circle-user\": [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M256 112c-48.6 0-88 39.4-88 88C168 248.6 207.4 288 256 288s88-39.4 88-88C344 151.4 304.6 112 256 112zM256 240c-22.06 0-40-17.95-40-40C216 177.9 233.9 160 256 160s40 17.94 40 40C296 222.1 278.1 240 256 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-46.73 0-89.76-15.68-124.5-41.79C148.8 389 182.4 368 220.2 368h71.69c37.75 0 71.31 21.01 88.68 54.21C345.8 448.3 302.7 464 256 464zM416.2 388.5C389.2 346.3 343.2 320 291.8 320H220.2c-51.36 0-97.35 26.25-124.4 68.48C65.96 352.5 48 306.3 48 256c0-114.7 93.31-208 208-208s208 93.31 208 208C464 306.3 446 352.5 416.2 388.5z\"],\n    \"copy\": [512, 512, [], \"f0c5\", \"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z\"],\n    \"share-from-square\": [576, 512, [61509, \"share-square\"], \"f14d\", \"M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z\"],\n    \"copyright\": [512, 512, [169], \"f1f9\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM255.1 176C255.1 176 255.1 176 255.1 176c21.06 0 40.92 8.312 55.83 23.38c9.375 9.344 24.53 9.5 33.97 .1562c9.406-9.344 9.469-24.53 .1562-33.97c-24-24.22-55.95-37.56-89.95-37.56c0 0 .0313 0 0 0c-33.97 0-65.95 13.34-89.95 37.56c-49.44 49.88-49.44 131 0 180.9c24 24.22 55.98 37.56 89.95 37.56c.0313 0 0 0 0 0c34 0 65.95-13.34 89.95-37.56c9.312-9.438 9.25-24.62-.1562-33.97c-9.438-9.312-24.59-9.219-33.97 .1562c-14.91 15.06-34.77 23.38-55.83 23.38c0 0 .0313 0 0 0c-21.09 0-40.95-8.312-55.89-23.38c-30.94-31.22-30.94-82.03 0-113.3C214.2 184.3 234 176 255.1 176z\"],\n    \"map\": [576, 512, [128506, 62072], \"f279\", \"M565.6 36.24C572.1 40.72 576 48.11 576 56V392C576 401.1 569.8 410.9 560.5 414.4L392.5 478.4C387.4 480.4 381.7 480.5 376.4 478.8L192.5 417.5L32.54 478.4C25.17 481.2 16.88 480.2 10.38 475.8C3.882 471.3 0 463.9 0 456V120C0 110 6.15 101.1 15.46 97.57L183.5 33.57C188.6 31.6 194.3 31.48 199.6 33.23L383.5 94.52L543.5 33.57C550.8 30.76 559.1 31.76 565.6 36.24H565.6zM48 421.2L168 375.5V90.83L48 136.5V421.2zM360 137.3L216 89.3V374.7L360 422.7V137.3zM408 421.2L528 375.5V90.83L408 136.5V421.2z\"],\n    \"bell-slash\": [640, 512, [128277, 61943], \"f1f6\", \"M183.6 118.6C206.5 82.58 244.1 56.84 288 49.88V32C288 14.33 302.3 .0003 320 .0003C337.7 .0003 352 14.33 352 32V49.88C424.5 61.39 480 124.2 480 200V233.4C480 278.8 495.5 322.9 523.8 358.4L538.7 377C543.1 383.5 545.4 392.2 542.6 400L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L183.6 118.6zM221.7 148.4L450.7 327.1C438.4 298.2 432 266.1 432 233.4V200C432 142.6 385.4 96 328 96H312C273.3 96 239.6 117.1 221.7 148.4V148.4zM160 233.4V222.1L206.7 258.9C202.7 297.7 189.5 335.2 168.3 368H345.2L406.2 416H120C110.8 416 102.4 410.7 98.37 402.4C94.37 394.1 95.5 384.2 101.3 377L116.2 358.4C144.5 322.9 160 278.8 160 233.4V233.4zM384 448C384 464.1 377.3 481.3 365.3 493.3C353.3 505.3 336.1 512 320 512C303 512 286.7 505.3 274.7 493.3C262.7 481.3 256 464.1 256 448H384z\"],\n    \"hand-lizard\": [512, 512, [], \"f258\", \"M512 331.8V424c0 13.25-10.75 24-24 24c-13.25 0-24-10.75-24-24v-92.17c0-10.09-3.031-19.8-8.766-28.08l-118.6-170.5C327.4 119.1 312.2 112 295.1 112H53.32c-2.5 0-5.25 2.453-5.313 4.172c-.2969 9.5 3.156 18.47 9.75 25.28C64.36 148.3 73.2 152 82.67 152h161.8c17.09 0 33.4 8.281 43.4 22.14c9.984 13.88 12.73 31.83 7.328 48.05l-9.781 29.34C278.2 273.3 257.8 288 234.9 288H138.7C129.2 288 120.4 291.8 113.8 298.5c-6.594 6.812-10.05 15.78-9.75 25.28C104.1 325.5 106.8 328 109.3 328h156.6c5.188 0 10.14 1.688 14.3 4.797l78.22 58.67c6.031 4.531 9.594 11.66 9.594 19.2L367.1 424c0 13.25-10.75 24-24 24s-24-10.75-24-24v-1.328L257.8 376H109.3c-28.48 0-52.39-22.72-53.28-50.64c-.7187-22.61 7.531-43.98 23.23-60.2C94.1 248.9 116.1 240 138.7 240h96.19c2.297 0 4.328-1.469 5.063-3.656l9.781-29.33c.7031-2.141-.0156-3.797-.7344-4.797C248.2 201.2 246.9 200 244.6 200H82.67c-22.58 0-43.67-8.938-59.39-25.16C7.575 158.6-.6755 137.3 .0433 114.6C.9339 86.72 24.84 64 53.32 64h242.7c31.94 0 61.86 15.67 80.05 41.92l118.6 170.5C506 292.8 512 311.9 512 331.8z\"],\n    \"face-smile\": [512, 512, [128578, \"smile\"], \"f118\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"hand-peace\": [512, 512, [9996], \"f25b\", \"M412 160c-8.326 0-16.3 1.51-23.68 4.27C375.1 151.8 358.9 144 340 144c-11.64 0-22.44 3.223-32.03 8.418l11.12-68.95c.6228-3.874 .9243-7.725 .9243-11.53c0-36.08-28.91-71.95-72.09-71.95c-34.68 0-65.31 25.16-71.03 60.54L173.4 82.22L168.9 72.77c-12.4-25.75-38.07-40.78-64.89-40.78c-40.8 0-72.01 33.28-72.01 72.07c0 10.48 2.296 21.11 7.144 31.18L89.05 238.9C64.64 250.4 48 275.7 48 303.1v80c0 22.06 10.4 43.32 27.83 56.86l45.95 35.74c29.35 22.83 65.98 35.41 103.2 35.41l78.81 .0352C400.9 512 480 432.1 480 335.8v-107.5C480 189.6 447.9 160 412 160zM320 212.3C320 201.1 328.1 192 340 192c11.02 0 20 9.078 20 20.25v55.5C360 278.9 351 288 340 288C328.1 288 320 278.9 320 267.8V212.3zM247.9 47.98c12.05 0 24.13 9.511 24.13 23.98c0 1.277-.1022 2.57-.3134 3.871L248.4 220.5C240.7 217.6 232.4 215.1 223.9 215.1c0 0 .002 0 0 0c-4.475 0-8.967 .4199-13.38 1.254l-10.55 1.627l24.32-150.7C226.2 56.42 236.4 47.98 247.9 47.98zM79.1 104c0-13.27 10.79-24.04 24.02-24.04c8.937 0 17.5 5.023 21.61 13.61l61.29 127.3L137.3 228.5L82.38 114.4C80.76 111.1 79.1 107.5 79.1 104zM303.8 464l-78.81-.0352c-26.56 0-52.72-8.984-73.69-25.3l-45.97-35.75C99.47 398.4 96 391.3 96 383.1v-80c0-11.23 7.969-21.11 17.59-23.22l105.3-16.23C220.6 264.2 222.3 263.1 223.9 263.1c11.91 0 24.09 9.521 24.09 24.06c0 11.04-7.513 20.95-17.17 23.09L172.8 319c-12.03 1.633-20.78 11.92-20.78 23.75c0 20.21 18.82 24.08 23.7 24.08c2.645 0 64.61-8.619 65.54-8.826c23.55-5.227 41.51-22.23 49.73-43.64C303.3 327.5 320.6 336 340 336c8.326 0 16.31-1.51 23.69-4.27C376 344.2 393.1 352 412 352c.1992 0 10.08-.4453 18.65-2.92C423.9 413.5 369.9 464 303.8 464zM432 283.8C432 294.9 423 304 412 304c-11.02 0-20-9.078-20-20.25v-55.5C392 217.1 400.1 208 412 208c11.02 0 20 9.078 20 20.25V283.8z\"],\n    \"face-grin-hearts\": [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM238.9 177.1L221.4 243C219.1 251.6 210.4 256.6 201.8 254.3L136.7 236.9C118.9 232.1 108.4 213.8 113.1 196.1C117.9 178.3 136.2 167.7 153.1 172.5L170.1 176.8L174.4 160.7C179.2 142.9 197.5 132.4 215.3 137.1C233.1 141.9 243.6 160.2 238.9 177.1H238.9zM341.9 176.8L358 172.5C375.8 167.7 394.1 178.3 398.9 196.1C403.6 213.8 393.1 232.1 375.3 236.9L310.2 254.3C301.6 256.6 292.9 251.6 290.6 243L273.1 177.1C268.4 160.2 278.9 141.9 296.7 137.1C314.5 132.4 332.8 142.9 337.6 160.7L341.9 176.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"building\": [384, 512, [127970, 61687], \"f1ad\", \"M88 104C88 95.16 95.16 88 104 88H152C160.8 88 168 95.16 168 104V152C168 160.8 160.8 168 152 168H104C95.16 168 88 160.8 88 152V104zM280 88C288.8 88 296 95.16 296 104V152C296 160.8 288.8 168 280 168H232C223.2 168 216 160.8 216 152V104C216 95.16 223.2 88 232 88H280zM88 232C88 223.2 95.16 216 104 216H152C160.8 216 168 223.2 168 232V280C168 288.8 160.8 296 152 296H104C95.16 296 88 288.8 88 280V232zM280 216C288.8 216 296 223.2 296 232V280C296 288.8 288.8 296 280 296H232C223.2 296 216 288.8 216 280V232C216 223.2 223.2 216 232 216H280zM0 64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM48 64V448C48 456.8 55.16 464 64 464H144V400C144 373.5 165.5 352 192 352C218.5 352 240 373.5 240 400V464H320C328.8 464 336 456.8 336 448V64C336 55.16 328.8 48 320 48H64C55.16 48 48 55.16 48 64z\"],\n    \"face-grin-beam-sweat\": [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M464 128C437.5 128 416 107 416 81.01C416 76.01 417.8 69.74 420.6 62.87C420.9 62.17 421.2 61.46 421.6 60.74C430.5 40.51 448.1 15.86 457.6 3.281C460.8-1.094 467.2-1.094 470.4 3.281C483.4 20.65 512 61.02 512 81.01C512 102.7 497.1 120.8 476.8 126.3C472.7 127.4 468.4 128 464 128L464 128zM391.1 50.53C387.8 58.57 384 69.57 384 81.01C384 84.1 384.3 88.91 384.9 92.72C349.4 64.71 304.7 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 219.7 454.7 185.5 438.3 155.8C446.4 158.5 455.1 160 464 160C473.6 160 482.8 158.3 491.4 155.2C504.7 186.2 512 220.2 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 .0002 256 .0002C307.4 .0002 355.3 15.15 395.4 41.23C393.9 44.32 392.4 47.43 391.1 50.53V50.53zM255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.9 255.9 318.9C289 318.9 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1zM217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 119.1 227.4 119.1 224C119.1 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 175.1 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 231.1 206.1 231.1 224C231.1 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8L217.6 228.8zM377.6 228.8L377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8V228.8z\"],\n    \"moon\": [512, 512, [127769, 9214], \"f186\", \"M421.6 379.9c-.6641 0-1.35 .0625-2.049 .1953c-11.24 2.143-22.37 3.17-33.32 3.17c-94.81 0-174.1-77.14-174.1-175.5c0-63.19 33.79-121.3 88.73-152.6c8.467-4.812 6.339-17.66-3.279-19.44c-11.2-2.078-29.53-3.746-40.9-3.746C132.3 31.1 32 132.2 32 256c0 123.6 100.1 224 223.8 224c69.04 0 132.1-31.45 173.8-82.93C435.3 389.1 429.1 379.9 421.6 379.9zM255.8 432C158.9 432 80 353 80 256c0-76.32 48.77-141.4 116.7-165.8C175.2 125 163.2 165.6 163.2 207.8c0 99.44 65.13 183.9 154.9 212.8C298.5 428.1 277.4 432 255.8 432z\"],\n    \"calendar\": [448, 512, [128197, 128198], \"f133\", \"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"],\n    \"face-grin-tongue-wink\": [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.9 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM312.4 208C312.4 194.7 323.1 184 336.4 184C349.6 184 360.4 194.7 360.4 208C360.4 221.3 349.6 232 336.4 232C323.1 232 312.4 221.3 312.4 208zM256 208C256 163.8 291.8 128 336 128C380.2 128 416 163.8 416 208C416 252.2 380.2 288 336 288C291.8 288 256 252.2 256 208zM336 256C362.5 256 384 234.5 384 208C384 181.5 362.5 160 336 160C309.5 160 288 181.5 288 208C288 234.5 309.5 256 336 256zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4H348.3zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"],\n    \"clone\": [512, 512, [], \"f24d\", \"M64 464H288C296.8 464 304 456.8 304 448V384H352V448C352 483.3 323.3 512 288 512H64C28.65 512 0 483.3 0 448V224C0 188.7 28.65 160 64 160H128V208H64C55.16 208 48 215.2 48 224V448C48 456.8 55.16 464 64 464zM160 64C160 28.65 188.7 0 224 0H448C483.3 0 512 28.65 512 64V288C512 323.3 483.3 352 448 352H224C188.7 352 160 323.3 160 288V64zM224 304H448C456.8 304 464 296.8 464 288V64C464 55.16 456.8 48 448 48H224C215.2 48 208 55.16 208 64V288C208 296.8 215.2 304 224 304z\"],\n    \"face-angry\": [512, 512, [128544, \"angry\"], \"f556\", \"M328.4 393.5C318.7 402.6 303.5 402.1 294.5 392.4C287.1 384.5 274.4 376 256 376C237.6 376 224.9 384.5 217.5 392.4C208.5 402.1 193.3 402.6 183.6 393.5C173.9 384.5 173.4 369.3 182.5 359.6C196.7 344.3 221.4 328 256 328C290.6 328 315.3 344.3 329.5 359.6C338.6 369.3 338.1 384.5 328.4 393.5zM144.4 240C144.4 231.2 147.9 223.2 153.7 217.4L122.9 207.2C114.6 204.4 110 195.3 112.8 186.9C115.6 178.6 124.7 174 133.1 176.8L229.1 208.8C237.4 211.6 241.1 220.7 239.2 229.1C236.4 237.4 227.3 241.1 218.9 239.2L208.1 235.6C208.3 237 208.4 238.5 208.4 240C208.4 257.7 194 272 176.4 272C158.7 272 144.4 257.7 144.4 240V240zM368.4 240C368.4 257.7 354 272 336.4 272C318.7 272 304.4 257.7 304.4 240C304.4 238.4 304.5 236.8 304.7 235.3L293.1 239.2C284.7 241.1 275.6 237.4 272.8 229.1C270 220.7 274.6 211.6 282.9 208.8L378.9 176.8C387.3 174 396.4 178.6 399.2 186.9C401.1 195.3 397.4 204.4 389.1 207.2L358.9 217.2C364.7 223 368.4 231.1 368.4 240H368.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"],\n    \"rectangle-xmark\": [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM0 96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V96C464 87.16 456.8 80 448 80H64C55.16 80 48 87.16 48 96z\"],\n    \"paper-plane\": [512, 512, [61913], \"f1d8\", \"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"],\n    \"life-ring\": [512, 512, [], \"f1cd\", \"M464.1 431C474.3 440.4 474.3 455.6 464.1 464.1C455.6 474.3 440.4 474.3 431 464.1L419.3 453.2C374.9 489.9 318.1 512 256 512C193.9 512 137.1 489.9 92.74 453.2L80.97 464.1C71.6 474.3 56.4 474.3 47.03 464.1C37.66 455.6 37.66 440.4 47.03 431L58.8 419.3C22.08 374.9 0 318.1 0 256C0 193.9 22.08 137.1 58.8 92.74L47.03 80.97C37.66 71.6 37.66 56.4 47.03 47.03C56.4 37.66 71.6 37.66 80.97 47.03L92.74 58.8C137.1 22.08 193.9 0 256 0C318.1 0 374.9 22.08 419.3 58.8L431 47.03C440.4 37.66 455.6 37.66 464.1 47.03C474.3 56.4 474.3 71.6 464.1 80.97L453.2 92.74C489.9 137.1 512 193.9 512 256C512 318.1 489.9 374.9 453.2 419.3L464.1 431zM304.8 338.7C290.5 347.2 273.8 352 256 352C238.2 352 221.5 347.2 207.2 338.7L126.9 419.1C162.3 447.2 207.2 464 256 464C304.8 464 349.7 447.2 385.1 419.1L304.8 338.7zM464 256C464 207.2 447.2 162.3 419.1 126.9L338.7 207.2C347.2 221.5 352 238.2 352 256C352 273.8 347.2 290.5 338.7 304.8L419.1 385.1C447.2 349.7 464 304.8 464 256V256zM256 48C207.2 48 162.3 64.8 126.9 92.93L207.2 173.3C221.5 164.8 238.2 160 256 160C273.8 160 290.5 164.8 304.8 173.3L385.1 92.93C349.7 64.8 304.8 48 256 48V48zM173.3 304.8C164.8 290.5 160 273.8 160 256C160 238.2 164.8 221.5 173.3 207.2L92.93 126.9C64.8 162.3 48 207.2 48 256C48 304.8 64.8 349.7 92.93 385.1L173.3 304.8zM256 208C229.5 208 208 229.5 208 256C208 282.5 229.5 304 256 304C282.5 304 304 282.5 304 256C304 229.5 282.5 208 256 208z\"],\n    \"face-grimace\": [512, 512, [128556, \"grimace\"], \"f57f\", \"M344 288C374.9 288 400 313.1 400 344C400 374.9 374.9 400 344 400H168C137.1 400 112 374.9 112 344C112 313.1 137.1 288 168 288H344zM168 320C154.7 320 144 330.7 144 344C144 357.3 154.7 368 168 368H176V320H168zM208 368H240V320H208V368zM304 320H272V368H304V320zM336 368H344C357.3 368 368 357.3 368 344C368 330.7 357.3 320 344 320H336V368zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"calendar-minus\": [448, 512, [], \"f272\", \"M152 352C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H152zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"],\n    \"circle-xmark\": [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"],\n    \"thumbs-up\": [512, 512, [128077, 61575], \"f164\", \"M96 191.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64c17.67 0 32-14.33 32-31.1V223.1C128 206.3 113.7 191.1 96 191.1zM512 227c0-36.89-30.05-66.92-66.97-66.92h-99.86C354.7 135.1 360 113.5 360 100.8c0-33.8-26.2-68.78-70.06-68.78c-46.61 0-59.36 32.44-69.61 58.5c-31.66 80.5-60.33 66.39-60.33 93.47c0 12.84 10.36 23.99 24.02 23.99c5.256 0 10.55-1.721 14.97-5.26c76.76-61.37 57.97-122.7 90.95-122.7c16.08 0 22.06 12.75 22.06 20.79c0 7.404-7.594 39.55-25.55 71.59c-2.046 3.646-3.066 7.686-3.066 11.72c0 13.92 11.43 23.1 24 23.1h137.6C455.5 208.1 464 216.6 464 227c0 9.809-7.766 18.03-17.67 18.71c-12.66 .8593-22.36 11.4-22.36 23.94c0 15.47 11.39 15.95 11.39 28.91c0 25.37-35.03 12.34-35.03 42.15c0 11.22 6.392 13.03 6.392 22.25c0 22.66-29.77 13.76-29.77 40.64c0 4.515 1.11 5.961 1.11 9.456c0 10.45-8.516 18.95-18.97 18.95h-52.53c-25.62 0-51.02-8.466-71.5-23.81l-36.66-27.51c-4.315-3.245-9.37-4.811-14.38-4.811c-13.85 0-24.03 11.38-24.03 24.04c0 7.287 3.312 14.42 9.596 19.13l36.67 27.52C235 468.1 270.6 480 306.6 480h52.53c35.33 0 64.36-27.49 66.8-62.2c17.77-12.23 28.83-32.51 28.83-54.83c0-3.046-.2187-6.107-.6406-9.122c17.84-12.15 29.28-32.58 29.28-55.28c0-5.311-.6406-10.54-1.875-15.64C499.9 270.1 512 250.2 512 227z\"],\n    \"window-minimize\": [512, 512, [128469], \"f2d1\", \"M0 456C0 442.7 10.75 432 24 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H24C10.75 480 0 469.3 0 456z\"],\n    \"square-full\": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M512 0V512H0V0H512zM464 48H48V464H464V48z\"],\n    \"note-sticky\": [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H288V352c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16H64zM288 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V320v5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7H288z\"],\n    \"face-sad-tear\": [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M169.6 291.3C172.8 286.9 179.2 286.9 182.4 291.3C195.6 308.6 223.1 349 223.1 369C223.1 395 202.5 416 175.1 416C149.5 416 127.1 395 127.1 369C127.1 349 156.6 308.6 169.6 291.3H169.6zM368 346.8C377.9 355.6 378.7 370.8 369.9 380.7C361 390.6 345.9 391.4 335.1 382.6C314.7 363.5 286.7 352 256 352C242.7 352 232 341.3 232 328C232 314.7 242.7 304 256 304C299 304 338.3 320.2 368 346.8L368 346.8zM335.6 176C353.3 176 367.6 190.3 367.6 208C367.6 225.7 353.3 240 335.6 240C317.1 240 303.6 225.7 303.6 208C303.6 190.3 317.1 176 335.6 176zM175.6 240C157.1 240 143.6 225.7 143.6 208C143.6 190.3 157.1 176 175.6 176C193.3 176 207.6 190.3 207.6 208C207.6 225.7 193.3 240 175.6 240zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM175.9 448C200.5 458.3 227.6 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 308.7 67.59 356.8 99.88 393.4C110.4 425.4 140.9 447.9 175.9 448V448z\"],\n    \"hand-point-left\": [512, 512, [], \"f0a5\", \"M264 480h104c79.4 0 144-62.95 144-140.3V231.8c0-23.44-6.104-46.73-17.65-67.35L462.1 108.6C447.5 81.1 417.1 64 385.9 64H336c-27.23 0-51.53 12.51-67.69 32H72C32.3 96 0 128.3 0 168S32.3 240 72 240h56.44C128.1 242.6 128 245.3 128 248c0 25.95 13.79 48.73 34.43 61.4C160.8 315.3 160 321.6 160 328c0 25.95 13.79 48.73 34.43 61.4C192.8 395.3 192 401.6 192 408C192 447.7 224.3 480 264 480zM280 304c13.23 0 24 10.78 24 24S293.1 352 279.9 352H232c-13.23 0-24-10.78-24-24S218.8 304 232 304H280zM248 224v12c0 12.39 3.264 23.93 8.545 34.27C253.9 271.3 251 272 248 272h-48C186.8 272 176 261.2 176 248S186.8 224 200 224H248zM248 144c.2813 0 .5137 .1504 .793 .1602C248.6 146.8 248 149.3 248 152V192h-176C58.77 192 48 181.2 48 168S58.77 144 72 144H248zM388.2 429.9C390.4 422.9 392 415.7 392 408c0-29.04-17.37-53.96-42.18-65.34C350.8 337.8 352 333 352 328c0-7.139-1.273-13.96-3.355-20.46C378.4 297.2 400 269.2 400 236V184C400 170.8 389.3 160 376 160S352 170.8 352 184v52c0 15.44-12.56 28-28 28S296 251.4 296 236V152c0-22.06 17.94-40 40-40h49.88c14.77 0 28.28 7.719 35.27 20.16l31.34 55.78C460 201.4 464 216.6 464 231.8v107.9C464 383.9 431.4 420.9 388.2 429.9zM264 432c-13.23 0-24-10.78-24-24S250.8 384 264 384H320c13.23 0 24 10.78 24 24S333.2 432 320 432H264z\"]\n  };\n\n  bunker(function () {\n    defineIcons('far', icons);\n    defineIcons('fa-regular', icons);\n  });\n\n}());\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  function ownKeys(object, enumerableOnly) {\n    var keys = Object.keys(object);\n\n    if (Object.getOwnPropertySymbols) {\n      var symbols = Object.getOwnPropertySymbols(object);\n      enumerableOnly && (symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      })), keys.push.apply(keys, symbols);\n    }\n\n    return keys;\n  }\n\n  function _objectSpread2(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = null != arguments[i] ? arguments[i] : {};\n      i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n\n    return target;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n  }\n\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n  }\n\n  function _iterableToArray(iter) {\n    if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n  }\n\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n  var FAMILY_CLASSIC = 'classic';\n  var FAMILY_SHARP = 'sharp';\n  var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\n  function familyProxy(obj) {\n    // Defaults to the classic family if family is not available\n    return new Proxy(obj, {\n      get: function get(target, prop) {\n        return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n      }\n    });\n  }\n  var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n    'fa': 'solid',\n    'fas': 'solid',\n    'fa-solid': 'solid',\n    'far': 'regular',\n    'fa-regular': 'regular',\n    'fal': 'light',\n    'fa-light': 'light',\n    'fat': 'thin',\n    'fa-thin': 'thin',\n    'fad': 'duotone',\n    'fa-duotone': 'duotone',\n    'fab': 'brands',\n    'fa-brands': 'brands',\n    'fak': 'kit',\n    'fa-kit': 'kit'\n  }), _defineProperty(_familyProxy, FAMILY_SHARP, {\n    'fa': 'solid',\n    'fass': 'solid',\n    'fa-solid': 'solid'\n  }), _familyProxy));\n  var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n    'solid': 'fas',\n    'regular': 'far',\n    'light': 'fal',\n    'thin': 'fat',\n    'duotone': 'fad',\n    'brands': 'fab',\n    'kit': 'fak'\n  }), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n    'solid': 'fass'\n  }), _familyProxy2));\n  var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n    'fab': 'fa-brands',\n    'fad': 'fa-duotone',\n    'fak': 'fa-kit',\n    'fal': 'fa-light',\n    'far': 'fa-regular',\n    'fas': 'fa-solid',\n    'fat': 'fa-thin'\n  }), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n    'fass': 'fa-solid'\n  }), _familyProxy3));\n  var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n    'fa-brands': 'fab',\n    'fa-duotone': 'fad',\n    'fa-kit': 'fak',\n    'fa-light': 'fal',\n    'fa-regular': 'far',\n    'fa-solid': 'fas',\n    'fa-thin': 'fat'\n  }), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n    'fa-solid': 'fass'\n  }), _familyProxy4));\n  // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\n  var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n    '900': 'fas',\n    '400': 'far',\n    'normal': 'far',\n    '300': 'fal',\n    '100': 'fat'\n  }), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n    '900': 'fass'\n  }), _familyProxy5));\n  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  var DUOTONE_CLASSES = {\n    GROUP: 'duotone-group',\n    SWAP_OPACITY: 'swap-opacity',\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary'\n  };\n  var prefixes = new Set();\n  Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\n  Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\n  var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n    return \"\".concat(n, \"x\");\n  })).concat(oneToTwenty.map(function (n) {\n    return \"w-\".concat(n);\n  }));\n\n  function bunker(fn) {\n    try {\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      fn.apply(void 0, args);\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function normalizeIcons(icons) {\n    return Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n  }\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = normalizeIcons(icons);\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalizeIcons(icons));\n    } else {\n      namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll ease the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"0\": [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"],\n    \"1\": [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"],\n    \"2\": [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"],\n    \"3\": [448, 512, [], \"33\", \"M64 64c0-17.7 14.3-32 32-32H336c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L226.3 208H248c75.1 0 136 60.9 136 136s-60.9 136-136 136H169.4c-42.4 0-81.2-24-100.2-61.9l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H248c39.8 0 72-32.2 72-72s-32.2-72-72-72H144c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L253.7 96H96C78.3 96 64 81.7 64 64z\"],\n    \"4\": [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"],\n    \"5\": [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"],\n    \"6\": [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM64 320c0-53 43-96 96-96s96 43 96 96s-43 96-96 96s-96-43-96-96z\"],\n    \"7\": [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"],\n    \"8\": [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"],\n    \"9\": [320, 512, [], \"39\", \"M64 192c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"],\n    \"fill-drip\": [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"],\n    \"arrows-to-circle\": [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM384 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"],\n    \"circle-chevron-right\": [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"],\n    \"at\": [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"trash-can\": [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"],\n    \"text-height\": [576, 512, [], \"f034\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H160 32zm470.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"],\n    \"user-xmark\": [640, 512, [\"user-times\"], \"f235\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\n    \"stethoscope\": [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"message\": [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"],\n    \"info\": [192, 512, [], \"f129\", \"M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"],\n    \"down-left-and-up-right-to-center\": [512, 512, [\"compress-alt\"], \"f422\", \"M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z\"],\n    \"explosion\": [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"],\n    \"file-lines\": [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"wave-square\": [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"],\n    \"ring\": [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"],\n    \"building-un\": [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"dice-three\": [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"calendar-days\": [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"],\n    \"anchor-circle-check\": [640, 512, [], \"e4aa\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"building-circle-arrow-right\": [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM492.7 300.7c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"],\n    \"volleyball\": [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"],\n    \"arrows-up-to-line\": [640, 512, [], \"e4c2\", \"M64 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C46.3 32 32 46.3 32 64s14.3 32 32 32zM41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 237.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L448 237.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"],\n    \"sort-down\": [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"],\n    \"circle-minus\": [512, 512, [\"minus-circle\"], \"f056\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n    \"door-open\": [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480v32h32 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"],\n    \"right-from-bracket\": [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"],\n    \"atom\": [448, 512, [9883], \"f5d2\", \"M258.9 412.3c-16.7 33.8-31 35.7-34.9 35.7s-18.1-1.9-34.9-35.7c11.4-3.9 23.1-8.4 34.9-13.5c11.8 5.1 23.4 9.7 34.9 13.5zM252.8 312c-9.7 5.8-19.3 11.2-28.8 16c-9.4-4.8-19-10.2-28.8-16c-12.1-7.3-23.6-14.8-34.2-22.4c-.7-10.8-1-22-1-33.6s.4-22.7 1-33.6c10.6-7.6 22.1-15.1 34.2-22.4c9.7-5.8 19.3-11.2 28.8-16c9.4 4.8 19 10.2 28.8 16c12.1 7.3 23.6 14.8 34.2 22.4c.7 10.8 1 22 1 33.6s-.4 22.7-1 33.6c-10.6 7.6-22.1 15.1-34.2 22.4zm184.8 72c20.7-37.1 9.4-82.8-23.6-128c33-45.2 44.3-90.9 23.6-128c-20.2-36.3-62.5-49.3-115.2-43.2C300.4 32.7 266.8 0 224 0s-76.4 32.7-98.4 84.8c-52.7-6.1-95 6.8-115.2 43.2C-10.3 165.1 1 210.8 34 256C1 301.2-10.3 346.9 10.4 384c20.2 36.3 62.5 49.3 115.2 43.2c22 52.1 55.7 84.8 98.4 84.8s76.4-32.7 98.4-84.8c52.7 6.1 95-6.8 115.2-43.2zm-67.8-79.2c18.9 30.2 14.2 44 11.9 48.1c-1.6 2.9-8.4 13-40.2 11.7c2.8-13.1 5-26.9 6.7-41.2c7.6-6.1 14.8-12.3 21.6-18.6zm11.9-145.7c2.3 4.2 7 17.9-11.9 48.1c-6.8-6.3-14-12.5-21.6-18.6c-1.7-14.3-3.9-28-6.7-41.2c31.8-1.4 38.6 8.7 40.2 11.7zM224 64c3.9 0 18.1 1.9 34.9 35.7c-11.4 3.9-23.1 8.4-34.9 13.5c-11.8-5.1-23.4-9.7-34.9-13.5C205.9 65.9 220.1 64 224 64zM106.5 147.5c-2.8 13.1-5 26.9-6.7 41.2c-7.6 6.1-14.8 12.3-21.6 18.6C59.4 177 64 163.3 66.3 159.1c1.6-2.9 8.4-13 40.2-11.7zM66.3 352.9c-2.3-4.2-7-17.9 11.9-48.1c6.8 6.3 14 12.5 21.6 18.6c1.7 14.2 3.9 28 6.7 41.2c-31.8 1.4-38.6-8.7-40.2-11.7zM224 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"soap\": [512, 512, [129532], \"e06e\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM416 32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"],\n    \"icons\": [576, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M532.3 7.3C539.7 13.3 544 22.4 544 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L384 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM106.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L245.3 304H272c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48h26.7zM224 408c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM510.7 278.3L472.3 368H528c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L423.7 400H368c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L51.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"],\n    \"microphone-lines-slash\": [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"],\n    \"bridge-circle-check\": [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"pump-medical\": [448, 512, [], \"e06a\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n    \"fingerprint\": [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c69.3 0 130.6 33.8 168.5 86c7.8 10.7 22.8 13.1 33.5 5.3s13.1-22.8 5.3-33.5C416.8 41.7 341.3 0 256 0C114.6 0 0 114.6 0 256v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8c0-18.1-1.9-35.8-5.5-52.9zM222.1 128.2c10.8-2.9 22.1-4.4 33.9-4.4c73 0 132.2 59.2 132.2 132.2c0 31.1-1.9 62.4-3.9 86c-1 11.8-2 21.6-2.7 28.4c-.4 3.4-.7 6.1-.9 7.9l-.2 2-.1 .5 0 .1 0 0 0 0c-1.6 13.2 7.7 25.1 20.8 26.8s25.1-7.7 26.8-20.8l-23.8-3c23.8 3 23.8 3 23.8 3l0 0 0 0 0 0 0-.2 .1-.6 .3-2.2c.2-1.9 .5-4.8 .9-8.3c.8-7.2 1.8-17.4 2.8-29.6c2-24.4 4.1-57.1 4.1-90c0-99.5-80.7-180.2-180.2-180.2c-15.9 0-31.4 2.1-46.2 6c-12.8 3.4-20.5 16.5-17.1 29.3s16.5 20.5 29.3 17.1zm-74.5 52.1c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9C87.9 182 75.8 217.6 75.8 256c0 30.1-3.8 58.6-7.6 79.7c-1.9 10.5-3.8 19.1-5.2 24.9c-.7 2.9-1.3 5.2-1.7 6.7c-.2 .7-.3 1.3-.4 1.6l-.1 .4 0 .1 0 0c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L83.8 376c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 0-.2 .2-.6c.1-.5 .3-1.2 .6-2.1c.5-1.8 1.2-4.4 1.9-7.7c1.6-6.6 3.7-16.1 5.8-27.6c4.2-22.9 8.4-54.4 8.4-88.3c0-28.2 8.8-54.3 23.8-75.7zM256 200c30.9 0 56 25.1 56 56c0 47.1-2.7 86.3-5.5 113.6c-1.4 13.7-2.7 24.3-3.7 31.6c-.5 3.6-.9 6.3-1.2 8.1c-.1 .9-.2 1.6-.3 2l-.1 .5 0 .1 0 0 0 0 0 0c-2.3 13.1 6.5 25.5 19.5 27.8s25.5-6.4 27.8-19.5L324.8 416c23.6 4.1 23.6 4.1 23.6 4.1l0 0 0 0 0-.1 0-.2 .1-.7c.1-.6 .2-1.4 .4-2.4c.3-2.1 .8-5.1 1.3-9c1.1-7.8 2.5-19.1 4-33.4c2.9-28.7 5.7-69.5 5.7-118.4c0-57.4-46.6-104-104-104s-104 46.6-104 104c0 46.7-3.9 83.4-7.7 108.4c-1.9 12.5-3.8 21.9-5.2 28.2c-.7 3.1-1.3 5.5-1.6 6.9c-.2 .7-.3 1.3-.4 1.6l-.1 .3c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L160 408c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 .1-.2 .2-.7c.1-.5 .3-1.3 .6-2.3c.5-2 1.2-4.8 2-8.4c1.6-7.2 3.7-17.8 5.8-31.3c3-19.2 5.9-44.6 7.3-75.3c.6-12.6 .9-26 .9-40.3c0-30.9 25.1-56 56-56zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 45.4-2.6 83.4-6.3 114.5L202 478.3l0 0c-5.3 12.1 .1 26.2 12.2 31.6c12.1 5.4 26.3-.1 31.7-12.2L224 488c21.9 9.7 21.9 9.7 21.9 9.7l0 0 0 0 0-.1 .1-.3 .4-.9c.3-.8 .7-1.8 1.2-3.1c1-2.7 2.4-6.5 4-11.5c3.3-10.1 7.5-24.9 11.7-44.7C271.8 397.3 280 337.6 280 256zM225.7 370.5s0 0 0 0L256 232 225.7 370.5zm0 0c-2.7 22.5-5.9 41.3-9.2 56.6c-3.8 18.2-7.6 31.3-10.3 39.8c-1.4 4.2-2.5 7.3-3.2 9.2c-.4 .9-.6 1.6-.8 2l-.1 .4 23.6-107.9z\"],\n    \"hand-point-right\": [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z\"],\n    \"magnifying-glass-location\": [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-48 0c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"forward-step\": [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"],\n    \"face-smile-beam\": [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\n    \"flag-checkered\": [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1V345.8c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.4-23.7-122.5-13.4L64 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V400 334 64 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9v65.5L64 252.6V318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3V238.7l38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9v66.7l-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8v71.4c21.8 1.9 43.3 6.7 64 14.4V244.2l22.7 6.7c13.5 4 27.3 6.4 41.3 7.4V194c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12v-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8v72.4c-13-.4-26 .8-38.7 3.6L128 173.2V98L64 114v73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2V251.9l-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5v77.4zm64-149.4V115.4c-20.9 6.1-42.4 9.1-64 9.1V194c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"],\n    \"football\": [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"],\n    \"school-circle-exclamation\": [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"crop\": [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"],\n    \"angles-down\": [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"],\n    \"users-rectangle\": [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"],\n    \"people-roof\": [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 240c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zM144 336c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm392-40c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"],\n    \"people-line\": [640, 512, [], \"e534\", \"M360 72c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM144 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"],\n    \"beer-mug-empty\": [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"],\n    \"diagram-predecessor\": [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"],\n    \"arrow-up-long\": [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"],\n    \"fire-flame-simple\": [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"],\n    \"person\": [320, 512, [129485, \"male\"], \"f183\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"],\n    \"laptop\": [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"],\n    \"file-csv\": [384, 512, [], \"f6dd\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 224H96c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H80c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8H96c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H80c-22.1 0-40-17.9-40-40V264c0-22.1 17.9-40 40-40zm72 46.4c0-25.6 20.8-46.4 46.4-46.4H216c8.8 0 16 7.2 16 16s-7.2 16-16 16H198.4c-7.9 0-14.4 6.4-14.4 14.4c0 5.2 2.8 9.9 7.2 12.5l25.4 14.5c14.4 8.3 23.4 23.6 23.4 40.3c0 25.6-20.8 46.4-46.4 46.4H168c-8.8 0-16-7.2-16-16s7.2-16 16-16h25.6c7.9 0 14.4-6.4 14.4-14.4c0-5.2-2.8-9.9-7.2-12.5l-25.4-14.5C160.9 302.4 152 287 152 270.4zM280 240v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V240c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"menorah\": [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"],\n    \"truck-plane\": [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 400c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM384 376c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"record-vinyl\": [512, 512, [], \"f8d9\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm0 32c70.7 0 128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"face-grin-stars\": [512, 512, [129321, \"grin-stars\"], \"f587\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM403 336.5c5.1-11.8-6.9-22.4-19.2-18.7C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"],\n    \"bong\": [512, 512, [], \"f55c\", \"M192 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H334.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H192V208.5zM320 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L398.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C406 314.1 416 347.9 416 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H108.1c-17.3 0-34.2-7.1-43.8-21.5C43.9 460.1 32 423.4 32 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h16H304h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"],\n    \"spaghetti-monster-flying\": [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"arrow-down-up-across-line\": [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"],\n    \"spoon\": [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"],\n    \"jar-wheat\": [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"],\n    \"envelopes-bulk\": [576, 512, [\"mail-bulk\"], \"f674\", \"M96 0C78.3 0 64 14.3 64 32V224h96V192c0-35.3 28.7-64 64-64H448V32c0-17.7-14.3-32-32-32H96zM224 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H544c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H224zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM32 256c-17.7 0-32 14.3-32 32v13L155.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L320 301V288c0-17.7-14.3-32-32-32H32zm288 84.8L184 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L0 340.8V480c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V340.8z\"],\n    \"file-circle-exclamation\": [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\n    \"circle-h\": [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n    \"pager\": [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"],\n    \"address-book\": [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"],\n    \"strikethrough\": [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"],\n    \"k\": [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"],\n    \"landmark-flag\": [512, 512, [], \"e51c\", \"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"],\n    \"pencil\": [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"backward\": [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"],\n    \"caret-right\": [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"],\n    \"comments\": [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"],\n    \"paste\": [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V256H416c-17.7 0-32-14.3-32-32V128H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm256 88v96h96l-96-96z\"],\n    \"code-pull-request\": [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80c0-13.3-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24s24-10.7 24-24zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm328 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"clipboard-list\": [384, 512, [], \"f46d\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16z\"],\n    \"truck-ramp-box\": [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"],\n    \"user-check\": [640, 512, [], \"f4fc\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\n    \"vial-virus\": [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-24c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm88 32c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"sheet-plastic\": [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"],\n    \"blog\": [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"],\n    \"user-ninja\": [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 396 61.3 324.1 142.7 307.6l68.5 91.4c6.4 8.5 19.2 8.5 25.6 0l68.5-91.4C386.7 324.1 448 396 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"],\n    \"person-arrow-up-from-line\": [640, 512, [], \"e539\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"],\n    \"scroll-torah\": [640, 512, [\"torah\"], \"f6a0\", \"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"],\n    \"broom-ball\": [640, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M633.3 12.4c10.8 14 8.3 34.1-5.6 44.9l-144 112-72 56L403 232l28.3 36.3c3.7 4.8 4.4 11.2 1.8 16.7s-8.1 9-14.1 9.1l-48 .9L292.3 194.2l12.5-46.3c1.6-5.9 6.3-10.3 12.3-11.5s12 1.1 15.8 5.8l30.8 39.4 8.7-6.8 72-56 144-112c13.9-10.9 34.1-8.3 44.9 5.6zM269.1 476.3c-55.5 43.4-215 34.2-252.3 31.4c-5.1-.4-9.7-2.9-12.8-7s-4.5-9.1-3.6-14.1c.5-3.2 1.3-7.2 2.2-12.1c3-16.5 10.8-31.6 21.9-44.1l73.5-82.5c3.1-3.5 3.2-8.6 .4-12.3s-7.9-4.7-12-2.6L47.3 353.5c-6.3 3.3-13.4-2.7-11-9.4c14.3-39.9 32.7-76.9 55.5-94.7c57.7-45.1 175.3-35.5 175.3-35.5l78.8 100.9s-19.1 116.4-76.8 161.5zM496 512c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"],\n    \"toggle-off\": [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"],\n    \"box-archive\": [512, 512, [\"archive\"], \"f187\", \"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"],\n    \"person-drowning\": [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"],\n    \"arrow-down-9-1\": [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM352 320c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zm93.7-171.1c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"],\n    \"face-grin-tongue-squint\": [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n    \"spray-can\": [512, 512, [], \"f5bd\", \"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM320 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM512 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM480 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"truck-monster\": [640, 512, [], \"f63b\", \"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"],\n    \"w\": [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"],\n    \"earth-africa\": [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.3-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"],\n    \"rainbow\": [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"],\n    \"circle-notch\": [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"],\n    \"tablet-screen-button\": [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 64H64V384H384V64z\"],\n    \"paw\": [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"],\n    \"cloud\": [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"],\n    \"trowel-bricks\": [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"],\n    \"face-flushed\": [512, 512, [128563, \"flushed\"], \"f579\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72zm264-72c0-39.8-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72s72-32.2 72-72zm-240 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm192 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"hospital-user\": [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"],\n    \"tent-arrow-left-right\": [640, 512, [], \"e57f\", \"M520.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L521.5 72 118.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],\n    \"gavel\": [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"],\n    \"binoculars\": [512, 512, [], \"f1e5\", \"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"],\n    \"microphone-slash\": [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z\"],\n    \"box-tissue\": [512, 512, [], \"e05b\", \"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"],\n    \"motorcycle\": [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"bell-concierge\": [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"],\n    \"pen-ruler\": [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"],\n    \"people-arrows\": [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M192 64c0 35.3-28.7 64-64 64s-64-28.7-64-64S92.7 0 128 0s64 28.7 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM576 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"],\n    \"mars-and-venus-burst\": [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 320c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"],\n    \"square-caret-right\": [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],\n    \"scissors\": [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM160 112c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM112 448c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"sun-plant-wilt\": [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 224c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm32-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"],\n    \"toilets-portable\": [576, 512, [], \"e584\", \"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"],\n    \"hockey-puck\": [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"],\n    \"table\": [512, 512, [], \"f0ce\", \"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],\n    \"magnifying-glass-arrow-right\": [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"],\n    \"tachograph-digital\": [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"],\n    \"users-slash\": [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"],\n    \"clover\": [448, 512, [], \"e139\", \"M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z\"],\n    \"reply\": [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"],\n    \"star-and-crescent\": [576, 512, [9770], \"f699\", \"M32 256C32 114.6 146.6 0 288 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C352.6 505.7 321 512 288 512C146.6 512 32 397.4 32 256zM407.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L293 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"],\n    \"house-fire\": [640, 512, [], \"e50c\", \"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 56.7 24.2 76.9C640 437.9 568.7 512 480 512c-89.7 0-160-74.2-160-161.9c0-26.4 12.7-58.6 32.4-90.6c20-32.4 48.1-66.1 81.4-95.8c5.6-5 14.2-5 19.8 0zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z\"],\n    \"square-minus\": [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n    \"helicopter\": [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 304c-10.1 0-19.6-4.7-25.6-12.8L192 256 47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"],\n    \"compass\": [512, 512, [129517], \"f14e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"square-caret-down\": [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\n    \"file-circle-question\": [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"],\n    \"laptop-code\": [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n    \"swatchbook\": [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"prescription-bottle\": [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"],\n    \"bars\": [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\n    \"people-group\": [640, 512, [], \"e533\", \"M184 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zM568 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm8 157.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"],\n    \"hourglass-end\": [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"],\n    \"heart-crack\": [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"],\n    \"square-up-right\": [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V176c0-8.8-7.2-16-16-16H160z\"],\n    \"face-kiss-beam\": [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\n    \"film\": [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"],\n    \"ruler-horizontal\": [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"],\n    \"people-robbery\": [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"],\n    \"lightbulb\": [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"],\n    \"caret-left\": [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"],\n    \"circle-exclamation\": [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zm32 224c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"school-circle-xmark\": [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"],\n    \"arrow-right-from-bracket\": [576, 512, [\"sign-out\"], \"f08b\", \"M534.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L434.7 224 224 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-53 0-96 43-96 96l0 256c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"],\n    \"circle-chevron-down\": [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"],\n    \"unlock-keyhole\": [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"],\n    \"cloud-showers-heavy\": [576, 512, [], \"f740\", \"M128 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C96.7 126.1 96 119.1 96 112C96 50.1 146.1 0 208 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H128zm-14.5 33.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM345.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"],\n    \"headphones-simple\": [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"],\n    \"sitemap\": [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"],\n    \"circle-dollar-to-slot\": [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"],\n    \"memory\": [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n    \"road-spikes\": [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"fire-burner\": [640, 512, [], \"e4f1\", \"M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM192 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"flag\": [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z\"],\n    \"hanukiah\": [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"],\n    \"feather\": [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"],\n    \"volume-low\": [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"],\n    \"comment-slash\": [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z\"],\n    \"cloud-sun-rain\": [640, 512, [127782], \"f743\", \"M137.9 3c-4.5-3.2-10.3-3.9-15.4-1.8s-8.8 6.7-9.7 12.2L98.7 98.7 13.4 112.8c-5.5 .9-10.1 4.6-12.2 9.7S-.2 133.4 3 137.9l50.3 70.3L3 278.5c-3.2 4.5-3.9 10.3-1.8 15.4s6.7 8.8 12.2 9.7l85.3 14.1L112.8 403c.9 5.5 4.6 10.1 9.7 12.2s10.9 1.4 15.4-1.8l55.2-39.5c-19.9-21.9-32.3-50.8-33.1-82.6c-17.6-10.2-32.2-26.1-40.6-46.3c-20.3-49 3-105.1 52-125.4c29.4-12.2 61.4-8.7 86.7 6.7c13.1-21.8 32.5-39.4 55.8-50.3L303.6 13.4c-.9-5.5-4.6-10.1-9.7-12.2S282.9-.2 278.5 3L208.2 53.3 137.9 3zM291.4 415.9c-2.5 .6-5.1 .6-7.6-.1c1.4 0 2.8 .1 4.2 .1h3.5zm-46.3-260c-17.3-12.2-40.4-15.6-61.5-6.9c-32.7 13.5-48.2 51-34.6 83.6c3.6 8.7 8.9 16.1 15.3 22.2c10.6-39.7 39.9-71.8 77.8-86.4c.8-4.3 1.8-8.4 3-12.5zM277.4 420c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm74.5-116.1c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C433.3 114.6 402.8 96 368 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H559.9c44.2 0 80-35.8 80-80z\"],\n    \"compress\": [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"],\n    \"wheat-awn\": [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"],\n    \"ankh\": [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"],\n    \"hands-holding-child\": [640, 512, [], \"e4fa\", \"M320 80c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm44.7 84.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"],\n    \"asterisk\": [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"],\n    \"square-check\": [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\n    \"peseta-sign\": [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"],\n    \"heading\": [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"],\n    \"ghost\": [384, 512, [128123], \"f6e2\", \"M50.8 452.1L19.2 477.4c-2.1 1.7-4.7 2.6-7.4 2.6C5.3 480 0 474.7 0 468.2V192C0 86 86 0 192 0S384 86 384 192V468.2c0 6.5-5.3 11.8-11.8 11.8c-2.7 0-5.3-.9-7.4-2.6l-31.6-25.3c-3.3-2.7-7.5-4.1-11.8-4.1c-5.9 0-11.5 2.8-15 7.5l-37.6 50.1c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4l-38.4-51.2c-3-4-7.8-6.4-12.8-6.4s-9.8 2.4-12.8 6.4l-38.4 51.2c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L77.6 455.5c-3.6-4.7-9.1-7.5-15-7.5c-4.3 0-8.4 1.5-11.7 4.1zM160 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"list\": [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"],\n    \"square-phone-flip\": [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"],\n    \"cart-plus\": [576, 512, [], \"f217\", \"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z\"],\n    \"gamepad\": [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 248c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm-24 56c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"],\n    \"circle-dot\": [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-160c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"],\n    \"face-dizzy\": [512, 512, [\"dizzy\"], \"f567\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-96c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"],\n    \"egg\": [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"],\n    \"house-medical-circle-xmark\": [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"],\n    \"campground\": [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"],\n    \"folder-plus\": [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"],\n    \"futbol\": [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"],\n    \"paintbrush\": [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"],\n    \"lock\": [448, 512, [128274], \"f023\", \"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"],\n    \"gas-pump\": [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"],\n    \"hot-tub-person\": [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128c35.3 0 64-28.7 64-64S99.3 0 64 0S0 28.7 0 64s28.7 64 64 64z\"],\n    \"map-location\": [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"],\n    \"house-flood-water\": [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"],\n    \"tree\": [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"],\n    \"bridge-lock\": [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\n    \"sack-dollar\": [512, 512, [128176], \"f81d\", \"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84.1 96c0-11.1-9-20.1-20.1-20.1s-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4.1c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0 0 0c-2.2-.8-4.3-1.5-6.3-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V416c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V224z\"],\n    \"pen-to-square\": [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"],\n    \"car-side\": [640, 512, [128663], \"f5e4\", \"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zm-2.9 207c-6.6 18.6-24.4 32-45.3 32s-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16zM160 432c-20.9 0-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16c-6.6 18.6-24.4 32-45.3 32z\"],\n    \"share-nodes\": [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"],\n    \"heart-circle-minus\": [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"],\n    \"hourglass-half\": [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9H112z\"],\n    \"microscope\": [512, 512, [128300], \"f610\", \"M168 32c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32h8c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32h-8c0 17.7-14.3 32-32 32H200c-17.7 0-32-14.3-32-32h-8c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32l8 0zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"sink\": [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"],\n    \"bag-shopping\": [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 96c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm200-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"arrow-down-z-a\": [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"],\n    \"mitten\": [448, 512, [], \"f7b5\", \"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"],\n    \"person-rays\": [512, 512, [], \"e54d\", \"M304 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM248 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"],\n    \"users\": [640, 512, [], \"f0c0\", \"M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"],\n    \"eye-slash\": [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z\"],\n    \"flask-vial\": [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"],\n    \"hand\": [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"],\n    \"om\": [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z\"],\n    \"worm\": [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96h38.4C407.9 0 448 40.1 448 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H320c-53 0-96-43-96-96zm144-8c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"],\n    \"house-circle-xmark\": [640, 512, [], \"e50b\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"plug\": [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"chevron-up\": [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"],\n    \"hand-spock\": [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"],\n    \"stopwatch\": [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n    \"face-kiss\": [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"bridge-circle-xmark\": [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"face-grin-tongue\": [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-16c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n    \"chess-bishop\": [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V416H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"face-grin-wink\": [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"ear-deaf\": [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"],\n    \"road-circle-check\": [640, 512, [], \"e564\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\n    \"dice-five\": [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64-64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM352 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"square-rss\": [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm64 120c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"land-mine-on\": [640, 512, [], \"e51b\", \"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"],\n    \"i-cursor\": [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"],\n    \"stamp\": [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"],\n    \"stairs\": [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"],\n    \"i\": [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"],\n    \"hryvnia-sign\": [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"],\n    \"pills\": [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"],\n    \"face-grin-wide\": [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"],\n    \"tooth\": [384, 512, [129463], \"f5c9\", \"M154.1 52.1C137.3 39.1 116.7 32 95.5 32C42.7 32 0 74.7 0 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2L80.4 460.2c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C160.2 323.7 175 312 192 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"],\n    \"v\": [448, 512, [118], \"56\", \"M51.7 34.5c16.3-6.8 35 .9 41.8 17.2L224 364.8 354.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7l-160-384c-6.8-16.3 .9-35 17.2-41.8z\"],\n    \"bangladeshi-taka-sign\": [384, 512, [], \"e2e6\", \"M36 32.2C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8V160H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V384c0 53 43 96 96 96h32c106 0 192-86 192-192V256c0-53-43-96-96-96H272c-17.7 0-32 14.3-32 32s14.3 32 32 32h16c17.7 0 32 14.3 32 32v32c0 70.7-57.3 128-128 128H160c-17.7 0-32-14.3-32-32V224h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V128.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"],\n    \"bicycle\": [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"],\n    \"staff-snake\": [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.2 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"head-side-cough-slash\": [640, 512, [], \"e062\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.3 319.8c22.3-2.1 39.7-20.8 39.7-43.7c0-10-3.4-19.6-9.6-27.4l-42-52.6c-8.3-10.3-12.8-23-15-36.1C398.2 69.3 319.2 0 224 0H201.7C157 0 115.7 14.5 82.2 39.2L38.8 5.1zM0 201.7c0 44.8 18.3 91.5 46.5 127.7C56.9 342.8 64 358.8 64 375.8V480c0 17.7 14.3 32 32 32H256c17.7 0 32-14.3 32-32h64c32.8 0 59.9-24.7 63.6-56.6l-9.4-7.4H352c-17.7 0-32-14.3-32-32c0-10.5 5.1-19.9 12.9-25.7L20.8 112.4C7.5 139.3 0 169.6 0 201.7zM632 288c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm-88 72c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64 48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"truck-medical\": [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM112 144c0-8.8 7.2-16 16-16h48V80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240v48c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V192H128c-8.8 0-16-7.2-16-16V144z\"],\n    \"wheat-awn-circle-exclamation\": [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"snowman\": [576, 512, [9731, 9924], \"f7d0\", \"M373.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L440 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C428.7 296.9 448 338.2 448 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H213.3c-13.9 0-27.7-4.2-37.5-13.9C146.3 469 128 428.7 128 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3l-73.6-31.5-56-24c-12.2-5.2-17.8-19.3-12.6-31.5s19.3-17.8 31.5-12.6L88 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L184.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C196 127.2 192 112.1 192 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM256 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm48 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm-16 80c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm16 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM320 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"],\n    \"mortar-pestle\": [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"road-barrier\": [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"],\n    \"school\": [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"],\n    \"igloo\": [576, 512, [], \"f7ae\", \"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"],\n    \"joint\": [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"],\n    \"angle-right\": [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"],\n    \"horse\": [576, 512, [128014], \"f6f0\", \"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 96c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"],\n    \"q\": [512, 512, [113], \"51\", \"M96 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C403.9 325.8 416 292.3 416 256c0-88.4-71.6-160-160-160S96 167.6 96 256zM376.9 444.6C342 467 300.5 480 256 480C132.3 480 32 379.7 32 256S132.3 32 256 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"],\n    \"g\": [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32c0 123.7-100.3 224-224 224S0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"],\n    \"notes-medical\": [512, 512, [], \"f481\", \"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"],\n    \"temperature-half\": [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V200c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"],\n    \"dong-sign\": [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM256 288c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"capsules\": [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"],\n    \"poo-storm\": [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 44.3-35.8 80.1-80 80.1c-1.4 0-2.8 .2-4 .5H128c-35.3 0-64 28.7-64 64c0 12.4 3.5 24 9.7 33.8C31.6 234.3 0 271.5 0 316c0 49.1 38.5 89.2 86.9 91.9c-1.8-2.9-3.4-6.1-4.5-9.4c-6-17.5-.5-36.9 13.6-48.5L238.2 233.6c15.6-12.8 37.9-12.7 53.5 .1s20.3 35.1 11.3 53.4l-26 53.2h16.3c18.1 0 34.3 11.7 40.3 29.2c4.5 13.1 2.6 27.3-4.6 38.4h27c50.8 0 92-41.2 92-92c0-44.5-31.6-81.7-73.7-90.2c6.1-9.8 9.7-21.4 9.7-33.8c0-35.3-28.7-64-64-64h-5.7c3.7-10.2 5.7-21.1 5.7-32.6c0-48.7-36.1-88.9-83.1-95.2zm34.2 259.2c-6-4.6-14.3-4.4-20.1 .4l-133.4 112c-5.2 4.3-7 11.4-4.7 17.7s8.3 10.5 15 10.5h54.7l-42.5 89.1c-3.2 6.8-1.3 14.9 4.7 19.5s14.3 4.4 20.1-.4l133.4-112c5.1-4.3 7-11.4 4.7-17.7s-8.3-10.5-15-10.5H233.3l42.5-89.1c3.2-6.8 1.3-14.9-4.7-19.5z\"],\n    \"face-frown-open\": [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-186 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"],\n    \"hand-point-up\": [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"],\n    \"money-bill\": [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"],\n    \"bookmark\": [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"],\n    \"align-justify\": [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"],\n    \"umbrella-beach\": [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"],\n    \"helmet-un\": [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"bullseye\": [512, 512, [], \"f140\", \"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 64c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm32-144c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"bacon\": [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"],\n    \"hand-point-down\": [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"],\n    \"arrow-up-from-bracket\": [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"],\n    \"folder\": [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"],\n    \"file-waveform\": [384, 512, [\"file-medical-alt\"], \"f478\", \"M64 0C28.7 0 0 28.7 0 64V288H112c6.1 0 11.6 3.4 14.3 8.8L144 332.2l49.7-99.4c2.7-5.4 8.2-8.8 14.3-8.8s11.6 3.4 14.3 8.8L249.9 288H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8L208 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L102.1 320H0V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0z\"],\n    \"radiation\": [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 304c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"chart-simple\": [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"],\n    \"mars-stroke\": [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM320 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112z\"],\n    \"vial\": [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"],\n    \"gauge\": [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm-16 80c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM400 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"wand-magic-sparkles\": [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"],\n    \"e\": [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"pen-clip\": [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"],\n    \"bridge-circle-exclamation\": [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"user\": [448, 512, [128100, 62144], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"],\n    \"school-circle-check\": [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"],\n    \"dumpster\": [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"],\n    \"van-shuttle\": [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"building-user\": [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"],\n    \"square-caret-left\": [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],\n    \"highlighter\": [576, 512, [], \"f591\", \"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"],\n    \"key\": [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zm40-176c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"],\n    \"bullhorn\": [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"],\n    \"globe\": [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"],\n    \"synagogue\": [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"],\n    \"person-half-dress\": [320, 512, [], \"e548\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm8 256V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"],\n    \"road-bridge\": [640, 512, [], \"e563\", \"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"],\n    \"location-arrow\": [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"],\n    \"c\": [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"],\n    \"tablet-button\": [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"building-lock\": [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"pizza-slice\": [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 384c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"money-bill-wave\": [576, 512, [], \"f53a\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"],\n    \"chart-area\": [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"],\n    \"house-flag\": [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"],\n    \"person-circle-minus\": [576, 512, [], \"e540\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"],\n    \"ban\": [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"],\n    \"camera-rotate\": [512, 512, [], \"e0d8\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM384 256c0 8.8-7.2 16-16 16H291.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L307 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L185 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C193.4 172.7 224 160 256 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM128 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L205 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L327 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C318.6 403.3 288 416 256 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"],\n    \"spray-can-sparkles\": [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"],\n    \"star\": [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"],\n    \"repeat\": [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"],\n    \"cross\": [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"],\n    \"box\": [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"],\n    \"venus-mars\": [640, 512, [9892], \"f228\", \"M176 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S64 114.1 64 176s50.1 112 112 112zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"],\n    \"arrow-pointer\": [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"],\n    \"maximize\": [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32H24C10.7 32 0 42.7 0 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79L81 335 41 295c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312V456c0 13.3 10.7 24 24 24H168c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H424c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H280c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"],\n    \"charging-station\": [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"],\n    \"shapes\": [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512c70.7 0 128-57.3 128-128s-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128z\"],\n    \"shuffle\": [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"],\n    \"person-running\": [448, 512, [127939, \"running\"], \"f70c\", \"M336 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM141.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L153.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L254 299l30.9-82.4 5.1 12.3C305 264.7 339.9 288 378.7 288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H378.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L73.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM107.2 352H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L173 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L107.2 352z\"],\n    \"mobile-retro\": [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"],\n    \"grip-lines-vertical\": [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"],\n    \"spider\": [576, 512, [128375], \"f717\", \"M190.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L113.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4-80.4-26.8c-2.4-.8-4.3-2.7-5.1-5.1L78.8 128.4C74.6 115.8 61 109 48.4 113.2S29 131 33.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L148.1 256 87.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L33.2 368.4C29 381 35.8 394.6 48.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8-57.4 57.4c-15.6 15.6-20.6 39-12.7 59.7l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L192 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L462.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L427.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L430.4 15.4C425.6 3 411.8-3.2 399.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L368 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C226.6 100.7 208 128.2 208 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"],\n    \"hands-bound\": [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352H96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H256h64H448h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1V320v32H256V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8V96 32zm64 448v32H256V480h64v32H448V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H448 320 256 128 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"],\n    \"file-invoice-dollar\": [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"],\n    \"plane-circle-exclamation\": [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"x-ray\": [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v16H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H112c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v32H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H152c-8.9 0-17 4.9-21.2 12.7s-3.7 17.3 1.2 24.6l32 48C168.5 412 176 416 184 416H328c8 0 15.5-4 20-10.7l32-48c4.9-7.4 5.4-16.8 1.2-24.6S368.9 320 360 320H272V288h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V224H400c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V160h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 384c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm112-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"],\n    \"spell-check\": [640, 512, [], \"f891\", \"M144 0c-12.9 0-24.6 7.8-29.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L98.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C168.6 7.8 156.9 0 144 0zm18.7 160H125.3L144 115.2 162.7 160zM288 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H320c-17.7 0-32 14.3-32 32zm96 64H352V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H352V160zM598.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L384 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"],\n    \"slash\": [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"],\n    \"computer-mouse\": [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"],\n    \"arrow-right-to-bracket\": [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n    \"shop-slash\": [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z\"],\n    \"server\": [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"virus-covid-slash\": [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"],\n    \"shop-lock\": [640, 512, [], \"e4a5\", \"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"hourglass-start\": [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"],\n    \"blender-phone\": [576, 512, [], \"f6b6\", \"M192 352V48c0-26.5 21.5-48 48-48H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H192zm16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"],\n    \"building-wheat\": [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"],\n    \"person-breastfeeding\": [512, 512, [], \"e53a\", \"M256 160c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM468.8 382.8L405.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L59.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2l67.1-100.6c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM352 332c0-24.3-19.7-44-44-44s-44 19.7-44 44s19.7 44 44 44s44-19.7 44-44z\"],\n    \"right-to-bracket\": [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"],\n    \"venus\": [384, 512, [9792], \"f221\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"],\n    \"passport\": [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192c0-70.7-57.3-128-128-128S96 121.3 96 192s57.3 128 128 128s128-57.3 128-128zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"],\n    \"heart-pulse\": [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"],\n    \"people-carry-box\": [640, 512, [\"people-carry\"], \"f4ce\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM144 241.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm77.9 252.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"],\n    \"temperature-high\": [512, 512, [], \"f769\", \"M416 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 64c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"],\n    \"microchip\": [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"],\n    \"crown\": [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"],\n    \"weight-hanging\": [512, 512, [], \"f5cd\", \"M288 96c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm58.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"],\n    \"xmarks-lines\": [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"],\n    \"file-prescription\": [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"],\n    \"weight-scale\": [512, 512, [\"weight\"], \"f496\", \"M384 176c0 70.7-57.3 128-128 128s-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128zm7.8-112C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"],\n    \"user-group\": [640, 512, [128101, \"user-friends\"], \"f500\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"],\n    \"arrow-up-a-z\": [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"],\n    \"chess-knight\": [384, 512, [9822], \"f441\", \"M32 391.6V416H352V224c0-106-86-192-192-192H12.9C5.8 32 0 37.8 0 44.9c0 2 .5 4 1.4 5.8L16 80 9.4 86.6c-6 6-9.4 14.1-9.4 22.6V242.3c0 13.1 8 24.9 20.1 29.7l46.5 18.6c8.5 3.4 18 3 26.2-1.1l6.6-3.3c8-4 14-11.2 16.5-19.8l8.3-28.9c2.5-8.6 8.4-15.8 16.5-19.8L160 208v40.4c0 24.2-13.7 46.4-35.4 57.2L67.4 334.3C45.7 345.2 32 367.3 32 391.6zM72 148c0 11-9 20-20 20s-20-9-20-20s9-20 20-20s20 9 20 20zM352 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32z\"],\n    \"face-laugh-squint\": [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\n    \"wheelchair\": [576, 512, [], \"f193\", \"M224 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM152.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C75.1 225.1 32 283.5 32 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C272 440 234.8 464 192 464c-61.9 0-112-50.1-112-112c0-47.9 30.1-88.8 72.5-104.8zM291.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L434 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H314.2l-9.6-48H368c17.7 0 32-14.3 32-32s-14.3-32-32-32H291.8z\"],\n    \"circle-arrow-up\": [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"],\n    \"toggle-on\": [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zM384 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"],\n    \"person-walking\": [320, 512, [128694, \"walking\"], \"f554\", \"M256 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"],\n    \"l\": [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"],\n    \"fire\": [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z\"],\n    \"bed-pulse\": [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zM176 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"],\n    \"shuttle-space\": [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"],\n    \"face-laugh\": [512, 512, [\"laugh\"], \"f599\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"folder-open\": [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"],\n    \"heart-circle-plus\": [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"code-fork\": [448, 512, [], \"e13b\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"],\n    \"city\": [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"],\n    \"microphone-lines\": [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"],\n    \"pepper-hot\": [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"],\n    \"unlock\": [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"],\n    \"colon-sign\": [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.1 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"],\n    \"headset\": [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"],\n    \"store-slash\": [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z\"],\n    \"road-circle-xmark\": [640, 512, [], \"e566\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"],\n    \"user-minus\": [640, 512, [], \"f503\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n    \"mars-stroke-up\": [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"],\n    \"champagne-glasses\": [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M320 128V49.1L186.6 .3c-11.4-4.2-24 .9-29.5 11.7L71.8 181.1c-30.8 61-8 133.8 48.1 167.4l-28 77.4L32.1 403.9C19.7 399.4 6 405.8 1.4 418.3s1.9 26.3 14.3 30.8l164.6 60.3c12.4 4.5 26.1-1.9 30.6-14.4s-1.9-26.3-14.3-30.8l-59.9-21.9 28-77.3c68.1 11.6 135.7-32.8 150.1-103.6l5.1-24.8 5.1 24.8c14.5 70.8 82 115.2 150.1 103.6l28 77.3-59.9 21.9c-12.4 4.5-18.8 18.3-14.3 30.8s18.2 18.9 30.6 14.4l164.6-60.3c12.4-4.5 18.8-18.3 14.3-30.8s-18.2-18.9-30.6-14.4l-59.9 21.9-28-77.4c56.1-33.6 78.8-106.4 48.1-167.4L482.9 12C477.4 1.1 464.7-3.9 453.4 .3L320 49.1V128h0zm-35.7 44.4L153.9 124.6l36.3-71.9L300.6 93.1l-16.2 79.3zm71.3 0L339.4 93.1 449.8 52.7l36.3 71.9L355.7 172.4z\"],\n    \"clipboard\": [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"house-circle-exclamation\": [640, 512, [], \"e50a\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"file-arrow-up\": [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"],\n    \"wifi\": [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"bath\": [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"],\n    \"underline\": [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"],\n    \"user-pen\": [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"],\n    \"signature\": [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"],\n    \"stroopwafel\": [512, 512, [], \"f551\", \"M256 496c132.5 0 240-107.5 240-240S388.5 16 256 16S16 123.5 16 256s107.5 240 240 240zM235.3 76.7L256 97.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L278.6 120 324 165.4 357.4 132l-16.7-16.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L380 109.4l8.7-8.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-8.7 8.7 16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L380 154.6 346.6 188 392 233.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L414.6 256l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L392 278.6 346.6 324 380 357.4l16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L402.6 380l8.7 8.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-8.7-8.7-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L357.4 380 324 346.6 278.6 392l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L256 414.6l-20.7 20.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L233.4 392 188 346.6 154.6 380l16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L132 402.6l-8.7 8.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l8.7-8.7L92.7 363.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L132 357.4 165.4 324 120 278.6 99.3 299.3c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L97.4 256 76.7 235.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L120 233.4 165.4 188 132 154.6l-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L109.4 132l-8.7-8.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l8.7 8.7 16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L154.6 132 188 165.4 233.4 120 212.7 99.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zM210.6 188L256 233.4 301.4 188 256 142.6 210.6 188zm68 68L324 301.4 369.4 256 324 210.6 278.6 256zM256 278.6L210.6 324 256 369.4 301.4 324 256 278.6zM233.4 256L188 210.6 142.6 256 188 301.4 233.4 256z\"],\n    \"bold\": [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"],\n    \"anchor-lock\": [640, 512, [], \"e4ad\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"building-ngo\": [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"],\n    \"manat-sign\": [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"],\n    \"not-equal\": [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"],\n    \"border-top-left\": [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"map-location-dot\": [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"],\n    \"jedi\": [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"],\n    \"square-poll-vertical\": [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"],\n    \"mug-hot\": [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"],\n    \"car-battery\": [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"],\n    \"gift\": [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"],\n    \"dice-two\": [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"chess-queen\": [512, 512, [9819], \"f445\", \"M312 56c0-30.9-25.1-56-56-56s-56 25.1-56 56s25.1 56 56 56s56-25.1 56-56zM64 480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM34 169.4L9.2 185.8C3.5 189.7 0 196.2 0 203.1c0 3.2 .7 6.4 2.2 9.3L104 416H408L509.8 212.4c1.4-2.9 2.2-6.1 2.2-9.3c0-6.9-3.5-13.4-9.2-17.3L478 169.4c-8.2-5.4-19-4.4-26 2.6c-12.9 12.9-30.9 21.9-48 15.5c-17.9-6.7-28.1-20.1-32.8-35.8C367.5 139 357.3 128 344 128H328c-13.3 0-23.9 11.2-29.6 23.2C292.6 163.4 280.6 176 256 176s-36.6-12.6-42.4-24.8c-5.7-12-16.3-23.2-29.6-23.2H168c-13.3 0-23.5 11-27.3 23.7c-4.7 15.6-14.9 29.1-32.8 35.8c-17 6.4-35.1-2.7-48-15.5c-6.9-6.9-17.8-8-25.9-2.6z\"],\n    \"glasses\": [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"],\n    \"chess-board\": [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"],\n    \"building-circle-check\": [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"person-chalkboard\": [640, 512, [], \"e53d\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n    \"mars-stroke-right\": [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"],\n    \"hand-back-fist\": [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"],\n    \"square-caret-up\": [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\n    \"cloud-showers-water\": [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"chart-bar\": [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"hands-bubbles\": [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 160c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM128 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM357.1 157.5c-.3 .7-.7 1.5-1.1 2.2l-17.8 30.9c-11-12.6-27.4-19.8-44.4-19.1l20.7-35.8c6.6-11.5 21.3-15.4 32.8-8.8c10.8 6.2 14.9 19.5 9.9 30.6zm-173.6 47C112.3 227.2 64 293.3 64 368c0 1.5 0 3 .1 4.5C24.3 346.9 0 302.8 0 255.1V131.5c0-13.3 10.7-24 24-24s24 10.7 24 24l0 81.7L164.2 12c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-64 110.9c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9l80-138.6c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-80 138.6c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9L275 76c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-44 76.2-89.1 28.3zM448 483.5c0 12.4-9.4 22.6-21.5 23.9c-.8 .1-1.6 .1-2.5 .1H223.3 216c-22.1 0-42.9-6-60.7-16.5c3-8.5 4.7-17.6 4.7-27c0-38.7-27.5-71-64-78.4c0-.6 0-1.1 0-1.7c0-1.2-.1-2.5-.1-3.7c0-68 44-128.3 108.9-148.9l83.9-26.7c12.6-4 26.1 3 30.1 15.6s-3 26.1-15.6 30.1l-53.8 17.1H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8h96c13.3 0 24 10.7 24 24z\"],\n    \"less-than-equal\": [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"train\": [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 384c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"eye-low-vision\": [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"],\n    \"crow\": [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 112c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"sailboat\": [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"],\n    \"window-restore\": [512, 512, [], \"f2d2\", \"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"],\n    \"square-plus\": [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n    \"torii-gate\": [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V0L440.6 23.8C424.3 29.2 407.2 32 390 32H122c-17.2 0-34.3-2.8-50.6-8.2L0 0V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"],\n    \"frog\": [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"bucket\": [448, 512, [], \"e4cf\", \"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"],\n    \"image\": [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"microphone\": [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"],\n    \"cow\": [640, 512, [128004], \"f6c8\", \"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM592 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"],\n    \"caret-up\": [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"],\n    \"screwdriver\": [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"],\n    \"folder-closed\": [512, 512, [], \"e185\", \"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64z\"],\n    \"house-tsunami\": [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"],\n    \"square-nfi\": [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"],\n    \"arrow-up-from-ground-water\": [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"],\n    \"martini-glass\": [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"],\n    \"rotate-left\": [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"],\n    \"table-columns\": [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"],\n    \"lemon\": [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"],\n    \"head-side-mask\": [512, 512, [], \"e063\", \"M0 224.2c0-22.2 3.2-43.6 9.2-63.9l227 165.1C228.5 337.8 224 352.4 224 368V512H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm258.6 77.9L21 129.3C56.7 53 134.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 4.1-.6 8.1-1.6 11.9H304c-16.9 0-32.5 5.2-45.4 14.1zM352 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM256 512V368c0-26.5 21.5-48 48-48H512l-16 48H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.3l-10.7 32H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H464l-1.4 4.2c-8.7 26.1-33.2 43.8-60.7 43.8H256z\"],\n    \"handshake\": [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM96 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"],\n    \"gem\": [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"],\n    \"dolly\": [640, 512, [\"dolly-box\"], \"f472\", \"M32 32C32 14.3 46.3 0 64 0h72.9c27.5 0 52 17.6 60.7 43.8L289.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L384 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L136.9 64H64C46.3 64 32 49.7 32 32zM276.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L343 79.4l19.8 60.9 60.9-19.8L403.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L366.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L276.8 134.5z\"],\n    \"smoking\": [640, 512, [128684], \"f48d\", \"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"],\n    \"minimize\": [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"],\n    \"monument\": [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"snowplow\": [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm216 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm-56-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM200 424c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"angles-right\": [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\n    \"cannabis\": [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"],\n    \"circle-play\": [512, 512, [61469, \"play-circle\"], \"f144\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"],\n    \"tablets\": [640, 512, [], \"f490\", \"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"],\n    \"ethernet\": [512, 512, [], \"f796\", \"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"],\n    \"euro-sign\": [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"],\n    \"chair\": [448, 512, [129681], \"f6c0\", \"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"],\n    \"circle-check\": [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\n    \"circle-stop\": [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"],\n    \"compass-drafting\": [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"plate-wheat\": [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"],\n    \"icicles\": [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"],\n    \"person-shelter\": [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\n    \"neuter\": [384, 512, [9906], \"f22c\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"],\n    \"id-badge\": [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"marker\": [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"],\n    \"face-laugh-beam\": [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26H388.7c14.2 0 25.4 12.3 21.7 26C392 382 329.8 432 256 432s-136-50-154.4-118zm116-101.2l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\n    \"helicopter-symbol\": [512, 512, [], \"e502\", \"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"],\n    \"universal-access\": [512, 512, [], \"f29a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.5 169.9c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"],\n    \"circle-chevron-up\": [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"],\n    \"lari-sign\": [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"],\n    \"volcano\": [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"],\n    \"person-walking-dashed-line-arrow-right\": [640, 512, [], \"e553\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"],\n    \"sterling-sign\": [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v44.5c0 17.4-4.7 34.5-13.7 49.4L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1C136.1 390 144 361.5 144 332.5V288H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"],\n    \"viruses\": [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"square-person-confined\": [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM256 144c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM240 248c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"],\n    \"user-tie\": [448, 512, [], \"f508\", \"M224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 39.5-161.2c77.2 12 136.3 78.8 136.3 159.4c0 17-13.8 30.7-30.7 30.7H265.1 182.9 30.7C13.8 512 0 498.2 0 481.3c0-80.6 59.1-147.4 136.3-159.4l39.5 161.2 33.4-123.9z\"],\n    \"arrow-down-long\": [384, 512, [\"long-arrow-down\"], \"f175\", \"M224 402.7V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V402.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7z\"],\n    \"tent-arrow-down-to-line\": [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z\"],\n    \"certificate\": [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"],\n    \"reply-all\": [576, 512, [\"mail-reply-all\"], \"f122\", \"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"],\n    \"suitcase\": [512, 512, [129523], \"f0f2\", \"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"],\n    \"person-skating\": [448, 512, [\"skating\"], \"f7c5\", \"M448 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"],\n    \"filter-circle-dollar\": [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM408.8 335.4c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"],\n    \"camera-retro\": [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM344 304c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88z\"],\n    \"circle-arrow-down\": [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"],\n    \"file-import\": [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"],\n    \"square-arrow-up-right\": [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"],\n    \"box-open\": [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"],\n    \"scroll\": [576, 512, [128220], \"f70e\", \"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"],\n    \"spa\": [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"],\n    \"location-pin-lock\": [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm208-16c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"pause\": [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"],\n    \"hill-avalanche\": [640, 512, [], \"e507\", \"M471.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C433.2 261.3 448 236.4 448 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C248.3 46.6 229.9 32 208 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L471.7 401.9zM512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM100.3 87C75.1 61.8 32 79.7 32 115.3V432c0 44.2 35.8 80 80 80H428.7c35.6 0 53.5-43.1 28.3-68.3L100.3 87z\"],\n    \"temperature-empty\": [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"bomb\": [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"],\n    \"registered\": [512, 512, [174], \"f25d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"],\n    \"address-card\": [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"scale-unbalanced-flip\": [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zm396.3 211c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3L435.1 416H588.9L514.2 273.3zM512 224c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 498.6 562.2 512 512 512s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 251c8.7-16.6 25.9-27 44.7-27zM128 144c-.9 0-1.7 .5-2.2 1.3L51.1 288H204.9L130.2 145.3c-.4-.8-1.3-1.3-2.2-1.3zm44.7-21l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 370.6 178.2 384 128 384s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 123C92 106.4 109.2 96 128 96s36 10.4 44.7 27z\"],\n    \"subscript\": [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"],\n    \"diamond-turn-right\": [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"],\n    \"burst\": [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"],\n    \"house-laptop\": [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"],\n    \"face-tired\": [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\n    \"money-bills\": [640, 512, [], \"e1f3\", \"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM448 208c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"],\n    \"smog\": [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"],\n    \"crutch\": [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"],\n    \"font-awesome\": [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"],\n    \"cloud-arrow-up\": [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"],\n    \"palette\": [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"arrows-turn-right\": [512, 512, [], \"e4c0\", \"M329.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L370.7 160H160c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C32 153.3 89.3 96 160 96H370.7L329.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 416H128c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H274.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"],\n    \"vest\": [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"],\n    \"ferry\": [576, 512, [], \"e4ea\", \"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"arrows-down-to-people\": [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM184 296c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm312 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"],\n    \"seedling\": [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 64c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 78.3 364 32 448 32h32c17.7 0 32 14.3 32 32zM0 128c0-17.7 14.3-32 32-32H64c123.7 0 224 100.3 224 224v32 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C100.3 352 0 251.7 0 128z\"],\n    \"left-right\": [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"],\n    \"boxes-packing\": [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"],\n    \"circle-arrow-left\": [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"],\n    \"group-arrows-rotate\": [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"],\n    \"bowl-food\": [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"],\n    \"candy-cane\": [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"],\n    \"arrow-down-wide-short\": [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"],\n    \"cloud-bolt\": [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"],\n    \"text-slash\": [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l16-64c2.4-9.6 .2-19.7-5.8-27.5S553.9 32 544 32H376.1h-.3H192c-14.7 0-27.5 10-31 24.2l-9.3 37.3L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z\"],\n    \"face-smile-wink\": [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"],\n    \"file-word\": [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12.1 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"],\n    \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"],\n    \"arrows-left-right\": [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\n    \"house-lock\": [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32H384c-17.7 0-32-14.3-32-32V383.7c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32V480c0 17.7-14.3 32-32 32H96.1c-17.7 0-32-14.3-32-32V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\n    \"cloud-arrow-down\": [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"],\n    \"children\": [640, 512, [], \"e4e1\", \"M160 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm-8 256v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"],\n    \"chalkboard\": [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"],\n    \"user-large-slash\": [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H528L284.3 320z\"],\n    \"envelope-open\": [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"],\n    \"handshake-simple-slash\": [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"],\n    \"mattress-pillow\": [640, 512, [], \"e525\", \"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"],\n    \"guarani-sign\": [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"],\n    \"arrows-rotate\": [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"],\n    \"fire-extinguisher\": [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"cruzeiro-sign\": [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"],\n    \"greater-than-equal\": [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"],\n    \"shield-halved\": [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"],\n    \"book-atlas\": [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"],\n    \"virus\": [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM272 224c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"envelope-circle-check\": [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"layer-group\": [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"],\n    \"arrows-to-dot\": [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"archway\": [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"],\n    \"heart-circle-check\": [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"house-chimney-crack\": [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"],\n    \"file-zipper\": [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"],\n    \"square\": [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"],\n    \"martini-glass-empty\": [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"],\n    \"couch\": [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"],\n    \"cedi-sign\": [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"],\n    \"italic\": [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"],\n    \"church\": [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"],\n    \"comments-dollar\": [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"],\n    \"democrat\": [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480c61.4 0 101.6 24 126.2 50c12 12.6 19.9 25.2 24.9 34.9c2.5 4.8 4.3 9 5.5 12.1c.6 1.5 1.1 2.8 1.4 3.8c.2 .5 .3 .9 .4 1.3l.1 .5 .1 .2 0 .1 0 0c0 0 0 0-30.2 9.1l30.2-9.1c5.1 16.9-4.5 34.8-21.5 39.8c-16.8 5-34.5-4.4-39.7-21.1l0 0c-.1-.2-.2-.6-.5-1.2c-.5-1.3-1.4-3.4-2.8-6.1c-2.8-5.4-7.4-12.8-14.4-20.1c-4.2-4.4-9.4-9-15.8-13.2V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zm129.4-70.8c0 0 0 0 30.6-9.2l-30.6 9.2 0 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"],\n    \"z\": [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"],\n    \"person-skiing\": [576, 512, [9975, \"skiing\"], \"f7c9\", \"M508.7 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM34.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L264.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L321.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L44.9 301.3c-11.8-6.1-16.3-20.6-10.2-32.4zM150.9 65.6L169 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L183.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"],\n    \"road-lock\": [640, 512, [], \"e567\", \"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"a\": [448, 512, [97], \"41\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM296 320H152l72-172.8L296 320z\"],\n    \"temperature-arrow-down\": [512, 512, [\"temperature-down\"], \"e03f\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H448V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H352c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"],\n    \"feather-pointed\": [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"],\n    \"p\": [320, 512, [112], \"50\", \"M32 32H64h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 320 288 64C0 46.3 14.3 32 32 32zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"],\n    \"snowflake\": [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.7 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"],\n    \"newspaper\": [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H424c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm0 184c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16zM160 400c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"],\n    \"rectangle-ad\": [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256c-13.3 0-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"],\n    \"circle-arrow-right\": [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"],\n    \"filter-circle-xmark\": [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"],\n    \"locust\": [640, 512, [], \"e520\", \"M344 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H463.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L247.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L380 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L515.6 400H528c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C608 143 497 32 360 32H344zm50.5 168l17.1 40H365l29.5-40zm-87.7 38.1l-1.4 1.9H257.1l32.7-41.5 16.9 39.5zM120.8 240C89.4 240 64 265.4 64 296.8c0 15.5 6.3 30 16.9 40.4L158.7 240H120.8zM528 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"],\n    \"sort\": [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"],\n    \"list-ol\": [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"person-dress-burst\": [640, 512, [], \"e544\", \"M528 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"],\n    \"money-check-dollar\": [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164.1 160v6.3c6.6 1.2 16.6 3.2 21 4.4c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-3.8-1-17.4-3.7-21.7-4.3c-12.2-1.9-22.2-.3-28.6 2.6c-6.3 2.9-7.9 6.2-8.2 8.1c-.6 3.4 0 4.7 .1 5c.3 .5 1 1.8 3.6 3.5c6.1 4.2 15.7 7.2 29.9 11.4l.8 .2c12.1 3.7 28.3 8.5 40.4 17.4c6.7 4.9 13 11.4 16.9 20.5c4 9.1 4.8 19.1 3 29.4c-3.3 19-15.9 32-31.6 38.7c-4.9 2.1-10 3.6-15.4 4.6V352c0 11.1-9 20.1-20.1 20.1s-20.1-9-20.1-20.1v-6.4c-9.5-2.2-21.9-6.4-29.8-9.1c-1.7-.6-3.2-1.1-4.4-1.5c-10.5-3.5-16.1-14.8-12.7-25.3s14.8-16.1 25.3-12.7c2 .7 4.1 1.4 6.4 2.1l0 0 0 0c9.5 3.2 20.2 6.9 26.2 7.9c12.8 2 22.7 .7 28.8-1.9c5.5-2.3 7.4-5.3 8-8.8c.7-4 .1-5.9-.2-6.7c-.4-.9-1.3-2.2-3.7-4c-5.9-4.3-15.3-7.5-29.3-11.7l-2.2-.7c-11.7-3.5-27-8.1-38.6-16c-6.6-4.5-13.2-10.7-17.3-19.5c-4.2-9-5.2-18.8-3.4-29c3.2-18.3 16.2-30.9 31.1-37.7c5-2.3 10.3-4 15.9-5.1v-6c0-11.1 9-20.1 20.1-20.1s20.1 9 20.1 20.1z\"],\n    \"vector-square\": [448, 512, [], \"f5cb\", \"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"],\n    \"bread-slice\": [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"],\n    \"language\": [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"],\n    \"face-kiss-wink-heart\": [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm194.8-6.4c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"],\n    \"filter\": [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"],\n    \"question\": [320, 512, [10067, 10068, 61736], \"3f\", \"M96 96c-17.7 0-32 14.3-32 32s-14.3 32-32 32s-32-14.3-32-32C0 75 43 32 96 32h97c70.1 0 127 56.9 127 127c0 52.4-32.2 99.4-81 118.4l-63 24.5 0 18.1c0 17.7-14.3 32-32 32s-32-14.3-32-32V301.9c0-26.4 16.2-50.1 40.8-59.6l63-24.5C240 208.3 256 185 256 159c0-34.8-28.2-63-63-63H96zm48 384c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"],\n    \"file-signature\": [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"],\n    \"up-down-left-right\": [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"],\n    \"house-chimney-user\": [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 288c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"],\n    \"hand-holding-heart\": [576, 512, [], \"f4be\", \"M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"],\n    \"puzzle-piece\": [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"],\n    \"money-check\": [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"],\n    \"star-half-stroke\": [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"],\n    \"code\": [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"],\n    \"whiskey-glass\": [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"],\n    \"building-circle-exclamation\": [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"magnifying-glass-chart\": [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n    \"arrow-up-right-from-square\": [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"],\n    \"cubes-stacked\": [448, 512, [], \"e4e6\", \"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"],\n    \"won-sign\": [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"],\n    \"virus-covid\": [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm64 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"austral-sign\": [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"],\n    \"f\": [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"leaf\": [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"],\n    \"road\": [576, 512, [128739], \"f018\", \"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n    \"taxi\": [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm352-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"person-circle-plus\": [576, 512, [], \"e541\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"],\n    \"chart-pie\": [576, 512, [\"pie-chart\"], \"f200\", \"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"],\n    \"bolt-lightning\": [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"],\n    \"sack-xmark\": [512, 512, [], \"e56a\", \"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"],\n    \"file-excel\": [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"],\n    \"file-contract\": [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"],\n    \"fish-fins\": [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM448 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"building-flag\": [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"],\n    \"face-grin-beam\": [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zm-166.2-89l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\n    \"object-ungroup\": [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"],\n    \"poop\": [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"],\n    \"location-pin\": [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"],\n    \"kaaba\": [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"],\n    \"toilet-paper\": [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm80-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"helmet-safety\": [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"],\n    \"eject\": [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"],\n    \"circle-right\": [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"],\n    \"plane-circle-check\": [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"face-rolling-eyes\": [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"],\n    \"object-group\": [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"],\n    \"chart-line\": [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"],\n    \"mask-ventilator\": [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n    \"arrow-right\": [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"],\n    \"signs-post\": [512, 512, [\"map-signs\"], \"f277\", \"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n    \"cash-register\": [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-216c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm72 24c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24z\"],\n    \"person-circle-question\": [576, 512, [], \"e542\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"],\n    \"h\": [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"],\n    \"tarp\": [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"screwdriver-wrench\": [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM104 432c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"arrows-to-eye\": [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"],\n    \"plug-circle-bolt\": [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"],\n    \"heart\": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"],\n    \"mars-and-venus\": [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"],\n    \"house-user\": [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"],\n    \"dumpster-fire\": [640, 512, [], \"f794\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z\"],\n    \"house-crack\": [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"],\n    \"martini-glass-citrus\": [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"],\n    \"face-surprise\": [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM256 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"],\n    \"bottle-water\": [256, 512, [], \"e4c5\", \"M88 0h80c13.3 0 24 10.7 24 24V64H64V24C64 10.7 74.7 0 88 0zM0 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.2 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C8.5 415.4 0 400.7 0 384s8.5-31.4 21.5-40C8.5 335.4 0 320.7 0 304s8.5-31.4 21.5-40C8.5 255.4 0 240.7 0 224c0-15.6 7.4-29.4 18.9-38.2C7.5 178.7 0 166.1 0 151.7zM64 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"],\n    \"circle-pause\": [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n    \"toilet-paper-slash\": [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6L66.5 148.4zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"],\n    \"apple-whole\": [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"],\n    \"kitchen-set\": [576, 512, [], \"e51a\", \"M240 144c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 208c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm256 32c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n    \"r\": [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H32zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\n    \"temperature-quarter\": [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"],\n    \"cube\": [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"],\n    \"bitcoin-sign\": [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"],\n    \"shield-dog\": [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"solar-panel\": [640, 512, [], \"f5ba\", \"M96 0C80.7 0 67.6 10.8 64.6 25.7l-64 320c-1.9 9.4 .6 19.1 6.6 26.6S22.4 384 32 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H608c9.6 0 18.7-4.3 24.7-11.7s8.5-17.2 6.6-26.6l-64-320C572.4 10.8 559.3 0 544 0H96zm5.4 168L122.2 64h90.4L202.3 168H101.4zm-9.6 48H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104H235.3l10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l20.8 104zm-149.1 0h-139L260.9 64H379.1l10.4 104z\"],\n    \"lock-open\": [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"],\n    \"elevator\": [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 192c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zM400 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"],\n    \"money-bill-transfer\": [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"],\n    \"money-bill-trend-up\": [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"house-flood-water-circle-arrow-right\": [640, 512, [], \"e50f\", \"M288 144C288 64.5 223.5 0 144 0S0 64.5 0 144s64.5 144 144 144s144-64.5 144-144zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"],\n    \"square-poll-horizontal\": [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"],\n    \"circle\": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512z\"],\n    \"backward-fast\": [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"],\n    \"recycle\": [576, 512, [9842, 9850, 9851], \"f1b8\", \"M206.7 45.1C224.2 17 255 0 288 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L315 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM461.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L352 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L68 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L214 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3-51.5 82.4c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0c-53.1 0-96.1-43.2-95.8-96.4c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"],\n    \"user-astronaut\": [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"plane-slash\": [640, 512, [], \"e069\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1zm2.7 123.6C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3L41.5 128.7z\"],\n    \"trademark\": [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"],\n    \"basketball\": [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z\"],\n    \"satellite-dish\": [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"circle-up\": [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H144c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"mobile-screen-button\": [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM304 64H80V384H304V64z\"],\n    \"volume-high\": [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"],\n    \"users-rays\": [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"wallet\": [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 336c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"clipboard-check\": [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\n    \"file-audio\": [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"],\n    \"burger\": [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm240 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zM272 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"],\n    \"wrench\": [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"bugs\": [640, 512, [], \"e4d0\", \"M196.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L160 71.7 133.9 14.1C128.4 2 114.1-3.3 102.1 2.1S84.7 21.9 90.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8s-21.4 15.2-18.8 28.2l8 40C42.7 175.9 52.6 184 64 184H96v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C114.7 274.6 135.8 288 160 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L224 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L236.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM528 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L464.8 250c-12.3 1-24.2 5.6-34.1 13.3L416 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L391 322.7 353.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L535.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L598.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"],\n    \"rupee-sign\": [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s25-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.4-13.4-6.6-28-4.4-43.2c8.5-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"],\n    \"file-image\": [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM128 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm88 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"],\n    \"circle-question\": [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"plane-departure\": [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"],\n    \"handshake-slash\": [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"],\n    \"book-bookmark\": [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"],\n    \"code-branch\": [448, 512, [], \"f126\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM80 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"hat-cowboy\": [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"],\n    \"bridge\": [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"],\n    \"phone-flip\": [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"],\n    \"truck-front\": [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"cat\": [512, 512, [128008], \"f6be\", \"M288 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L248 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1C10.5 157.6-1.9 141.6 .2 124s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C325.3 164 320 146.6 320 128v0V32 12 10.7C320 4.8 324.7 .1 330.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L352 21.3l27.2 36.3L384 64h64l4.8-6.4L480 21.3 492.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C507.3 .1 512 4.8 512 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM400 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"anchor-circle-exclamation\": [640, 512, [], \"e4ab\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"truck-field\": [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"],\n    \"route\": [512, 512, [], \"f4d7\", \"M416 256s96-96 96-160c0-53-43-96-96-96s-96 43-96 96c0 29.4 20.2 65.5 42.1 96H320c-53 0-96 43-96 96s43 96 96 96h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H188.6c-6.2 9.6-12.6 18.8-19 27.2c-10.7 14.2-21.3 26.9-30 36.8H416c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h96zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM149.9 448c21.9-30.5 42.1-66.6 42.1-96c0-53-43-96-96-96s-96 43-96 96c0 64 96 160 96 160s3.5-3.5 9.2-9.6c.4-.4 .7-.8 1.1-1.2c3.3-3.5 7.1-7.8 11.4-12.8c.2-.2 .4-.4 .6-.6c9.4-10.8 20.7-24.6 31.6-39.8zM96 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"clipboard-question\": [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n    \"panorama\": [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM160 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm208 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"],\n    \"comment-medical\": [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"],\n    \"teeth-open\": [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"],\n    \"file-circle-minus\": [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"],\n    \"tags\": [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"wine-glass\": [320, 512, [127863], \"f4e3\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM88.1 128l5.3-64H226.6l5.3 64H88.1z\"],\n    \"forward-fast\": [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"],\n    \"face-meh-blank\": [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM208.4 208c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm128 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"square-parking\": [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"],\n    \"house-signal\": [576, 512, [], \"e012\", \"M314.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c9.7 8.9 12.9 22.9 8.1 35.2S557.2 256 544 256H512V368c0 26.5-21.5 48-48 48H278.1C259.6 350.8 216.8 295.9 160 261.7V256h-9.9c-16.5-9-34-16.2-52.3-21.6c-4.1-12-.8-25.3 8.5-34l208-192zM304 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H304zM24 256c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM0 376c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z\"],\n    \"bars-progress\": [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"],\n    \"faucet-drip\": [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"],\n    \"cart-flatbed\": [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"],\n    \"ban-smoking\": [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"],\n    \"terminal\": [640, 512, [], \"f120\", \"M41.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 41.4 86.6zM288 416H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"mobile-button\": [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"house-medical-flag\": [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"],\n    \"basket-shopping\": [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"tape\": [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm64-96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"bus-simple\": [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"eye\": [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z\"],\n    \"face-sad-cry\": [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\n    \"audio-description\": [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"],\n    \"person-military-to-person\": [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"],\n    \"file-shield\": [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"],\n    \"user-slash\": [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"],\n    \"pen\": [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"],\n    \"tower-observation\": [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"],\n    \"file-code\": [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n    \"signal\": [576, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M544 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM416 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM320 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM160 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM64 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n    \"bus\": [512, 512, [128653], \"f207\", \"M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z\"],\n    \"heart-circle-xmark\": [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"house-chimney\": [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"],\n    \"window-maximize\": [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"face-frown\": [512, 512, [9785, \"frown\"], \"f119\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"prescription\": [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n    \"shop\": [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"],\n    \"floppy-disk\": [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"],\n    \"vihara\": [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"],\n    \"scale-unbalanced\": [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zm-396.3 211c.4-.8 1.3-1.3 2.2-1.3s1.7 .5 2.2 1.3L204.9 416H51.1l74.7-142.7zM128 224c-18.8 0-36 10.4-44.7 27L5.5 399.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C45.1 498.6 77.8 512 128 512s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L172.7 251c-8.7-16.6-25.9-27-44.7-27zm384-80c.9 0 1.7 .5 2.2 1.3L588.9 288H435.1l74.7-142.7c.4-.8 1.3-1.3 2.2-1.3zm-44.7-21L389.5 271.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C429.1 370.6 461.8 384 512 384s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L556.7 123C548 106.4 530.8 96 512 96s-36 10.4-44.7 27z\"],\n    \"sort-up\": [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"],\n    \"comment-dots\": [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"plant-wilt\": [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"],\n    \"diamond\": [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"],\n    \"face-grin-squint\": [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\n    \"hand-holding-dollar\": [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"],\n    \"bacterium\": [576, 512, [], \"e05a\", \"M455.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L228 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L135 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L247 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L403 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L471 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zm-331 332.7l0 0L176 368l-51.9-4.7zM240 320c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"hand-pointer\": [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v32 64c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"],\n    \"drum-steelpan\": [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"],\n    \"hand-scissors\": [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"],\n    \"hands-praying\": [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"],\n    \"arrow-rotate-right\": [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"],\n    \"biohazard\": [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM336 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"],\n    \"location-crosshairs\": [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128zm128 80c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"],\n    \"mars-double\": [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM288 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zm80 176c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"],\n    \"child-dress\": [320, 512, [], \"e59c\", \"M224 64c0-35.3-28.7-64-64-64S96 28.7 96 64s28.7 64 64 64s64-28.7 64-64zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"],\n    \"users-between-lines\": [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM211.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zM563.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM321.6 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"],\n    \"lungs-virus\": [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"face-grin-tears\": [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"],\n    \"phone\": [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"],\n    \"calendar-xmark\": [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"],\n    \"child-reaching\": [384, 512, [], \"e59d\", \"M256 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"],\n    \"head-side-virus\": [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM240 80c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C161.5 168.1 145 208 112 208c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C184.1 302.5 224 319 224 352c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C318.5 279.9 335 240 368 240c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C295.9 145.5 256 129 256 96c0-8.8-7.2-16-16-16zM216 224c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm72 32c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"],\n    \"user-gear\": [640, 512, [\"user-cog\"], \"f4fe\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5c0-26.5-21.5-48-48.1-48s-48.1 21.5-48.1 48s21.5 48 48.1 48s48.1-21.5 48.1-48z\"],\n    \"arrow-up-1-9\": [576, 512, [\"sort-numeric-up\"], \"f163\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 64c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H384c-17.7 0-32-14.3-32-32zm93.7 300.9c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"],\n    \"door-closed\": [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"shield-virus\": [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"dice-six\": [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"mosquito-net\": [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"],\n    \"bridge-water\": [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"person-booth\": [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80c0-26.5-21.5-48-48-48S16 53.5 16 80s21.5 48 48 48s48-21.5 48-48zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"],\n    \"text-width\": [448, 512, [], \"f035\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H224 32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"],\n    \"hat-wizard\": [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"pen-fancy\": [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"],\n    \"person-digging\": [576, 512, [\"digging\"], \"f85e\", \"M304 64c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"],\n    \"trash\": [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"],\n    \"gauge-simple\": [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n    \"book-medical\": [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"],\n    \"poo\": [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm0 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"],\n    \"quote-right\": [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"],\n    \"shirt\": [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"],\n    \"cubes\": [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"],\n    \"divide\": [448, 512, [10135, 247], \"f529\", \"M272 96c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 320c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"],\n    \"tenge-sign\": [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"],\n    \"headphones\": [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"],\n    \"hands-holding\": [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"],\n    \"hands-clapping\": [576, 512, [], \"e1a8\", \"M368 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM167 119c9.4-9.4 24.6-9.4 33.9 0L324.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L39 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L87 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM465.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM456.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"],\n    \"republican\": [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"],\n    \"arrow-left\": [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\n    \"person-circle-xmark\": [576, 512, [], \"e543\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"],\n    \"ruler\": [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"],\n    \"align-left\": [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\n    \"dice-d6\": [448, 512, [], \"f6d1\", \"M216.3 2c4.8-2.6 10.5-2.6 15.3 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L216.3 2zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L8.3 414C3.2 411.2 0 405.9 0 400V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V400c0 5.9-3.2 11.2-8.3 14l-176 96c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"],\n    \"restroom\": [640, 512, [], \"f7bd\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM120 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM560 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],\n    \"j\": [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"],\n    \"users-viewfinder\": [640, 512, [], \"e595\", \"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80-32c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"],\n    \"file-video\": [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"],\n    \"up-right-from-square\": [512, 512, [\"external-link-alt\"], \"f35d\", \"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"],\n    \"table-cells\": [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"],\n    \"file-pdf\": [384, 512, [], \"f1c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\"],\n    \"book-bible\": [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"],\n    \"o\": [448, 512, [111], \"4f\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160s160-71.6 160-160s-71.6-160-160-160zM0 256C0 132.3 100.3 32 224 32s224 100.3 224 224s-100.3 224-224 224S0 379.7 0 256z\"],\n    \"suitcase-medical\": [512, 512, [\"medkit\"], \"f0fa\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"],\n    \"user-secret\": [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.7 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"],\n    \"otter\": [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 160c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm144-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"],\n    \"person-dress\": [320, 512, [\"female\"], \"f182\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"],\n    \"comment-dollar\": [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"],\n    \"business-time\": [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"],\n    \"table-cells-large\": [512, 512, [\"th-large\"], \"f009\", \"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],\n    \"book-tanakh\": [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"],\n    \"phone-volume\": [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"],\n    \"hat-cowboy-side\": [640, 512, [], \"f8c1\", \"M463.2 71.3c-2.4-12.8-9.8-24.1-20.7-31.3s-24.2-9.7-36.9-6.8l-216 48c-19.8 4.4-34.7 20.8-37.2 40.9l-8.8 70.6c5.3-.4 10.8-.7 16.5-.7c82.9 0 141.9 55.3 197.5 107.5l0 0c3.1 3 6.3 5.9 9.4 8.8C427.1 364.5 486.9 416 576 416c0 0 64 0 64-48c0-96-112-128-144-128h-1.6L463.2 71.3zM576 448c-102.9 0-171.1-60.5-230.9-116.3l-6.5-6C279.9 270.8 229.9 224 160 224c-57.8 0-97.4 28.6-123.1 63.5C10.7 323 0 363.8 0 384c0 35.3 28.7 64 64 64H576z\"],\n    \"clipboard-user\": [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"],\n    \"child\": [320, 512, [], \"f1ae\", \"M224 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"],\n    \"lira-sign\": [384, 512, [8356], \"f195\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V192H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v32H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H78c-2.2 10.5-6.1 20.6-11.7 29.9L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"],\n    \"satellite\": [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"],\n    \"plane-lock\": [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\n    \"tag\": [448, 512, [127991], \"f02b\", \"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"comment\": [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"],\n    \"cake-candles\": [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"],\n    \"envelope\": [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"],\n    \"angles-up\": [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"],\n    \"paperclip\": [512, 512, [128206], \"f0c6\", \"M396.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"],\n    \"arrow-right-to-city\": [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"],\n    \"ribbon\": [448, 512, [127895], \"f4d6\", \"M224 96c39.5 0 66.8 12.2 81.9 21.5L245.6 184l79.3 87.4 36.3-40c14.7-16.2 22.8-37.3 22.8-59.1v-27c0-15.6-4.1-30.8-12-44.3L337.7 42C326.4 22.7 307 6.8 282.1 3.5C267.8 1.6 248.4 0 224 0s-43.8 1.6-58 3.5C141 6.8 121.7 22.7 110.4 42L76 101c-7.8 13.4-12 28.7-12 44.3v27c0 21.9 8.1 42.9 22.8 59.1l57.9 63.8L224 382.6 334.2 504.1c6.4 7 16.3 9.7 25.4 6.6l72-24c7.7-2.6 13.6-8.8 15.6-16.7s0-16.2-5.4-22.2L303.3 295.2 224 207.8l-81.9-90.3C157.3 108.2 184.5 96 224 96zM202.4 406.5L123.2 319 6.3 447.9c-5.4 6-7.5 14.4-5.4 22.2s7.9 14.1 15.6 16.7l72 24c9 3 19 .4 25.4-6.6l88.6-97.7z\"],\n    \"lungs\": [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"],\n    \"arrow-up-9-1\": [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 320c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V352H384c-17.7 0-32-14.3-32-32zm93.7-171.1c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"],\n    \"litecoin-sign\": [448, 512, [], \"e1d3\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V213.6L55.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L96 280.1V448c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L160 195.3V64z\"],\n    \"border-none\": [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm96 64c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-448c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM224 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-320c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 32C14.3 32 0 46.3 0 64S14.3 96 32 96s32-14.3 32-32s-14.3-32-32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM224 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM416 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32z\"],\n    \"circle-nodes\": [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"],\n    \"parachute-box\": [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"],\n    \"indent\": [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"],\n    \"truck-field-un\": [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM208 384c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"hourglass\": [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"],\n    \"mountain\": [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.7 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5 208 288l48-64h65z\"],\n    \"user-doctor\": [448, 512, [\"user-md\"], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"circle-info\": [512, 512, [\"info-circle\"], \"f05a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"cloud-meatball\": [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm416 0c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"camera\": [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 384c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"],\n    \"square-virus\": [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm88 32c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"],\n    \"meteor\": [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128s-57.3 128-128 128zm0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm16 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"car-on\": [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 392c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm280-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"],\n    \"sleigh\": [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"],\n    \"arrow-down-1-9\": [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M352 64c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM445.7 364.9c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"],\n    \"hand-holding-droplet\": [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"],\n    \"water\": [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"calendar-check\": [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"],\n    \"braille\": [640, 512, [], \"f2a1\", \"M128 96c0 35.3-28.7 64-64 64S0 131.3 0 96S28.7 32 64 32s64 28.7 64 64zm96 176c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM80 416c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM224 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM480 96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM576 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM416 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64z\"],\n    \"prescription-bottle-medical\": [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"],\n    \"landmark\": [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"],\n    \"truck\": [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"crosshairs\": [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"person-cane\": [448, 512, [], \"e53c\", \"M272 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"],\n    \"tent\": [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"],\n    \"vest-patches\": [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n    \"check-double\": [512, 512, [], \"f560\", \"M374.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 86.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"],\n    \"arrow-down-a-z\": [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"],\n    \"money-bill-wheat\": [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"cookie\": [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"arrow-rotate-left\": [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"],\n    \"hard-drive\": [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"face-grin-squint-tears\": [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-18.5 5-38.8 8.3-50.9 10c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.2-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"],\n    \"dumbbell\": [640, 512, [], \"f44b\", \"M112 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32V224v64V416c0 17.7-14.3 32-32 32H144c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32h48V96zm416 0v32h48c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H528v32c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"],\n    \"rectangle-list\": [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32-128c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"],\n    \"tarp-droplet\": [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"house-medical-circle-check\": [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm320 0c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\n    \"person-skiing-nordic\": [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"],\n    \"calendar-plus\": [448, 512, [], \"f271\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"],\n    \"plane-arrival\": [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160-80c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"circle-left\": [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"],\n    \"train-subway\": [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM128 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm224 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"chart-gantt\": [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"indian-rupee-sign\": [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"],\n    \"crop-simple\": [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"],\n    \"money-bill-1\": [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM400 256c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"],\n    \"left-long\": [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 98c-8.8-3.8-19-2-26 4.6l-144 136C2.7 243.1 0 249.4 0 256s2.7 12.9 7.5 17.4l144 136c7 6.6 17.2 8.4 26 4.6s14.5-12.5 14.5-22l0-88 288 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-288 0 0-88c0-9.6-5.7-18.2-14.5-22z\"],\n    \"dna\": [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"],\n    \"virus-slash\": [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM107.5 224H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7L144.7 210c-9.5 8.5-22.2 14-37.2 14z\"],\n    \"minus\": [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"],\n    \"chess\": [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H59.4C48.7 96 40 104.7 40 115.4c0 3 .7 5.9 2 8.7c6 12.4 23.8 50.8 32.8 83.9H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h7.7C78 302.9 69.4 352.7 63.1 384H192.9c-6.4-31.3-14.9-81.1-16.6-128H184c13.3 0 24-10.7 24-24s-10.7-24-24-24h-2.8c9-33.2 26.8-71.5 32.8-83.9c1.3-2.7 2-5.6 2-8.7c0-10.7-8.7-19.4-19.4-19.4H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM25.2 451.4l-8.8 4.4C6.3 460.8 0 471.1 0 482.3C0 498.7 13.3 512 29.7 512H226.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H56.4C42.9 416 32 426.9 32 440.4c0 4.6-2.6 8.9-6.8 10.9zm279.2 4.4c-10.1 5-16.4 15.3-16.4 26.5c0 16.4 13.3 29.7 29.7 29.7H482.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H344.4c-13.5 0-24.4 10.9-24.4 24.4c0 4.6-2.6 8.9-6.8 10.9l-8.8 4.4zM304 259.9c0 7.8 2.8 15.3 8 21.1l18.9 21.4c5.4 6.1 8.2 14 8 22.1L337 384H462.5l-2.7-58.7c-.4-8.5 2.6-16.9 8.4-23.1l19.3-21c5.4-5.9 8.5-13.6 8.5-21.7V200c0-4.4-3.6-8-8-8H464c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H376c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v59.9zM392 336c-4.4 0-8-3.6-8-8V304c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 4.4-3.6 8-8 8H392z\"],\n    \"arrow-left-long\": [512, 512, [\"long-arrow-left\"], \"f177\", \"M109.3 288L480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288z\"],\n    \"plug-circle-check\": [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"street-view\": [512, 512, [], \"f21d\", \"M320 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"],\n    \"franc-sign\": [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"],\n    \"volume-off\": [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"],\n    \"hands-asl-interpreting\": [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"],\n    \"gear\": [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"],\n    \"droplet-slash\": [640, 512, [\"tint-slash\"], \"f5c7\", \"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.1 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0h-1.8c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"mosque\": [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"],\n    \"mosquito\": [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"],\n    \"star-of-david\": [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"],\n    \"person-military-rifle\": [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"cart-shopping\": [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n    \"vials\": [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"],\n    \"plug-circle-plus\": [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"place-of-worship\": [640, 512, [], \"f67f\", \"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"],\n    \"grip-vertical\": [320, 512, [], \"f58e\", \"M40 352c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zm192 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 320l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40zM232 192c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 160l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 48c0 22.1 17.9 40 40 40zM232 32c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0z\"],\n    \"arrow-turn-up\": [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"],\n    \"u\": [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"],\n    \"square-root-variable\": [576, 512, [\"square-root-alt\"], \"f698\", \"M289 24.2C292.5 10 305.3 0 320 0H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H345L239 487.8c-3.2 13-14.2 22.6-27.6 24s-26.1-5.5-32.1-17.5L76.2 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c12.1 0 23.2 6.8 28.6 17.7l73.3 146.6L289 24.2zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"],\n    \"clock\": [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n    \"backward-step\": [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"],\n    \"pallet\": [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"],\n    \"faucet\": [512, 512, [], \"e005\", \"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"],\n    \"baseball-bat-ball\": [640, 512, [], \"f432\", \"M550.3 0c-10.9 0-21.4 3.4-30.2 9.8L279.7 184.6c-13.9 10.1-26.8 21.4-38.7 33.8L138.7 325.3c-9.2 9.6-19.3 18.4-30.1 26.3L79.3 372.9c1.3 1.5 2.6 3 3.9 4.7l48 64c1.6 2.2 3.1 4.4 4.4 6.6l27.3-19.9c11.6-8.4 24-15.8 37-21.8l135.3-63.1c16.7-7.8 32.7-17.2 47.6-28.1L619 143.6c13.2-9.6 21-24.9 21-41.2c0-11-3.6-21.8-10.2-30.6L609.6 44.8 591.4 20.6C581.7 7.6 566.5 0 550.3 0zM496 512c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM57.6 396.8c-10.6-14.1-30.7-17-44.8-6.4s-17 30.7-6.4 44.8l48 64c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-48-64z\"],\n    \"s\": [384, 512, [115], \"53\", \"M131.1 105.4c-20.1 8.6-30.8 21.8-33.9 39.4c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3c-16.8-5.6-25.8-23.7-20.3-40.5s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5-31.5-5.5c7.3-42.5 35.3-71.7 71.8-87.3c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.1 22.7c-11.2-3-48.2-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"],\n    \"timeline\": [640, 512, [], \"e29c\", \"M128 120c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32 49.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM536 96c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM320 440c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"keyboard\": [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"],\n    \"caret-down\": [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"],\n    \"house-chimney-medical\": [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"],\n    \"temperature-three-quarters\": [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V152c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"],\n    \"mobile-screen\": [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"],\n    \"plane-up\": [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"],\n    \"piggy-bank\": [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h32l-18.8 75.1c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"],\n    \"battery-half\": [576, 512, [\"battery-3\"], \"f242\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm208 32V320H96V192H288z\"],\n    \"mountain-city\": [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"],\n    \"coins\": [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"],\n    \"khanda\": [576, 512, [9772], \"f66d\", \"M277.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C376.9 97.4 400 134 400 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L304 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L433.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L304 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C229.8 463.3 219.9 472 208 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L144 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C58.4 324.5 32 277.1 32 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29c4.8-3.2 8.9-5.7 11.8-7.3c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C137.2 119 128 149.5 128 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L272 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C199.1 254.6 176 218 176 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM252.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C259 210.2 264 190.9 264 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C317 141.8 312 161.1 312 176s5 34.2 11.8 53.1z\"],\n    \"sliders\": [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0-17.7 14.3-32 32-32l54.7 0c12.3-28.3 40.5-48 73.3-48s61 19.7 73.3 48L480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-246.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 448c-17.7 0-32-14.3-32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-32-80c32.8 0 61 19.7 73.3 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-54.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l246.7 0c12.3-28.3 40.5-48 73.3-48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm73.3 0L480 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-214.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 128C14.3 128 0 113.7 0 96S14.3 64 32 64l86.7 0C131 35.7 159.2 16 192 16s61 19.7 73.3 48z\"],\n    \"folder-tree\": [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"],\n    \"network-wired\": [640, 512, [], \"f6ff\", \"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"],\n    \"map-pin\": [320, 512, [128205], \"f276\", \"M320 144c0 79.5-64.5 144-144 144S32 223.5 32 144S96.5 0 176 0s144 64.5 144 144zM176 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM144 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],\n    \"hamsa\": [512, 512, [], \"f665\", \"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"cent-sign\": [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"],\n    \"flask\": [448, 512, [], \"f0c3\", \"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"],\n    \"person-pregnant\": [384, 512, [], \"e31e\", \"M192 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"],\n    \"wand-sparkles\": [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM224 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"],\n    \"ellipsis-vertical\": [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z\"],\n    \"ticket\": [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128v80c26.5 0 48 21.5 48 48s-21.5 48-48 48v80c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V304c-26.5 0-48-21.5-48-48s21.5-48 48-48V128c0-35.3-28.7-64-64-64H64zm64 96l0 192H448V160H128zm-32 0c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"],\n    \"power-off\": [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"],\n    \"right-long\": [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 88L32 208c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l288 0 0 88c0 9.6 5.7 18.2 14.5 22z\"],\n    \"flag-usa\": [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1v36.1l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9v32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3v33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.4-23.7-122.5-13.4L64 400v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V416 345.5 312.8 249.5 216.8 153.5 120.8 64 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n    \"laptop-file\": [640, 512, [], \"e51d\", \"M192 0H48C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H162.7c6.6-18.6 24.4-32 45.3-32V272c0-44.2 35.8-80 80-80h32V128H224c-17.7 0-32-14.3-32-32V0zm96 224c-26.5 0-48 21.5-48 48v16 96 32H208c-8.8 0-16 7.2-16 16v16c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V432c0-8.8-7.2-16-16-16H592V288c0-35.3-28.7-64-64-64H320 304 288zm32 64H528V416H304V288h16zM224 0V96h96L224 0z\"],\n    \"tty\": [512, 512, [\"teletype\"], \"f1e4\", \"M472.7 188.8c-8.5 13.8-26.8 19.6-42.7 13.6L356 174.2c-14-5.3-22.5-18.5-21-32.4l4.6-42.6c-54.1-17.4-113.2-17.4-167.3 0l4.6 42.6c1.5 13.9-7 27.1-21 32.4L82 202.4c-15.9 6.1-34.2 .3-42.7-13.6L4.5 132.5c-7.7-12.4-5.4-28 5.5-38.1c135.9-125.8 356.1-125.8 492 0c10.9 10.1 13.2 25.7 5.5 38.1l-34.8 56.4zM32 272c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272zm0 192c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V464zM96 352h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H384c-8.8 0-16-7.2-16-16V368zM336 256h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V272zm16 176h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V464c0-8.8 7.2-16 16-16zM128 464c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V464z\"],\n    \"diagram-next\": [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"],\n    \"person-rifle\": [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM320 80c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"],\n    \"house-medical-circle-exclamation\": [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\n    \"closed-captioning\": [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"],\n    \"person-hiking\": [384, 512, [\"hiking\"], \"f6ec\", \"M288 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM243.3 230.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"],\n    \"venus-double\": [640, 512, [9890], \"f226\", \"M192 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S80 114.1 80 176s50.1 112 112 112zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"],\n    \"images\": [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM256 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"],\n    \"calculator\": [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zM64 224c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM160 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zM288 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM256 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32z\"],\n    \"people-pulling\": [576, 512, [], \"e535\", \"M80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"],\n    \"n\": [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V448c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 50.5 8.4 38.5 21.1 33.9z\"],\n    \"cable-car\": [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-64-8c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"],\n    \"cloud-rain\": [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"],\n    \"building-circle-xmark\": [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"ship\": [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"arrows-down-to-line\": [640, 512, [], \"e4b8\", \"M576 416L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L512 274.7 512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L192 274.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L86.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"],\n    \"download\": [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"face-grin\": [512, 512, [128512, \"grin\"], \"f580\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"delete-left\": [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\n    \"eye-dropper\": [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"],\n    \"file-circle-check\": [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\n    \"forward\": [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"],\n    \"mobile\": [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"face-meh\": [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"align-center\": [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"],\n    \"book-skull\": [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 128c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"],\n    \"id-card\": [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM352 208c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"],\n    \"outdent\": [512, 512, [\"dedent\"], \"f03b\", \"M32 64c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 96 32 81.7 32 64zM224 192c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm32 96H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32zM32 448c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L32.2 268.6z\"],\n    \"heart-circle-exclamation\": [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"house\": [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"],\n    \"calendar-week\": [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"],\n    \"laptop-medical\": [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"],\n    \"b\": [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H32zM160 224H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"],\n    \"file-medical\": [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"],\n    \"dice-one\": [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"kiwi-bird\": [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"arrow-right-arrow-left\": [448, 512, [8644, \"exchange\"], \"f0ec\", \"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"],\n    \"rotate-right\": [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"],\n    \"utensils\": [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"],\n    \"arrow-up-wide-short\": [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n    \"mill-sign\": [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"],\n    \"bowl-rice\": [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n    \"skull\": [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"],\n    \"tower-broadcast\": [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"],\n    \"truck-pickup\": [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zM128 368c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zm288 0c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48z\"],\n    \"up-long\": [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192h88l0 288c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32l0-288h88c9.6 0 18.2-5.7 22-14.5z\"],\n    \"stop\": [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"],\n    \"code-merge\": [448, 512, [], \"f387\", \"M80 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32.4 49.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM392 272c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"upload\": [512, 512, [], \"f093\", \"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"hurricane\": [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm-96 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"mound\": [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"],\n    \"toilet-portable\": [320, 512, [], \"e583\", \"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n    \"compact-disc\": [512, 512, [128191, 128192, 128440], \"f51f\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 224c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zm-96 32c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"],\n    \"file-arrow-down\": [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n    \"caravan\": [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"shield-cat\": [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm96-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"bolt\": [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"],\n    \"glass-water\": [448, 512, [], \"e4f4\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm41 156.5L98.4 64H349.6L343 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L105 156.5z\"],\n    \"oil-well\": [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"],\n    \"vault\": [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 80c-88.4 0-160-71.6-160-160s71.6-160 160-160s160 71.6 160 160s-71.6 160-160 160zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"],\n    \"mars\": [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112z\"],\n    \"toilet\": [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"plane-circle-xmark\": [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"yen-sign\": [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.2C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"],\n    \"ruble-sign\": [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\n    \"sun\": [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM352 256c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zm32 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"],\n    \"guitar\": [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"face-laugh-wink\": [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"],\n    \"horse-head\": [512, 512, [], \"f7ab\", \"M0 464V316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5C361.6 7.9 384 23.8 384 46.4c0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H48c-26.5 0-48-21.5-48-48zM328 224c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"],\n    \"bore-hole\": [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H352V352c0 53-43 96-96 96s-96-43-96-96V128H48z\"],\n    \"industry\": [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64V304v48 80c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L320 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4V64c0-17.7-14.3-32-32-32H32z\"],\n    \"circle-down\": [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"],\n    \"arrows-turn-to-dots\": [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM512 384c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 64c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64S28.7 64 64 64z\"],\n    \"florin-sign\": [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"],\n    \"arrow-down-short-wide\": [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"less-than\": [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"],\n    \"angle-down\": [448, 512, [8964], \"f107\", \"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\n    \"car-tunnel\": [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h64H384h64c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM384 512c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V480c0 17.7-14.3 32-32 32zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm200-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"],\n    \"head-side-cough\": [640, 512, [], \"e061\", \"M0 201.7C0 90.3 90.3 0 201.7 0H224c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H416v32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 35.3-28.7 64-64 64H288c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V375.8c0-17-7.1-33-17.5-46.4C18.3 293.2 0 246.5 0 201.7zM336 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm272 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40 24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm-64 48c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm128 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM608 504c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40-72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"grip-lines\": [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"],\n    \"thumbs-down\": [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z\"],\n    \"user-lock\": [640, 512, [], \"f502\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"arrow-right-long\": [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n    \"anchor-circle-xmark\": [640, 512, [], \"e4ac\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"ellipsis\": [448, 512, [\"ellipsis-h\"], \"f141\", \"M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"],\n    \"chess-pawn\": [320, 512, [9823], \"f443\", \"M264 136c0 37.1-19.4 69.6-48.6 88H224c17.7 0 32 14.3 32 32s-14.3 32-32 32c0 96 24 128 24 128H72s24-32 24-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h8.5C75.4 205.6 56 173.1 56 136C56 78.6 102.6 32 160 32s104 46.6 104 104zM32 448H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"kit-medical\": [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"],\n    \"person-through-window\": [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"],\n    \"toolbox\": [512, 512, [129520], \"f552\", \"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"],\n    \"hands-holding-circle\": [640, 512, [], \"e4fb\", \"M320 256c-70.7 0-128-57.3-128-128S249.3 0 320 0s128 57.3 128 128s-57.3 128-128 128zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"],\n    \"bug\": [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"],\n    \"credit-card\": [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"],\n    \"car\": [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"hand-holding-hand\": [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"],\n    \"book-open-reader\": [512, 512, [\"book-reader\"], \"f5da\", \"M352 96c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM240 248V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"],\n    \"mountain-sun\": [640, 512, [], \"e52f\", \"M560 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"],\n    \"arrows-left-right-to-line\": [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n    \"dice-d20\": [512, 512, [], \"f6cf\", \"M64.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L217.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L63.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM32 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L56.2 158C45.6 151.6 32 159.3 32 171.7zM326.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L338.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM512 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L302.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM249.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM57.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L46.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L418.9 238.1c-6.5-10-21.4-9.6-27.3 .8L306.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H199.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM190.4 176H353.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"],\n    \"truck-droplet\": [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"],\n    \"file-circle-xmark\": [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"],\n    \"temperature-arrow-up\": [512, 512, [\"temperature-up\"], \"e040\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM448 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"],\n    \"medal\": [512, 512, [127941], \"f5a2\", \"M16 0H144c5.3 0 10.3 2.7 13.3 7.1l81.1 121.6c-49.5 4.1-94 25.6-127.6 58.3L2.7 24.9C-.6 20-.9 13.7 1.9 8.5S10.1 0 16 0zM509.3 24.9L401.2 187.1c-33.5-32.7-78.1-54.2-127.6-58.3L354.7 7.1c3-4.5 8-7.1 13.3-7.1H496c5.9 0 11.3 3.2 14.1 8.5s2.5 11.5-.8 16.4zM432 336c0 97.2-78.8 176-176 176s-176-78.8-176-176s78.8-176 176-176s176 78.8 176 176zM264.4 241.1c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"],\n    \"bed\": [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zM176 288c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"],\n    \"square-h\": [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n    \"podcast\": [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-32c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"],\n    \"temperature-full\": [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"],\n    \"bell\": [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"],\n    \"superscript\": [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"],\n    \"plug-circle-xmark\": [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"star-of-life\": [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"],\n    \"phone-slash\": [640, 512, [], \"f3dd\", \"M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z\"],\n    \"paint-roller\": [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"],\n    \"handshake-angle\": [640, 512, [\"hands-helping\"], \"f4c4\", \"M543.9 251.4c0-1.1 .1-2.2 .1-3.4c0-48.6-39.4-88-88-88l-40 0H320l-16 0 0 0v16 72c0 22.1-17.9 40-40 40s-40-17.9-40-40V128h.4c4-36 34.5-64 71.6-64H408c2.8 0 5.6 .2 8.3 .5l40.1-40.1c21.9-21.9 57.3-21.9 79.2 0l78.1 78.1c21.9 21.9 21.9 57.3 0 79.2l-69.7 69.7zM192 128V248c0 39.8 32.2 72 72 72s72-32.2 72-72V192h80l40 0c30.9 0 56 25.1 56 56c0 27.2-19.4 49.9-45.2 55c8.2 8.6 13.2 20.2 13.2 33c0 26.5-21.5 48-48 48h-2.7c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48H224c-.9 0-1.8 0-2.7-.1l-37.7 37.7c-21.9 21.9-57.3 21.9-79.2 0L26.3 407.6c-21.9-21.9-21.9-57.3 0-79.2L96 258.7V224c0-53 43-96 96-96z\"],\n    \"location-dot\": [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"],\n    \"file\": [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"],\n    \"greater-than\": [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"],\n    \"person-swimming\": [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM32 160c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"arrow-down\": [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\n    \"droplet\": [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"],\n    \"eraser\": [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"],\n    \"earth-americas\": [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"],\n    \"person-burst\": [640, 512, [], \"e53b\", \"M480 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"],\n    \"dove\": [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"],\n    \"battery-empty\": [576, 512, [\"battery-0\"], \"f244\", \"M80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zM64 176c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176z\"],\n    \"socks\": [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"],\n    \"inbox\": [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"],\n    \"section\": [320, 512, [], \"e447\", \"M96.9 96c2.1-11.6 8.7-19.8 21.1-25.4c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8c-34.7-5.7-69.4-3.6-98 9.3c-29.8 13.5-52.2 38.6-58 74.1c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C54.3 194.2 38.5 215.1 33.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"],\n    \"gauge-high\": [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"envelope-open-text\": [512, 512, [], \"f658\", \"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"hospital\": [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"],\n    \"wine-bottle\": [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"],\n    \"chess-rook\": [384, 512, [9820], \"f447\", \"M0 204.2V48c0-8.8 7.2-16 16-16H72c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h80c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h56c8.8 0 16 7.2 16 16V204.2c0 12.1-6.8 23.2-17.7 28.6l-28.6 14.3c-10.8 5.4-17.7 16.5-17.5 28.6C322.2 360.7 336 416 336 416H48s13.8-55.3 15.8-140.2c.3-12.1-6.6-23.2-17.5-28.6L17.7 232.8C6.8 227.4 0 216.3 0 204.2zM176 320h32c8.8 0 16-7.2 16-16V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"bars-staggered\": [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\n    \"dharmachakra\": [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"hotdog\": [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"],\n    \"person-walking-with-cane\": [512, 512, [\"blind\"], \"f29d\", \"M176 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"],\n    \"drum\": [576, 512, [129345], \"f569\", \"M533.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L402.2 104.5C367.8 98.7 329 96 288 96C146.6 96 32 128 32 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM339.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C490.4 181.8 496 197.4 496 208c0 .8-2.7 17.2-46 35.9C411.1 260.7 354 272 288 272s-123.1-11.3-162-28.1C82.7 225.2 80 208.8 80 208c0-10.6 5.6-26.2 44.4-41.3C162.6 151.9 219.8 144 288 144c18 0 35.1 .5 51.4 1.6z\"],\n    \"ice-cream\": [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z\"],\n    \"heart-circle-bolt\": [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"],\n    \"fax\": [512, 512, [128224, 128439], \"f1ac\", \"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 448c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-96-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"paragraph\": [448, 512, [182], \"f1dd\", \"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"],\n    \"check-to-slot\": [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"],\n    \"star-half\": [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"],\n    \"boxes-stacked\": [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"],\n    \"link\": [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"],\n    \"ear-listen\": [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM192 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\n    \"tree-city\": [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"],\n    \"play\": [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"],\n    \"font\": [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"],\n    \"rupiah-sign\": [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"],\n    \"magnifying-glass\": [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z\"],\n    \"table-tennis-paddle-ball\": [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H293c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219v-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 512c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"],\n    \"person-dots-from-line\": [576, 512, [\"diagnoses\"], \"f470\", \"M288 176c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM272 280c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm56 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM96 240c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm368 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"trash-can-arrow-up\": [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"],\n    \"naira-sign\": [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"],\n    \"cart-arrow-down\": [576, 512, [], \"f218\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H69.5c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H199.7c-11.5 0-21.4-8.2-23.6-19.5L170.7 288H459.2c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32H360V134.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V32H120.1C111 12.8 91.6 0 69.5 0H24zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n    \"walkie-talkie\": [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"file-pen\": [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"],\n    \"receipt\": [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.2 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"],\n    \"square-pen\": [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"],\n    \"suitcase-rolling\": [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"person-circle-exclamation\": [576, 512, [], \"e53f\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\n    \"chevron-down\": [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"],\n    \"battery-full\": [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm368 32V320H96V192H448z\"],\n    \"skull-crossbones\": [512, 512, [128369, 9760], \"f714\", \"M400 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H208c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C112 57.3 176.5 0 256 0s144 57.3 144 128zM200 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm144-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM35.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L256 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L327.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L256 419.8 78.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L184.4 384 49.7 316.6c-15.8-7.9-22.2-27.1-14.3-42.9z\"],\n    \"code-compare\": [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432c0 13.3 10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24z\"],\n    \"list-ul\": [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S16 69.5 16 96s21.5 48 48 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48-208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"],\n    \"school-lock\": [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96H592c26.5 0 48 21.5 48 48V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H166.3L302.2 5.4zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\n    \"tower-cell\": [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"],\n    \"down-long\": [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M318 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26S14.4 320 24 320h88l0-288c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32l0 288h88c9.6 0 18.2 5.7 22 14.5z\"],\n    \"ranking-star\": [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"],\n    \"chess-king\": [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H416c10.3 0 19.9 4.9 26 13.3s7.7 19.1 4.4 28.8L375.1 416H72.9L1.6 202.1C-1.6 192.4 0 181.6 6 173.3s15.7-13.3 26-13.3H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM32 480c0-17.7 14.3-32 32-32H83.6 364.4 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128 64c-17.7 0-32-14.3-32-32z\"],\n    \"person-harassing\": [576, 512, [], \"e549\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"],\n    \"brazilian-real-sign\": [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"],\n    \"landmark-dome\": [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"],\n    \"arrow-up\": [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"],\n    \"tv\": [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"shrimp\": [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM216 192c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"list-check\": [576, 512, [\"tasks\"], \"f0ae\", \"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"jug-detergent\": [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n    \"circle-user\": [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 272c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72z\"],\n    \"user-shield\": [640, 512, [], \"f505\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"],\n    \"wind\": [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n    \"car-burst\": [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zM268.3 308.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4s-16.6 20.4-29.4 17zM545 358.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4z\"],\n    \"y\": [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"],\n    \"person-snowboarding\": [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M241.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H504c13.3 0 24 10.7 24 24s-10.7 24-24 24H475.8c-10.8 0-21.4-2-31.5-5.8L92.1 371.3c-11.5-4.4-22-11.2-30.8-20L39 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L224 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM171 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.4-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L171 350.1zM464 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"truck-fast\": [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm368-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"],\n    \"fish\": [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"user-graduate\": [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1z\"],\n    \"circle-half-stroke\": [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"],\n    \"clapperboard\": [512, 512, [], \"e131\", \"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"],\n    \"circle-radiation\": [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 448C150 448 64 362 64 256S150 64 256 64s192 86 192 192s-86 192-192 192zm0 64c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"baseball\": [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"],\n    \"jet-fighter-up\": [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"],\n    \"diagram-project\": [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"],\n    \"copy\": [512, 512, [], \"f0c5\", \"M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64H64V224h64V160H64z\"],\n    \"volume-xmark\": [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n    \"hand-sparkles\": [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"],\n    \"grip\": [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V136zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"],\n    \"share-from-square\": [576, 512, [61509, \"share-square\"], \"f14d\", \"M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z\"],\n    \"child-combatant\": [576, 512, [\"child-rifle\"], \"e4e0\", \"M176 128c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"],\n    \"gun\": [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"square-phone\": [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"],\n    \"plus\": [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"],\n    \"expand\": [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"],\n    \"computer\": [640, 512, [], \"e4e5\", \"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 224c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"xmark\": [320, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z\"],\n    \"arrows-up-down-left-right\": [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"],\n    \"chalkboard-user\": [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 256c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm-26.7 32h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"],\n    \"peso-sign\": [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"],\n    \"building-shield\": [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"],\n    \"baby\": [448, 512, [], \"f77c\", \"M296 88c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"],\n    \"users-line\": [640, 512, [], \"e592\", \"M211.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM321.6 192c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"quote-left\": [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"],\n    \"tractor\": [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256c-44.2 0-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80s-35.8-80-80-80zM528 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"],\n    \"trash-arrow-up\": [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"],\n    \"arrow-down-up-lock\": [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\n    \"lines-leaning\": [448, 512, [], \"e51e\", \"M222.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM384 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"],\n    \"ruler-combined\": [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"],\n    \"copyright\": [512, 512, [169], \"f1f9\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"],\n    \"equals\": [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"],\n    \"blender\": [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"teeth\": [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"],\n    \"shekel-sign\": [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"],\n    \"map\": [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"],\n    \"rocket\": [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"],\n    \"photo-film\": [640, 512, [\"photo-video\"], \"f87c\", \"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"],\n    \"folder-minus\": [512, 512, [], \"f65d\", \"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"],\n    \"store\": [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"],\n    \"arrow-trend-up\": [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"],\n    \"plug-circle-minus\": [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"],\n    \"sign-hanging\": [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"],\n    \"bezier-curve\": [640, 512, [], \"f55b\", \"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"],\n    \"bell-slash\": [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"],\n    \"tablet\": [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"school-flag\": [576, 512, [], \"e56e\", \"M288 0H400c8.8 0 16 7.2 16 16V64c0 8.8-7.2 16-16 16H320V95.5L410.3 160H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"],\n    \"fill\": [576, 512, [], \"f575\", \"M118.6 9.4C106.1-3.1 85.9-3.1 73.4 9.4s-12.5 32.8 0 45.3L154.7 136 62.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L180.1 481.4c37.5 37.5 98.3 37.5 135.8 0L506.3 290.9c28.1-28.1 28.1-73.7 0-101.8L354.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L200 90.7 118.6 9.4zM200 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L245.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L461.1 234.3c3.1 3.1 3.1 8.2 0 11.3L418.7 288H99.5c1.4-5.4 4.2-10.4 8.4-14.6L200 181.3z\"],\n    \"angle-up\": [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"],\n    \"drumstick-bite\": [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"],\n    \"holly-berry\": [512, 512, [], \"f7aa\", \"M256 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"],\n    \"chevron-left\": [384, 512, [9001], \"f053\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"],\n    \"bacteria\": [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-3.1 11c-7.4-.3-14.9 .4-22.4 2.1c-9 2.1-17.8 4.4-26.2 7l-4.4-10.3c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l3.6 8.5c-16.5 7.1-31.5 15.1-45.2 23.9L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l5.8 8.7c-13.5 11.2-25.3 23.1-35.5 35.3l-10.1-8.1c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L66 155c-1.6 2.4-3.1 4.8-4.5 7.3c-7.1 11.8-12.8 23.2-17.4 34l-7.4-3c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l8.7 3.5c-.2 .8-.4 1.6-.7 2.3c-2.6 9.4-4.2 17.4-5.3 23.5c-.5 3.1-.9 5.7-1.2 7.7c-.1 1-.2 2-.3 2.7l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.4 2.8l0 0-29.4-2.7c-.3 3.8-.4 7.5-.3 11.2l-11 3.1C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l10.3-2.9c8 15.5 20.7 28.3 36.4 36.4L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l3.1-11c17.8 .8 34.7-4.1 48.8-13.2l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c6.8-10.6 11.3-22.9 12.7-36.2l.1-.6c.2-1.3 .7-3.8 1.7-7.4l.2-.6 9.4 4c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.5-3.6c7.5-11.1 18.7-23.7 36.5-34.5l1.6 5.6c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-3-10.6c5.2-1.7 10.7-3.2 16.6-4.6c9.7-2.2 18.5-6 26.4-11.1l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c9.1-14.3 14-31.2 13.2-48.8l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-10.3 2.9c-8.1-15.9-21-28.5-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3zM106.2 275.8l-37.1-3.4 0 0 37.1 3.4zM128 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm96-112c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm98.7 345c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l3.1-11c7.4 .3 14.9-.4 22.4-2.1c9-2.1 17.8-4.4 26.2-7l4.4 10.3c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-3.6-8.5c16.5-7.1 31.5-15.1 45.2-23.9L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-5.8-8.7c13.5-11.2 25.3-23.1 35.5-35.3l10.1 8.1c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574 357c1.6-2.4 3.1-4.8 4.5-7.3c7.1-11.8 12.8-23.2 17.4-34l7.4 3c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-8.7-3.5c.2-.8 .4-1.6 .7-2.3c2.6-9.4 4.2-17.4 5.3-23.5c.5-3.1 .9-5.7 1.2-7.7c.1-1 .2-2 .3-2.7l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.4-2.8l0 0 29.4 2.7c.3-3.8 .4-7.5 .3-11.2l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-10.3 2.9c-8-15.5-20.7-28.3-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.2 12.4l-3.1 11c-17.8-.8-34.7 4.1-48.8 13.2l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-6.8 10.6-11.3 22.9-12.7 36.2l-.1 .6c-.2 1.3-.7 3.8-1.7 7.4l-.2 .6-9.4-4c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.5 3.6c-7.5 11.1-18.7 23.7-36.5 34.5l-1.6-5.6c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l3 10.6c-5.2 1.7-10.7 3.2-16.6 4.6c-9.7 2.2-18.5 6-26.4 11.1l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-9.1 14.2-14 31.2-13.2 48.8l-11 3.1c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l10.3-2.9c8.1 15.9 21 28.5 36.4 36.4l-3 10.3zM570.9 239.5l0 0-37.1-3.4 37.1 3.4zM384 384c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32z\"],\n    \"hand-lizard\": [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"],\n    \"notdef\": [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7V390.3zM102.5 448H281.5L192 313.7 102.5 448zm128-192L320 390.3V121.7L230.5 256zM281.5 64H102.5L192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"],\n    \"disease\": [512, 512, [], \"f7fa\", \"M238.5 53.1C251 39.6 268.6 32 287 32c28.9 0 54.5 18.7 63.2 46.3L366 128.6c7.3 23 25.2 41 48.2 48.3l62.2 19.9c21.2 6.8 35.6 26.5 35.6 48.7c0 17.5-8.9 33.7-23.6 43.1l-85.9 54.8c-10.6 6.8-16.6 18.8-15.7 31.3l2.5 33.9c2.8 38.5-27.7 71.4-66.4 71.4c-13.6 0-26.9-4.2-38.1-12l-48.2-33.6c-14.8-10.3-32.3-15.8-50.3-15.8H170.2c-4.9 0-9.9 .4-14.8 1.2L83.9 432.1c-21.3 3.6-42.8-5.7-54.6-23.9c-11.8-18.1-11.8-41.4 0-59.4L56.5 307c4.9-7.5 7.5-16.3 7.5-25.3c0-9.9-3.2-19.5-9-27.4L11.3 194.6C-6.5 170.3-.7 136.2 24.2 119.2c9.7-6.6 21.2-9.8 32.9-9.1l80.6 4.6c26.1 1.5 51.5-8.7 69.4-27.9l31.5-33.8zM160 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM288 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"briefcase-medical\": [512, 512, [], \"f469\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"],\n    \"genderless\": [384, 512, [], \"f22d\", \"M192 368c-61.9 0-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112s-50.1 112-112 112zm0 64c97.2 0 176-78.8 176-176s-78.8-176-176-176S16 158.8 16 256s78.8 176 176 176z\"],\n    \"chevron-right\": [384, 512, [9002], \"f054\", \"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"],\n    \"retweet\": [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"],\n    \"car-rear\": [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n    \"pump-soap\": [448, 512, [], \"e06b\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"],\n    \"video-slash\": [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM32 128V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5z\"],\n    \"battery-quarter\": [576, 512, [\"battery-2\"], \"f243\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm112 32V320H96V192h96z\"],\n    \"radio\": [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 400c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"],\n    \"baby-carriage\": [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 512c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm336-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"],\n    \"traffic-light\": [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 320c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48zm-48-80c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zM160 64c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48z\"],\n    \"thermometer\": [512, 512, [], \"f491\", \"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"],\n    \"vr-cardboard\": [640, 512, [], \"f729\", \"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM224 240c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm256 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"],\n    \"hand-middle-finger\": [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"],\n    \"percent\": [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128c0-35.3-28.7-64-64-64S0 92.7 0 128s28.7 64 64 64s64-28.7 64-64zM384 384c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"truck-moving\": [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM240 400c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM80 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"glass-water-droplet\": [448, 512, [], \"e4f5\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm51 297.5L98.4 64H349.6L333 297.5 320 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM288 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C193.7 125.9 160 172 160 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"],\n    \"display\": [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"],\n    \"face-smile\": [512, 512, [128578, \"smile\"], \"f118\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"thumbtack\": [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"],\n    \"trophy\": [576, 512, [127942], \"f091\", \"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"],\n    \"person-praying\": [448, 512, [128720, \"pray\"], \"f683\", \"M352 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"],\n    \"hammer\": [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"],\n    \"hand-peace\": [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"],\n    \"rotate\": [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"],\n    \"spinner\": [512, 512, [], \"f110\", \"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z\"],\n    \"robot\": [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"],\n    \"peace\": [512, 512, [9774], \"f67c\", \"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"],\n    \"gears\": [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.7 8.4 166.9 8 160 8s-13.7 .4-20.4 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM208 176c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 400c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"warehouse\": [640, 512, [], \"f494\", \"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"],\n    \"arrow-up-right-dots\": [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM448 208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm128 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM272 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM144 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM576 336c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-48-80c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"],\n    \"splotch\": [512, 512, [], \"f5bc\", \"M287.6 .1c-19.7 0-38.3 9.1-50.4 24.6L205.9 64.9c-17.9 23-46 35.6-75.1 33.7L59.1 94c-13.5-.9-26.9 3.2-37.7 11.6C-1.3 123.2-6.7 155.2 8.8 179.4l44.5 69.2c7.1 11 10.8 23.8 10.8 36.8c0 11.9-3.1 23.5-9 33.8L27.4 367.7c-10 17.5-10 39.1 0 56.6c12.1 21.2 36.4 32.3 60.4 27.7l67-13c5.5-1.1 11.2-1.6 16.8-1.6H180c20.9 0 41 7.4 56.9 20.9l45 38.2c11.8 10 26.9 15.6 42.4 15.6c37.8 0 67.7-31.9 65.4-69.6l-3.1-50.6c-1-16.8 6.6-32.9 20.1-42.8l82.5-60.2c14.2-10.4 22.7-27 22.7-44.6c0-23.2-14.5-43.9-36.3-51.8l-58.2-21.2c-24.4-8.9-42.9-29.1-49.7-54.2L349.3 47.4C341.8 19.5 316.5 .1 287.6 .1z\"],\n    \"face-grin-hearts\": [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"],\n    \"dice-four\": [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"sim-card\": [384, 512, [], \"f7c4\", \"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"],\n    \"transgender\": [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"],\n    \"mercury\": [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224c0 61.9 50.1 112 112 112s112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112z\"],\n    \"arrow-turn-down\": [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"],\n    \"person-falling-burst\": [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80c0-26.5-21.5-48-48-48S0 53.5 0 80s21.5 48 48 48s48-21.5 48-48zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"],\n    \"award\": [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"],\n    \"ticket-simple\": [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v80c-26.5 0-48 21.5-48 48s21.5 48 48 48v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V304c26.5 0 48-21.5 48-48s-21.5-48-48-48V128z\"],\n    \"building\": [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"],\n    \"angles-left\": [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"],\n    \"qrcode\": [448, 512, [], \"f029\", \"M48 32C21.5 32 0 53.5 0 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm80 64v64H64V96h64zM48 288c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48zm80 64v64H64V352h64zM256 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H304c-26.5 0-48 21.5-48 48zm64 16h64v64H320V96zm32 352v32h32V448H352zm96 0H416v32h32V448zM416 288v32H352V288H256v96 96h64V384h32v32h96V352 320 288H416z\"],\n    \"clock-rotate-left\": [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"],\n    \"face-grin-beam-sweat\": [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"],\n    \"file-export\": [640, 512, [\"arrow-right-from-file\"], \"f56e\", \"M32 64C32 28.7 60.7 0 96 0H256V128c0 17.7 14.3 32 32 32H416V288H248c-13.3 0-24 10.7-24 24s10.7 24 24 24H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM416 336V288H526.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H416zm0-208H288V0L416 128z\"],\n    \"shield\": [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"],\n    \"arrow-up-short-wide\": [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"],\n    \"house-medical\": [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"],\n    \"golf-ball-tee\": [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zm-52.3-49.3c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"],\n    \"circle-chevron-left\": [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"],\n    \"house-chimney-window\": [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"],\n    \"pen-nib\": [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"],\n    \"tent-arrow-turn-left\": [640, 512, [], \"e580\", \"M152.1 41.8c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120 488 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L118.5 72l33.5-30.2zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],\n    \"tents\": [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],\n    \"wand-magic\": [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"],\n    \"dog\": [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"],\n    \"carrot\": [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"],\n    \"moon\": [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"],\n    \"wine-glass-empty\": [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"],\n    \"cheese\": [512, 512, [], \"f7ef\", \"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"],\n    \"yin-yang\": [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm32-352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"],\n    \"music\": [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"],\n    \"code-commit\": [640, 512, [], \"f386\", \"M320 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"],\n    \"temperature-low\": [512, 512, [], \"f76b\", \"M448 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm64 0c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"],\n    \"person-biking\": [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM200 384c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128s128-57.3 128-128zm328 0c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"],\n    \"broom\": [640, 512, [129529], \"f51a\", \"M627.6 57.3c14-10.9 16.5-31 5.6-44.9s-31-16.5-44.9-5.6l-144 112-72 56-8.7 6.8-30.8-39.4c-3.7-4.8-9.8-7-15.8-5.8s-10.7 5.7-12.3 11.5l-12.5 46.3L371.1 295l48-.9c6.1-.1 11.5-3.7 14.1-9.1s1.9-11.9-1.8-16.7L403 231.9l8.6-6.7 72-56 144-112zM16.7 507.7c37.4 2.8 196.8 12 252.3-31.4c57.7-45.1 76.8-161.5 76.8-161.5L267.1 213.9s-117.6-9.6-175.3 35.5C69 267.1 50.5 304.1 36.3 344c-2.4 6.7 4.7 12.8 11 9.4L86.2 333c4.1-2.2 9.2-1.1 12 2.6s2.7 8.8-.4 12.3L24.4 430.4C13.2 442.9 5.5 458.1 2.4 474.5c-.9 4.8-1.6 8.9-2.2 12.1c-.9 5 .5 10.1 3.6 14.1s7.7 6.6 12.8 7z\"],\n    \"shield-heart\": [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"],\n    \"gopuram\": [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n    \"earth-oceania\": [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n    \"square-xmark\": [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\n    \"hashtag\": [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"],\n    \"up-right-and-down-left-from-center\": [512, 512, [\"expand-alt\"], \"f424\", \"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"],\n    \"oil-can\": [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"],\n    \"t\": [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"],\n    \"hippo\": [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm88 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM480 144c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"],\n    \"chart-column\": [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n    \"infinity\": [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"],\n    \"vial-circle-check\": [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM512 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\n    \"person-arrow-down-to-line\": [640, 512, [], \"e538\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n    \"voicemail\": [640, 512, [], \"f897\", \"M144 160c44.2 0 80 35.8 80 80s-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80zM263.8 320c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"],\n    \"fan\": [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"person-walking-luggage\": [576, 512, [], \"e554\", \"M432 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"],\n    \"up-down\": [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"],\n    \"cloud-moon-rain\": [640, 512, [], \"f73c\", \"M513.2 0C449 0 395.5 46.5 385.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM399.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C273.3 114.6 242.8 96 208 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H399.9zM117.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"],\n    \"calendar\": [448, 512, [128197, 128198], \"f133\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"],\n    \"trailer\": [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"bahai\": [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"],\n    \"sd-card\": [384, 512, [], \"f7c2\", \"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n    \"dragon\": [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"],\n    \"shoe-prints\": [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"],\n    \"circle-plus\": [512, 512, [\"plus-circle\"], \"f055\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n    \"face-grin-tongue-wink\": [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 232c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"hand-holding\": [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"],\n    \"plug-circle-exclamation\": [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\n    \"link-slash\": [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"],\n    \"clone\": [512, 512, [], \"f24d\", \"M0 448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H224c-53 0-96-43-96-96V160H64c-35.3 0-64 28.7-64 64V448zm224-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"],\n    \"person-walking-arrow-loop-left\": [640, 512, [], \"e551\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"],\n    \"arrow-up-z-a\": [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"],\n    \"fire-flame-curved\": [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"],\n    \"tornado\": [448, 512, [127786], \"f76f\", \"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"],\n    \"file-circle-plus\": [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"],\n    \"book-quran\": [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"],\n    \"anchor\": [576, 512, [9875], \"f13d\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"],\n    \"border-all\": [448, 512, [], \"f84c\", \"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],\n    \"face-angry\": [512, 512, [128544, \"angry\"], \"f556\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.3 382.1c-5.4 12.3 8.7 21.6 21.1 16.4c22.4-9.5 47.4-14.8 73.7-14.8s51.3 5.3 73.7 14.8c12.4 5.2 26.5-4.1 21.1-16.4c-16-36.6-52.4-62.1-94.8-62.1s-78.8 25.6-94.8 62.1zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n    \"cookie-bite\": [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"arrow-trend-down\": [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"],\n    \"rss\": [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"draw-polygon\": [448, 512, [], \"f5ee\", \"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"],\n    \"scale-balanced\": [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zM125.8 177.3L51.1 320H204.9L130.2 177.3c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3zM128 128c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 402.6 178.2 416 128 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 155c8.7-16.6 25.9-27 44.7-27zm384 48c-.9 0-1.7 .5-2.2 1.3L435.1 320H588.9L514.2 177.3c-.4-.8-1.3-1.3-2.2-1.3zm-44.7-21c8.7-16.6 25.9-27 44.7-27s36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 402.6 562.2 416 512 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 155z\"],\n    \"gauge-simple-high\": [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],\n    \"shower\": [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm32-32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"desktop\": [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"],\n    \"m\": [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.2c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V169.7L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 49.9 9.2 37.5 22.7 33.4z\"],\n    \"table-list\": [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"],\n    \"comment-sms\": [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.7 .9 4 1.4l0 0 0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z\"],\n    \"book\": [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"user-plus\": [640, 512, [], \"f234\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n    \"check\": [512, 512, [10003, 10004], \"f00c\", \"M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"],\n    \"battery-three-quarters\": [576, 512, [\"battery-4\"], \"f241\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm272 32V320H96V192H352z\"],\n    \"house-circle-check\": [640, 512, [], \"e509\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\n    \"angle-left\": [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\n    \"diagram-successor\": [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"],\n    \"truck-arrow-right\": [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"],\n    \"arrows-split-up-and-left\": [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"],\n    \"hand-fist\": [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32V144H128V32c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H32V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"],\n    \"cloud-moon\": [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"],\n    \"briefcase\": [512, 512, [128188], \"f0b1\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"],\n    \"person-falling\": [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 128c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"],\n    \"image-portrait\": [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM256 192c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"],\n    \"user-tag\": [640, 512, [], \"f507\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm72 80c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"],\n    \"rug\": [640, 512, [], \"e569\", \"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"],\n    \"earth-europe\": [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.6-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"],\n    \"cart-flatbed-suitcase\": [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"],\n    \"rectangle-xmark\": [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\n    \"baht-sign\": [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"],\n    \"book-open\": [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C87.5 32 35.1 48.6 9 59.9c-5.6 2.4-9 8-9 14V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V73.9c0-6.1-3.4-11.6-9-14C540.9 48.6 488.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"],\n    \"book-journal-whills\": [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.3-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.7-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-10-20.7-26.1-38-46.4-49.2c17 27.1 11 62.8-14 82.6c14.1 14.6 19.1 35.9 13.1 55.2c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-6-19.4-1-40.5 13.1-55.2c-25-19.9-31-55.5-14-82.6c-20.1 11.2-36.4 28.5-46.4 49.2l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"],\n    \"handcuffs\": [640, 512, [], \"e4f8\", \"M304 32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM192 112c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-32 16c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zM368 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"triangle-exclamation\": [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"],\n    \"database\": [448, 512, [], \"f1c0\", \"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"],\n    \"share\": [512, 512, [\"arrow-turn-right\", \"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"],\n    \"bottle-droplet\": [256, 512, [], \"e4c4\", \"M64 0C50.7 0 40 10.7 40 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C21.7 174.1 0 212.5 0 256V448c0 35.3 28.7 64 64 64H192c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H72l0 0 0 0L64 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C153.9 288.9 176 320.2 176 337c0 24.9-21.5 45-48 45z\"],\n    \"mask-face\": [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"],\n    \"hill-rockslide\": [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"right-left\": [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"],\n    \"paper-plane\": [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"],\n    \"road-circle-exclamation\": [640, 512, [], \"e565\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\n    \"dungeon\": [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"],\n    \"align-right\": [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\n    \"money-bill-1-wave\": [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"],\n    \"life-ring\": [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm91 .5c33.7-43.3 53.8-97.8 53.8-157s-20.1-113.6-53.8-157l12.4-12.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L413 53.8C369.6 20.1 315.2 0 256 0S142.4 20.1 99 53.8L86.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L53.8 99C20.1 142.4 0 196.8 0 256s20.1 113.6 53.8 157L41.4 425.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L99 458.2c43.3 33.7 97.8 53.8 157 53.8s113.6-20.1 157-53.8l12.4 12.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L458.2 413zm-45.7-45.7l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"],\n    \"hands\": [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M154.9 162c.3 .7 .7 1.5 1.1 2.2l17.8 30.9c11.1-12.6 27.4-19.8 44.4-19.1l-20.7-35.8c-6.6-11.5-21.3-15.4-32.8-8.8c-10.8 6.2-14.9 19.5-9.9 30.6zm173.6 47C399.7 231.7 448 297.8 448 372.5c0 1.5 0 3-.1 4.5c39.7-25.6 64.1-69.7 64.1-117.4V136c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 81.7L347.8 16.5C341.2 5 326.5 1.1 315.1 7.7s-15.4 21.3-8.8 32.8l64 110.9c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9l-80-138.6C269.8 9.3 255.1 5.4 243.6 12s-15.4 21.3-8.8 32.8l80 138.6c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9L237 80.5c-6.6-11.5-21.3-15.4-32.8-8.8s-15.4 21.3-8.8 32.8l44 76.2L328.5 209zM64 488c0 12.4 9.4 22.6 21.5 23.9c.8 .1 1.6 .1 2.5 .1H288.7 296c66.3 0 120-53.7 120-120c0-1.2 0-2.4-.1-3.6c0-1.2 .1-2.5 .1-3.7c0-68-44-128.2-108.9-148.9l-83.9-26.7c-12.6-4-26.1 3-30.1 15.6s3 26.1 15.6 30.1L262.6 272H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H88c-13.3 0-24 10.7-24 24z\"],\n    \"calendar-day\": [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"],\n    \"water-ladder\": [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\n    \"arrows-up-down\": [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n    \"face-grimace\": [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zm40.4-192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"wheelchair-move\": [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M416 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"],\n    \"turn-down\": [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M178.3 506.3L40.3 368.3C35 363 32 355.8 32 348.3C32 332.7 44.7 320 60.3 320H144V112c0-8.8-7.2-16-16-16H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0h96c61.9 0 112 50.1 112 112V320h83.7c15.6 0 28.3 12.7 28.3 28.3c0 7.5-3 14.7-8.3 20L205.7 506.3C202 510 197.1 512 192 512s-10-2-13.7-5.7z\"],\n    \"person-walking-arrow-right\": [640, 512, [], \"e552\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"],\n    \"square-envelope\": [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"],\n    \"dice\": [640, 512, [127922], \"f522\", \"M252.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-184 184c-15.6 15.6-15.6 40.9 0 56.6l184 184c15.6 15.6 40.9 15.6 56.6 0l184-184c15.6-15.6 15.6-40.9 0-56.6l-184-184zM248 224c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM96 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm128 80c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm128-80c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM224 72c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm96 392c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H472.5c13.4 26.9 8.8 60.5-13.6 82.9L320 413.8V464zm160-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"bowling-ball\": [512, 512, [], \"f436\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM240 144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"brain\": [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"],\n    \"bandage\": [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM296 208c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-72 72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"calendar-minus\": [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"],\n    \"circle-xmark\": [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\n    \"gifts\": [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"],\n    \"hotel\": [512, 512, [127976], \"f594\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H208V448h96v64H480c17.7 0 32-14.3 32-32s-14.3-32-32-32V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V112zM368 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM96 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V208zm144-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V208zm-3 152.2c3.3 12.8-7.8 23.8-21 23.8H184c-13.3 0-24.3-10.9-21-23.8c10.6-41.5 48.2-72.2 93-72.2s82.5 30.7 93 72.2z\"],\n    \"earth-asia\": [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM144.5 348.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"],\n    \"id-card-clip\": [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"],\n    \"magnifying-glass-plus\": [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"],\n    \"thumbs-up\": [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"],\n    \"user-clock\": [640, 512, [], \"f4fd\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM496 288c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"],\n    \"hand-dots\": [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM272 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 48c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM352 448c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-80-16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"],\n    \"file-invoice\": [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n    \"window-minimize\": [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\n    \"mug-saucer\": [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n    \"brush\": [384, 512, [], \"f55d\", \"M192 64L160 0H128L96 64 64 0H48C21.5 0 0 21.5 0 48V256H384V48c0-26.5-21.5-48-48-48H224L192 64zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"],\n    \"mask\": [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm192 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"],\n    \"magnifying-glass-minus\": [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"],\n    \"ruler-vertical\": [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"],\n    \"user-large\": [512, 512, [\"user-alt\"], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0S112 64.5 112 144s64.5 144 144 144zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"],\n    \"train-tram\": [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.7 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"],\n    \"user-nurse\": [448, 512, [], \"f82f\", \"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"],\n    \"syringe\": [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"],\n    \"cloud-sun\": [640, 512, [9925], \"f6c4\", \"M122.4 1.2C127.6-.9 133.4-.2 137.9 3l70.3 50.3L278.5 3c4.5-3.2 10.3-3.9 15.4-1.8s8.8 6.7 9.7 12.2l14.1 85.3L403 112.8c5.4 .9 10.1 4.6 12.2 9.7s1.4 10.9-1.8 15.4l-38.8 54.3c-2.2-.1-4.3-.2-6.5-.2c-23.2 0-45 6.2-63.8 17c.1-12.5-2.2-25.3-7.3-37.6c-20.3-49-76.4-72.2-125.4-52s-72.2 76.4-52 125.4c18.3 44.3 66 67.5 111.1 56.6c-36.3 18.2-62.8 53.3-69.1 94.9l-23.6 16.9c-4.5 3.2-10.3 3.9-15.4 1.8s-8.8-6.7-9.7-12.2L98.7 317.7 13.4 303.6c-5.5-.9-10.1-4.6-12.2-9.7S-.2 282.9 3 278.5l50.3-70.3L3 137.9c-3.2-4.5-3.9-10.3-1.8-15.4s6.7-8.8 12.2-9.7L98.7 98.7l14.1-85.3c.9-5.5 4.6-10.1 9.7-12.2zM149 232.7c-13.5-32.7 2-70.1 34.6-83.6s70.1 2 83.6 34.6s-2 70.1-34.6 83.6s-70.1-2-83.6-34.6zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"],\n    \"stopwatch-20\": [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"],\n    \"square-full\": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"],\n    \"magnet\": [448, 512, [129522], \"f076\", \"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"],\n    \"jar\": [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"],\n    \"note-sticky\": [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z\"],\n    \"bug-slash\": [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z\"],\n    \"arrow-up-from-water-pump\": [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"],\n    \"bone\": [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"],\n    \"user-injured\": [448, 512, [], \"f728\", \"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"],\n    \"face-sad-tear\": [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM303.6 208c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm-128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"plane\": [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"],\n    \"tent-arrows-down\": [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],\n    \"exclamation\": [128, 512, [10069, 10071, 61738], \"21\", \"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM64 480c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"],\n    \"arrows-spin\": [448, 512, [], \"e4bb\", \"M224 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H416c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C331.4 52.6 280.1 32 224 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM100.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C20.6 148.6 0 199.9 0 256c0 10.9 .8 21.5 2.3 32H67.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM445.7 224H380.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H416c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C427.4 363.4 448 312.1 448 256c0-10.9-.8-21.5-2.3-32zM224 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H32c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C116.6 459.4 167.9 480 224 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"],\n    \"print\": [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zm-16-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"],\n    \"turkish-lira-sign\": [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M128 32c17.7 0 32 14.3 32 32V99.3L279.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C410.5 399.8 326.1 480 223.8 480H128c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 117.6V64c0-17.7 14.3-32 32-32z\"],\n    \"dollar-sign\": [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c10.6 1.6 42.1 6.7 55.1 10c17.1 4.3 27.5 21.7 23.2 38.9s-21.7 27.5-38.9 23.2c-9.3-2.4-37.6-7-48.9-8.7c-32.1-4.8-59.6-2.4-78.5 4.9c-18.3 7-25.9 16.9-27.9 28c-1.9 10.7-.5 16.8 1.3 20.6c1.9 4 5.6 8.5 12.9 13.4c16.2 10.8 41.1 17.9 73.3 26.7l2.8 .8c28.4 7.7 63.2 17.2 89 34.3c14.1 9.4 27.3 22.1 35.5 39.7c8.3 17.8 10.1 37.8 6.3 59.1c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.2-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.4 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.7 .5-16.8-1.3-20.6c-1.9-4-5.6-8.5-12.9-13.4c-16.2-10.8-41.1-17.9-73.3-26.7l-2.8-.8c-28.4-7.7-63.2-17.2-89-34.3c-14.1-9.4-27.3-22.1-35.5-39.7c-8.3-17.8-10.1-37.8-6.3-59.1C25 114.1 53 89.3 86 76.7c13-5 27.2-8.2 42-10V32c0-17.7 14.3-32 32-32z\"],\n    \"x\": [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"],\n    \"magnifying-glass-dollar\": [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"],\n    \"users-gear\": [640, 512, [\"users-cog\"], \"f509\", \"M144 160c44.2 0 80-35.8 80-80s-35.8-80-80-80S64 35.8 64 80s35.8 80 80 80zm368 0c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM552 384c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40z\"],\n    \"person-military-pointing\": [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"],\n    \"building-columns\": [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8.1-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zm128-96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"],\n    \"umbrella\": [640, 512, [], \"f0e9\", \"M320 0c17.7 0 32 14.3 32 32V49.7C483.8 63.4 589.7 161 605.9 285.9c2 15.6-17.3 24.4-27.8 12.7C564.1 283 536.8 272 512 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C391 299.5 358.7 272 320 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C199 299.5 166.7 272 128 272c-24.8 0-52.1 11-66.1 26.7c-10.5 11.7-29.8 2.9-27.8-12.7C50.3 161 156.2 63.4 288 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"],\n    \"trowel\": [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"],\n    \"d\": [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32H160c123.7 0 224 100.3 224 224s-100.3 224-224 224H32c-17.7 0-32-14.3-32-32V64zM64 96V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160H64z\"],\n    \"stapler\": [640, 512, [], \"e5af\", \"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"],\n    \"masks-theater\": [640, 512, [127917, \"theater-masks\"], \"f630\", \"M399.3 509.7c-58.2-8.8-108.2-72.8-137.6-119.7c-20-31.9-25.1-70.3-19.6-107.7L266.3 118c1.4-9.8 5.1-19.2 12.9-25.2c20.2-15.6 72.4-41.5 185.1-24.5s155.2 57.4 170 78.3c5.7 8 6.5 18.1 5.1 27.9L615.2 338.8c-5.5 37.3-21.5 72.6-49.8 97.2c-41.7 36.1-108 82.5-166.1 73.7zm17.1-277.7c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8c4.4 3.1 10.8 2 11.8-3.3zm112.6 22.2c4.4 3.1 10.8 2 11.8-3.3c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8zm-11.5 85.2c-28.8 12.8-61.4 17.8-94.9 12.8s-63.2-19.5-87-40.3c-6.3-5.5-16.2-1.7-15.2 6.7c5.9 48.5 43 89.1 93 96.7s97.2-20.2 116.8-64.9c3.4-7.7-5-14.3-12.6-10.9zM240.7 446.9c-58.2 8.8-124.5-37.5-166.1-73.7c-28.3-24.5-44.3-59.8-49.8-97.2L.6 111.8C-.8 102 0 91.9 5.7 83.9C20.5 63 63 22.7 175.7 5.6s164.9 8.9 185.1 24.5c.9 .7 1.7 1.4 2.4 2.1c-52.8 4.8-85.1 21-103.6 35.3c-17 13.1-23 32-25 45.9L215.3 244.7c-2.6 .1-5.2 .4-7.9 .8c-35.2 5.3-61.8 32.7-68.2 66.3c-1.6 8.2 8.3 12.2 14.8 7c15.6-12.4 34.1-21.3 54.7-25.4c-3 38.4 4 78.7 25.9 113.6c6.9 11 15 23.1 24.2 35.4c-5.9 2.1-11.9 3.6-18 4.5zM174.1 157c-1-5.3-7.4-6.4-11.8-3.3c-7.7 5.5-16.8 9.3-26.8 10.8s-19.8 .6-28.7-2.4c-5.1-1.7-10.9 1.3-10.3 6.7c.1 .5 .1 1.1 .2 1.6c3.2 21.8 23.2 36.8 44.7 33.5s36.3-23.5 33.1-45.3c-.1-.5-.2-1.1-.3-1.6z\"],\n    \"kip-sign\": [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"],\n    \"hand-point-left\": [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z\"],\n    \"handshake-simple\": [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"],\n    \"jet-fighter\": [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"],\n    \"square-share-nodes\": [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"],\n    \"barcode\": [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"],\n    \"plus-minus\": [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"],\n    \"video\": [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"],\n    \"graduation-cap\": [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"],\n    \"hand-holding-medical\": [576, 512, [], \"e05c\", \"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"],\n    \"person-circle-check\": [576, 512, [], \"e53e\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\n    \"turn-up\": [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M178.3 5.7L40.3 143.7C35 149 32 156.2 32 163.7C32 179.3 44.7 192 60.3 192H144V400c0 8.8-7.2 16-16 16H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96c61.9 0 112-50.1 112-112V192h83.7c15.6 0 28.3-12.7 28.3-28.3c0-7.5-3-14.7-8.3-20L205.7 5.7C202 2 197.1 0 192 0s-10 2-13.7 5.7z\"]\n  };\n\n  bunker(function () {\n    defineIcons('fas', icons);\n    defineIcons('fa-solid', icons);\n  });\n\n}());\n(function () {\n  'use strict';\n\n  function ownKeys(object, enumerableOnly) {\n    var keys = Object.keys(object);\n\n    if (Object.getOwnPropertySymbols) {\n      var symbols = Object.getOwnPropertySymbols(object);\n      enumerableOnly && (symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      })), keys.push.apply(keys, symbols);\n    }\n\n    return keys;\n  }\n\n  function _objectSpread2(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = null != arguments[i] ? arguments[i] : {};\n      i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n\n    return target;\n  }\n\n  function _typeof(obj) {\n    \"@babel/helpers - typeof\";\n\n    return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n      return typeof obj;\n    } : function (obj) {\n      return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    }, _typeof(obj);\n  }\n\n  function _wrapRegExp() {\n    _wrapRegExp = function (re, groups) {\n      return new BabelRegExp(re, void 0, groups);\n    };\n\n    var _super = RegExp.prototype,\n        _groups = new WeakMap();\n\n    function BabelRegExp(re, flags, groups) {\n      var _this = new RegExp(re, flags);\n\n      return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n    }\n\n    function buildGroups(result, re) {\n      var g = _groups.get(re);\n\n      return Object.keys(g).reduce(function (groups, name) {\n        return groups[name] = result[g[name]], groups;\n      }, Object.create(null));\n    }\n\n    return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n      var result = _super.exec.call(this, str);\n\n      return result && (result.groups = buildGroups(result, this)), result;\n    }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n      if (\"string\" == typeof substitution) {\n        var groups = _groups.get(this);\n\n        return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n          return \"$\" + groups[name];\n        }));\n      }\n\n      if (\"function\" == typeof substitution) {\n        var _this = this;\n\n        return _super[Symbol.replace].call(this, str, function () {\n          var args = arguments;\n          return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n        });\n      }\n\n      return _super[Symbol.replace].call(this, str, substitution);\n    }, _wrapRegExp.apply(this, arguments);\n  }\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    Object.defineProperty(Constructor, \"prototype\", {\n      writable: false\n    });\n    return Constructor;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _inherits(subClass, superClass) {\n    if (typeof superClass !== \"function\" && superClass !== null) {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        writable: true,\n        configurable: true\n      }\n    });\n    Object.defineProperty(subClass, \"prototype\", {\n      writable: false\n    });\n    if (superClass) _setPrototypeOf(subClass, superClass);\n  }\n\n  function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n      o.__proto__ = p;\n      return o;\n    };\n\n    return _setPrototypeOf(o, p);\n  }\n\n  function _slicedToArray(arr, i) {\n    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n  }\n\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n  }\n\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n  }\n\n  function _arrayWithHoles(arr) {\n    if (Array.isArray(arr)) return arr;\n  }\n\n  function _iterableToArray(iter) {\n    if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n  }\n\n  function _iterableToArrayLimit(arr, i) {\n    var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n    if (_i == null) return;\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n\n    var _s, _e;\n\n    try {\n      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n\n        if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  function _nonIterableRest() {\n    throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var noop = function noop() {};\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n  var _MUTATION_OBSERVER = null;\n  var _PERFORMANCE = {\n    mark: noop,\n    measure: noop\n  };\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n    if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n    if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n  var PERFORMANCE = _PERFORMANCE;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var UNITS_IN_GRID = 16;\n  var DEFAULT_CSS_PREFIX = 'fa';\n  var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n  var DATA_FA_I2SVG = 'data-fa-i2svg';\n  var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n  var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n  var DATA_PREFIX = 'data-prefix';\n  var DATA_ICON = 'data-icon';\n  var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n  var MUTATION_APPROACH_ASYNC = 'async';\n  var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n  var FAMILY_CLASSIC = 'classic';\n  var FAMILY_SHARP = 'sharp';\n  var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\n  function familyProxy(obj) {\n    // Defaults to the classic family if family is not available\n    return new Proxy(obj, {\n      get: function get(target, prop) {\n        return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n      }\n    });\n  }\n  var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n    'fa': 'solid',\n    'fas': 'solid',\n    'fa-solid': 'solid',\n    'far': 'regular',\n    'fa-regular': 'regular',\n    'fal': 'light',\n    'fa-light': 'light',\n    'fat': 'thin',\n    'fa-thin': 'thin',\n    'fad': 'duotone',\n    'fa-duotone': 'duotone',\n    'fab': 'brands',\n    'fa-brands': 'brands',\n    'fak': 'kit',\n    'fa-kit': 'kit'\n  }), _defineProperty(_familyProxy, FAMILY_SHARP, {\n    'fa': 'solid',\n    'fass': 'solid',\n    'fa-solid': 'solid'\n  }), _familyProxy));\n  var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n    'solid': 'fas',\n    'regular': 'far',\n    'light': 'fal',\n    'thin': 'fat',\n    'duotone': 'fad',\n    'brands': 'fab',\n    'kit': 'fak'\n  }), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n    'solid': 'fass'\n  }), _familyProxy2));\n  var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n    'fab': 'fa-brands',\n    'fad': 'fa-duotone',\n    'fak': 'fa-kit',\n    'fal': 'fa-light',\n    'far': 'fa-regular',\n    'fas': 'fa-solid',\n    'fat': 'fa-thin'\n  }), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n    'fass': 'fa-solid'\n  }), _familyProxy3));\n  var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n    'fa-brands': 'fab',\n    'fa-duotone': 'fad',\n    'fa-kit': 'fak',\n    'fa-light': 'fal',\n    'fa-regular': 'far',\n    'fa-solid': 'fas',\n    'fa-thin': 'fat'\n  }), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n    'fa-solid': 'fass'\n  }), _familyProxy4));\n  var ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\n  var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n  var FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i; // TODO: this needs to support fass\n  // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\n  var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n    '900': 'fas',\n    '400': 'far',\n    'normal': 'far',\n    '300': 'fal',\n    '100': 'fat'\n  }), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n    '900': 'fass'\n  }), _familyProxy5));\n  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n  var DUOTONE_CLASSES = {\n    GROUP: 'duotone-group',\n    SWAP_OPACITY: 'swap-opacity',\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary'\n  };\n  var prefixes = new Set();\n  Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\n  Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\n  var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n    return \"\".concat(n, \"x\");\n  })).concat(oneToTwenty.map(function (n) {\n    return \"w-\".concat(n);\n  }));\n\n  var initial = WINDOW.FontAwesomeConfig || {};\n\n  function getAttrConfig(attr) {\n    var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n    if (element) {\n      return element.getAttribute(attr);\n    }\n  }\n\n  function coerce(val) {\n    // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n    // We'll assume that this is an indication that it should be toggled to true\n    if (val === '') return true;\n    if (val === 'false') return false;\n    if (val === 'true') return true;\n    return val;\n  }\n\n  if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n    var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n    attrs.forEach(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 2),\n          attr = _ref2[0],\n          key = _ref2[1];\n\n      var val = coerce(getAttrConfig(attr));\n\n      if (val !== undefined && val !== null) {\n        initial[key] = val;\n      }\n    });\n  }\n\n  var _default = {\n    styleDefault: 'solid',\n    familyDefault: 'classic',\n    cssPrefix: DEFAULT_CSS_PREFIX,\n    replacementClass: DEFAULT_REPLACEMENT_CLASS,\n    autoReplaceSvg: true,\n    autoAddCss: true,\n    autoA11y: true,\n    searchPseudoElements: false,\n    observeMutations: true,\n    mutateApproach: 'async',\n    keepOriginalSource: true,\n    measurePerformance: false,\n    showMissingIcons: true\n  }; // familyPrefix is deprecated but we must still support it if present\n\n  if (initial.familyPrefix) {\n    initial.cssPrefix = initial.familyPrefix;\n  }\n\n  var _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\n  if (!_config.autoReplaceSvg) _config.observeMutations = false;\n  var config = {};\n  Object.keys(_default).forEach(function (key) {\n    Object.defineProperty(config, key, {\n      enumerable: true,\n      set: function set(val) {\n        _config[key] = val;\n\n        _onChangeCb.forEach(function (cb) {\n          return cb(config);\n        });\n      },\n      get: function get() {\n        return _config[key];\n      }\n    });\n  }); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\n  Object.defineProperty(config, 'familyPrefix', {\n    enumerable: true,\n    set: function set(val) {\n      _config.cssPrefix = val;\n\n      _onChangeCb.forEach(function (cb) {\n        return cb(config);\n      });\n    },\n    get: function get() {\n      return _config.cssPrefix;\n    }\n  });\n  WINDOW.FontAwesomeConfig = config;\n  var _onChangeCb = [];\n  function onChange(cb) {\n    _onChangeCb.push(cb);\n\n    return function () {\n      _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n    };\n  }\n\n  var d = UNITS_IN_GRID;\n  var meaninglessTransform = {\n    size: 16,\n    x: 0,\n    y: 0,\n    rotate: 0,\n    flipX: false,\n    flipY: false\n  };\n  function bunker(fn) {\n    try {\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      fn.apply(void 0, args);\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n  function insertCss(css) {\n    if (!css || !IS_DOM) {\n      return;\n    }\n\n    var style = DOCUMENT.createElement('style');\n    style.setAttribute('type', 'text/css');\n    style.innerHTML = css;\n    var headChildren = DOCUMENT.head.childNodes;\n    var beforeChild = null;\n\n    for (var i = headChildren.length - 1; i > -1; i--) {\n      var child = headChildren[i];\n      var tagName = (child.tagName || '').toUpperCase();\n\n      if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n        beforeChild = child;\n      }\n    }\n\n    DOCUMENT.head.insertBefore(style, beforeChild);\n    return css;\n  }\n  var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n  function nextUniqueId() {\n    var size = 12;\n    var id = '';\n\n    while (size-- > 0) {\n      id += idPool[Math.random() * 62 | 0];\n    }\n\n    return id;\n  }\n  function toArray(obj) {\n    var array = [];\n\n    for (var i = (obj || []).length >>> 0; i--;) {\n      array[i] = obj[i];\n    }\n\n    return array;\n  }\n  function classArray(node) {\n    if (node.classList) {\n      return toArray(node.classList);\n    } else {\n      return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n        return i;\n      });\n    }\n  }\n  function htmlEscape(str) {\n    return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n  }\n  function joinAttributes(attributes) {\n    return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n      return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n    }, '').trim();\n  }\n  function joinStyles(styles) {\n    return Object.keys(styles || {}).reduce(function (acc, styleName) {\n      return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n    }, '');\n  }\n  function transformIsMeaningful(transform) {\n    return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n  }\n  function transformForSvg(_ref) {\n    var transform = _ref.transform,\n        containerWidth = _ref.containerWidth,\n        iconWidth = _ref.iconWidth;\n    var outer = {\n      transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n    };\n    var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n    var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n    var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n    var inner = {\n      transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n    };\n    var path = {\n      transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n    };\n    return {\n      outer: outer,\n      inner: inner,\n      path: path\n    };\n  }\n  function transformForCss(_ref2) {\n    var transform = _ref2.transform,\n        _ref2$width = _ref2.width,\n        width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n        _ref2$height = _ref2.height,\n        height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n        _ref2$startCentered = _ref2.startCentered,\n        startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n    var val = '';\n\n    if (startCentered && IS_IE) {\n      val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n    } else if (startCentered) {\n      val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n    } else {\n      val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n    }\n\n    val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n    val += \"rotate(\".concat(transform.rotate, \"deg) \");\n    return val;\n  }\n\n  var baseStyles = \":host,:root{--fa-font-solid:normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";--fa-font-regular:normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";--fa-font-light:normal 300 1em/1 \\\"Font Awesome 6 Light\\\";--fa-font-thin:normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";--fa-font-duotone:normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";--fa-font-sharp-solid:normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";--fa-font-brands:normal 400 1em/1 \\\"Font Awesome 6 Brands\\\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}\";\n\n  function css() {\n    var dcp = DEFAULT_CSS_PREFIX;\n    var drc = DEFAULT_REPLACEMENT_CLASS;\n    var fp = config.cssPrefix;\n    var rc = config.replacementClass;\n    var s = baseStyles;\n\n    if (fp !== dcp || rc !== drc) {\n      var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n      var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n      var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n      s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n    }\n\n    return s;\n  }\n\n  var _cssInserted = false;\n\n  function ensureCss() {\n    if (config.autoAddCss && !_cssInserted) {\n      insertCss(css());\n      _cssInserted = true;\n    }\n  }\n\n  var InjectCSS = {\n    mixout: function mixout() {\n      return {\n        dom: {\n          css: css,\n          insertCss: ensureCss\n        }\n      };\n    },\n    hooks: function hooks() {\n      return {\n        beforeDOMElementCreation: function beforeDOMElementCreation() {\n          ensureCss();\n        },\n        beforeI2svg: function beforeI2svg() {\n          ensureCss();\n        }\n      };\n    }\n  };\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  var functions = [];\n\n  var listener = function listener() {\n    DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n    loaded = 1;\n    functions.map(function (fn) {\n      return fn();\n    });\n  };\n\n  var loaded = false;\n\n  if (IS_DOM) {\n    loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n    if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n  }\n\n  function domready (fn) {\n    if (!IS_DOM) return;\n    loaded ? setTimeout(fn, 0) : functions.push(fn);\n  }\n\n  function toHtml(abstractNodes) {\n    var tag = abstractNodes.tag,\n        _abstractNodes$attrib = abstractNodes.attributes,\n        attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n        _abstractNodes$childr = abstractNodes.children,\n        children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n    if (typeof abstractNodes === 'string') {\n      return htmlEscape(abstractNodes);\n    } else {\n      return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n    }\n  }\n\n  function iconFromMapping(mapping, prefix, iconName) {\n    if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n      return {\n        prefix: prefix,\n        iconName: iconName,\n        icon: mapping[prefix][iconName]\n      };\n    }\n  }\n\n  /**\n   * Internal helper to bind a function known to have 4 arguments\n   * to a given context.\n   */\n\n  var bindInternal4 = function bindInternal4(func, thisContext) {\n    return function (a, b, c, d) {\n      return func.call(thisContext, a, b, c, d);\n    };\n  };\n\n  /**\n   * # Reduce\n   *\n   * A fast object `.reduce()` implementation.\n   *\n   * @param  {Object}   subject      The object to reduce over.\n   * @param  {Function} fn           The reducer function.\n   * @param  {mixed}    initialValue The initial value for the reducer, defaults to subject[0].\n   * @param  {Object}   thisContext  The context for the reducer.\n   * @return {mixed}                 The final result.\n   */\n\n\n  var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n    var keys = Object.keys(subject),\n        length = keys.length,\n        iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n        i,\n        key,\n        result;\n\n    if (initialValue === undefined) {\n      i = 1;\n      result = subject[keys[0]];\n    } else {\n      i = 0;\n      result = initialValue;\n    }\n\n    for (; i < length; i++) {\n      key = keys[i];\n      result = iterator(result, subject[key], key, subject);\n    }\n\n    return result;\n  };\n\n  /**\n   * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n   *\n   * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n   * Permission is hereby granted, free of charge, to any person obtaining\n   * a copy of this software and associated documentation files (the\n   * \"Software\"), to deal in the Software without restriction, including\n   * without limitation the rights to use, copy, modify, merge, publish,\n   * distribute, sublicense, and/or sell copies of the Software, and to\n   * permit persons to whom the Software is furnished to do so, subject to\n   * the following conditions:\n\n   * The above copyright notice and this permission notice shall be\n   * included in all copies or substantial portions of the Software.\n\n   * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n   * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n   * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n   * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n   * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n   * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n   */\n  function ucs2decode(string) {\n    var output = [];\n    var counter = 0;\n    var length = string.length;\n\n    while (counter < length) {\n      var value = string.charCodeAt(counter++);\n\n      if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n        var extra = string.charCodeAt(counter++);\n\n        if ((extra & 0xFC00) == 0xDC00) {\n          // eslint-disable-line eqeqeq\n          output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n        } else {\n          output.push(value);\n          counter--;\n        }\n      } else {\n        output.push(value);\n      }\n    }\n\n    return output;\n  }\n\n  function toHex(unicode) {\n    var decoded = ucs2decode(unicode);\n    return decoded.length === 1 ? decoded[0].toString(16) : null;\n  }\n  function codePointAt(string, index) {\n    var size = string.length;\n    var first = string.charCodeAt(index);\n    var second;\n\n    if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n      second = string.charCodeAt(index + 1);\n\n      if (second >= 0xDC00 && second <= 0xDFFF) {\n        return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n      }\n    }\n\n    return first;\n  }\n\n  function normalizeIcons(icons) {\n    return Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n  }\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = normalizeIcons(icons);\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalizeIcons(icons));\n    } else {\n      namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll ease the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n    d1: 1,\n    d2: 2\n  }), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n    cls1: 1,\n    d1: 2,\n    cls2: 3,\n    d2: 4\n  }), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n    cls1: 1,\n    d1: 2\n  })];\n\n  var _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\n  var styles = namespace.styles,\n      shims = namespace.shims;\n  var LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\n  var _defaultUsablePrefix = null;\n  var _byUnicode = {};\n  var _byLigature = {};\n  var _byOldName = {};\n  var _byOldUnicode = {};\n  var _byAlias = {};\n  var PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\n  function isReserved(name) {\n    return ~RESERVED_CLASSES.indexOf(name);\n  }\n\n  function getIconName(cssPrefix, cls) {\n    var parts = cls.split('-');\n    var prefix = parts[0];\n    var iconName = parts.slice(1).join('-');\n\n    if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n      return iconName;\n    } else {\n      return null;\n    }\n  }\n  var build = function build() {\n    var lookup = function lookup(reducer) {\n      return reduce(styles, function (o, style, prefix) {\n        o[prefix] = reduce(style, reducer, {});\n        return o;\n      }, {});\n    };\n\n    _byUnicode = lookup(function (acc, icon, iconName) {\n      if (icon[3]) {\n        acc[icon[3]] = iconName;\n      }\n\n      if (icon[2]) {\n        var aliases = icon[2].filter(function (a) {\n          return typeof a === 'number';\n        });\n        aliases.forEach(function (alias) {\n          acc[alias.toString(16)] = iconName;\n        });\n      }\n\n      return acc;\n    });\n    _byLigature = lookup(function (acc, icon, iconName) {\n      acc[iconName] = iconName;\n\n      if (icon[2]) {\n        var aliases = icon[2].filter(function (a) {\n          return typeof a === 'string';\n        });\n        aliases.forEach(function (alias) {\n          acc[alias] = iconName;\n        });\n      }\n\n      return acc;\n    });\n    _byAlias = lookup(function (acc, icon, iconName) {\n      var aliases = icon[2];\n      acc[iconName] = iconName;\n      aliases.forEach(function (alias) {\n        acc[alias] = iconName;\n      });\n      return acc;\n    }); // If we have a Kit, we can't determine if regular is available since we\n    // could be auto-fetching it. We'll have to assume that it is available.\n\n    var hasRegular = 'far' in styles || config.autoFetchSvg;\n    var shimLookups = reduce(shims, function (acc, shim) {\n      var maybeNameMaybeUnicode = shim[0];\n      var prefix = shim[1];\n      var iconName = shim[2];\n\n      if (prefix === 'far' && !hasRegular) {\n        prefix = 'fas';\n      }\n\n      if (typeof maybeNameMaybeUnicode === 'string') {\n        acc.names[maybeNameMaybeUnicode] = {\n          prefix: prefix,\n          iconName: iconName\n        };\n      }\n\n      if (typeof maybeNameMaybeUnicode === 'number') {\n        acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n          prefix: prefix,\n          iconName: iconName\n        };\n      }\n\n      return acc;\n    }, {\n      names: {},\n      unicodes: {}\n    });\n    _byOldName = shimLookups.names;\n    _byOldUnicode = shimLookups.unicodes;\n    _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n      family: config.familyDefault\n    });\n  };\n  onChange(function (c) {\n    _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n      family: config.familyDefault\n    });\n  });\n  build();\n  function byUnicode(prefix, unicode) {\n    return (_byUnicode[prefix] || {})[unicode];\n  }\n  function byLigature(prefix, ligature) {\n    return (_byLigature[prefix] || {})[ligature];\n  }\n  function byAlias(prefix, alias) {\n    return (_byAlias[prefix] || {})[alias];\n  }\n  function byOldName(name) {\n    return _byOldName[name] || {\n      prefix: null,\n      iconName: null\n    };\n  }\n  function byOldUnicode(unicode) {\n    var oldUnicode = _byOldUnicode[unicode];\n    var newUnicode = byUnicode('fas', unicode);\n    return oldUnicode || (newUnicode ? {\n      prefix: 'fas',\n      iconName: newUnicode\n    } : null) || {\n      prefix: null,\n      iconName: null\n    };\n  }\n  function getDefaultUsablePrefix() {\n    return _defaultUsablePrefix;\n  }\n  var emptyCanonicalIcon = function emptyCanonicalIcon() {\n    return {\n      prefix: null,\n      iconName: null,\n      rest: []\n    };\n  };\n  function getCanonicalPrefix(styleOrPrefix) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$family = params.family,\n        family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n    var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n    var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n    var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n    return prefix || defined || null;\n  }\n  var PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\n  function getCanonicalIcon(values) {\n    var _famProps;\n\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$skipLookups = params.skipLookups,\n        skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n    var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n    var givenPrefix = null;\n    var family = FAMILY_CLASSIC;\n\n    if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n      return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n    })) {\n      family = FAMILY_CLASSIC;\n    }\n\n    if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n      return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n    })) {\n      family = FAMILY_SHARP;\n    }\n\n    var canonical = values.reduce(function (acc, cls) {\n      var iconName = getIconName(config.cssPrefix, cls);\n\n      if (styles[cls]) {\n        cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n        givenPrefix = cls;\n        acc.prefix = cls;\n      } else if (PREFIXES[family].indexOf(cls) > -1) {\n        givenPrefix = cls;\n        acc.prefix = getCanonicalPrefix(cls, {\n          family: family\n        });\n      } else if (iconName) {\n        acc.iconName = iconName;\n      } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n        acc.rest.push(cls);\n      }\n\n      if (!skipLookups && acc.prefix && acc.iconName) {\n        var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n        var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n        if (shim.prefix) {\n          givenPrefix = null;\n        }\n\n        acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n        acc.prefix = shim.prefix || acc.prefix;\n\n        if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n          // Allow a fallback from the regular style to solid if regular is not available\n          // but only if we aren't auto-fetching SVGs\n          acc.prefix = 'fas';\n        }\n      }\n\n      return acc;\n    }, emptyCanonicalIcon());\n\n    if (values.includes('fa-brands') || values.includes('fab')) {\n      canonical.prefix = 'fab';\n    }\n\n    if (values.includes('fa-duotone') || values.includes('fad')) {\n      canonical.prefix = 'fad';\n    }\n\n    if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n      canonical.prefix = 'fass';\n      canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n    }\n\n    if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n      // The fa prefix is not canonical. So if it has made it through until this point\n      // we will shift it to the correct prefix.\n      canonical.prefix = getDefaultUsablePrefix() || 'fas';\n    }\n\n    return canonical;\n  }\n\n  var Library = /*#__PURE__*/function () {\n    function Library() {\n      _classCallCheck(this, Library);\n\n      this.definitions = {};\n    }\n\n    _createClass(Library, [{\n      key: \"add\",\n      value: function add() {\n        var _this = this;\n\n        for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n          definitions[_key] = arguments[_key];\n        }\n\n        var additions = definitions.reduce(this._pullDefinitions, {});\n        Object.keys(additions).forEach(function (key) {\n          _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n          defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n          var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n          if (longPrefix) defineIcons(longPrefix, additions[key]);\n          build();\n        });\n      }\n    }, {\n      key: \"reset\",\n      value: function reset() {\n        this.definitions = {};\n      }\n    }, {\n      key: \"_pullDefinitions\",\n      value: function _pullDefinitions(additions, definition) {\n        var normalized = definition.prefix && definition.iconName && definition.icon ? {\n          0: definition\n        } : definition;\n        Object.keys(normalized).map(function (key) {\n          var _normalized$key = normalized[key],\n              prefix = _normalized$key.prefix,\n              iconName = _normalized$key.iconName,\n              icon = _normalized$key.icon;\n          var aliases = icon[2];\n          if (!additions[prefix]) additions[prefix] = {};\n\n          if (aliases.length > 0) {\n            aliases.forEach(function (alias) {\n              if (typeof alias === 'string') {\n                additions[prefix][alias] = icon;\n              }\n            });\n          }\n\n          additions[prefix][iconName] = icon;\n        });\n        return additions;\n      }\n    }]);\n\n    return Library;\n  }();\n\n  var _plugins = [];\n  var _hooks = {};\n  var providers = {};\n  var defaultProviderKeys = Object.keys(providers);\n  function registerPlugins(nextPlugins, _ref) {\n    var obj = _ref.mixoutsTo;\n    _plugins = nextPlugins;\n    _hooks = {};\n    Object.keys(providers).forEach(function (k) {\n      if (defaultProviderKeys.indexOf(k) === -1) {\n        delete providers[k];\n      }\n    });\n\n    _plugins.forEach(function (plugin) {\n      var mixout = plugin.mixout ? plugin.mixout() : {};\n      Object.keys(mixout).forEach(function (tk) {\n        if (typeof mixout[tk] === 'function') {\n          obj[tk] = mixout[tk];\n        }\n\n        if (_typeof(mixout[tk]) === 'object') {\n          Object.keys(mixout[tk]).forEach(function (sk) {\n            if (!obj[tk]) {\n              obj[tk] = {};\n            }\n\n            obj[tk][sk] = mixout[tk][sk];\n          });\n        }\n      });\n\n      if (plugin.hooks) {\n        var hooks = plugin.hooks();\n        Object.keys(hooks).forEach(function (hook) {\n          if (!_hooks[hook]) {\n            _hooks[hook] = [];\n          }\n\n          _hooks[hook].push(hooks[hook]);\n        });\n      }\n\n      if (plugin.provides) {\n        plugin.provides(providers);\n      }\n    });\n\n    return obj;\n  }\n  function chainHooks(hook, accumulator) {\n    for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    var hookFns = _hooks[hook] || [];\n    hookFns.forEach(function (hookFn) {\n      accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n    });\n    return accumulator;\n  }\n  function callHooks(hook) {\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    var hookFns = _hooks[hook] || [];\n    hookFns.forEach(function (hookFn) {\n      hookFn.apply(null, args);\n    });\n    return undefined;\n  }\n  function callProvided() {\n    var hook = arguments[0];\n    var args = Array.prototype.slice.call(arguments, 1);\n    return providers[hook] ? providers[hook].apply(null, args) : undefined;\n  }\n\n  function findIconDefinition(iconLookup) {\n    if (iconLookup.prefix === 'fa') {\n      iconLookup.prefix = 'fas';\n    }\n\n    var iconName = iconLookup.iconName;\n    var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n    if (!iconName) return;\n    iconName = byAlias(prefix, iconName) || iconName;\n    return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n  }\n  var library = new Library();\n  var noAuto = function noAuto() {\n    config.autoReplaceSvg = false;\n    config.observeMutations = false;\n    callHooks('noAuto');\n  };\n  var dom = {\n    i2svg: function i2svg() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      if (IS_DOM) {\n        callHooks('beforeI2svg', params);\n        callProvided('pseudoElements2svg', params);\n        return callProvided('i2svg', params);\n      } else {\n        return Promise.reject('Operation requires a DOM of some kind.');\n      }\n    },\n    watch: function watch() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n      if (config.autoReplaceSvg === false) {\n        config.autoReplaceSvg = true;\n      }\n\n      config.observeMutations = true;\n      domready(function () {\n        autoReplace({\n          autoReplaceSvgRoot: autoReplaceSvgRoot\n        });\n        callHooks('watch', params);\n      });\n    }\n  };\n  var parse = {\n    icon: function icon(_icon) {\n      if (_icon === null) {\n        return null;\n      }\n\n      if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n        return {\n          prefix: _icon.prefix,\n          iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n        };\n      }\n\n      if (Array.isArray(_icon) && _icon.length === 2) {\n        var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n        var prefix = getCanonicalPrefix(_icon[0]);\n        return {\n          prefix: prefix,\n          iconName: byAlias(prefix, iconName) || iconName\n        };\n      }\n\n      if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n        var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n          skipLookups: true\n        });\n        return {\n          prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n          iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n        };\n      }\n\n      if (typeof _icon === 'string') {\n        var _prefix = getDefaultUsablePrefix();\n\n        return {\n          prefix: _prefix,\n          iconName: byAlias(_prefix, _icon) || _icon\n        };\n      }\n    }\n  };\n  var api = {\n    noAuto: noAuto,\n    config: config,\n    dom: dom,\n    parse: parse,\n    library: library,\n    findIconDefinition: findIconDefinition,\n    toHtml: toHtml\n  };\n\n  var autoReplace = function autoReplace() {\n    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n        autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n    if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n      node: autoReplaceSvgRoot\n    });\n  };\n\n  function bootstrap(plugins) {\n    if (IS_BROWSER) {\n      if (!WINDOW.FontAwesome) {\n        WINDOW.FontAwesome = api;\n      }\n\n      domready(function () {\n        autoReplace();\n        callHooks('bootstrap');\n      });\n    }\n\n    namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, {\n      addPack: function addPack(prefix, icons) {\n        namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n        build();\n        autoReplace();\n      },\n      addPacks: function addPacks(packs) {\n        packs.forEach(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n              prefix = _ref2[0],\n              icons = _ref2[1];\n\n          namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n        });\n        build();\n        autoReplace();\n      },\n      addShims: function addShims(shims) {\n        var _namespace$shims;\n\n        (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n        build();\n        autoReplace();\n      }\n    });\n  }\n\n  function domVariants(val, abstractCreator) {\n    Object.defineProperty(val, 'abstract', {\n      get: abstractCreator\n    });\n    Object.defineProperty(val, 'html', {\n      get: function get() {\n        return val.abstract.map(function (a) {\n          return toHtml(a);\n        });\n      }\n    });\n    Object.defineProperty(val, 'node', {\n      get: function get() {\n        if (!IS_DOM) return;\n        var container = DOCUMENT.createElement('div');\n        container.innerHTML = val.html;\n        return container.children;\n      }\n    });\n    return val;\n  }\n\n  function asIcon (_ref) {\n    var children = _ref.children,\n        main = _ref.main,\n        mask = _ref.mask,\n        attributes = _ref.attributes,\n        styles = _ref.styles,\n        transform = _ref.transform;\n\n    if (transformIsMeaningful(transform) && main.found && !mask.found) {\n      var width = main.width,\n          height = main.height;\n      var offset = {\n        x: width / height / 2,\n        y: 0.5\n      };\n      attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n        'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n      }));\n    }\n\n    return [{\n      tag: 'svg',\n      attributes: attributes,\n      children: children\n    }];\n  }\n\n  function asSymbol (_ref) {\n    var prefix = _ref.prefix,\n        iconName = _ref.iconName,\n        children = _ref.children,\n        attributes = _ref.attributes,\n        symbol = _ref.symbol;\n    var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n    return [{\n      tag: 'svg',\n      attributes: {\n        style: 'display: none;'\n      },\n      children: [{\n        tag: 'symbol',\n        attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n          id: id\n        }),\n        children: children\n      }]\n    }];\n  }\n\n  function makeInlineSvgAbstract(params) {\n    var _params$icons = params.icons,\n        main = _params$icons.main,\n        mask = _params$icons.mask,\n        prefix = params.prefix,\n        iconName = params.iconName,\n        transform = params.transform,\n        symbol = params.symbol,\n        title = params.title,\n        maskId = params.maskId,\n        titleId = params.titleId,\n        extra = params.extra,\n        _params$watchable = params.watchable,\n        watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n    var _ref = mask.found ? mask : main,\n        width = _ref.width,\n        height = _ref.height;\n\n    var isUploadedIcon = prefix === 'fak';\n    var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n      return extra.classes.indexOf(c) === -1;\n    }).filter(function (c) {\n      return c !== '' || !!c;\n    }).concat(extra.classes).join(' ');\n    var content = {\n      children: [],\n      attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n        'data-prefix': prefix,\n        'data-icon': iconName,\n        'class': attrClass,\n        'role': extra.attributes.role || 'img',\n        'xmlns': 'http://www.w3.org/2000/svg',\n        'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n      })\n    };\n    var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n      width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n    } : {};\n\n    if (watchable) {\n      content.attributes[DATA_FA_I2SVG] = '';\n    }\n\n    if (title) {\n      content.children.push({\n        tag: 'title',\n        attributes: {\n          id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n        },\n        children: [title]\n      });\n      delete content.attributes.title;\n    }\n\n    var args = _objectSpread2(_objectSpread2({}, content), {}, {\n      prefix: prefix,\n      iconName: iconName,\n      main: main,\n      mask: mask,\n      maskId: maskId,\n      transform: transform,\n      symbol: symbol,\n      styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n    });\n\n    var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n      children: [],\n      attributes: {}\n    } : callProvided('generateAbstractIcon', args) || {\n      children: [],\n      attributes: {}\n    },\n        children = _ref2.children,\n        attributes = _ref2.attributes;\n\n    args.children = children;\n    args.attributes = attributes;\n\n    if (symbol) {\n      return asSymbol(args);\n    } else {\n      return asIcon(args);\n    }\n  }\n  function makeLayersTextAbstract(params) {\n    var content = params.content,\n        width = params.width,\n        height = params.height,\n        transform = params.transform,\n        title = params.title,\n        extra = params.extra,\n        _params$watchable2 = params.watchable,\n        watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n    var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n      'title': title\n    } : {}), {}, {\n      'class': extra.classes.join(' ')\n    });\n\n    if (watchable) {\n      attributes[DATA_FA_I2SVG] = '';\n    }\n\n    var styles = _objectSpread2({}, extra.styles);\n\n    if (transformIsMeaningful(transform)) {\n      styles['transform'] = transformForCss({\n        transform: transform,\n        startCentered: true,\n        width: width,\n        height: height\n      });\n      styles['-webkit-transform'] = styles['transform'];\n    }\n\n    var styleString = joinStyles(styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    var val = [];\n    val.push({\n      tag: 'span',\n      attributes: attributes,\n      children: [content]\n    });\n\n    if (title) {\n      val.push({\n        tag: 'span',\n        attributes: {\n          class: 'sr-only'\n        },\n        children: [title]\n      });\n    }\n\n    return val;\n  }\n  function makeLayersCounterAbstract(params) {\n    var content = params.content,\n        title = params.title,\n        extra = params.extra;\n\n    var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n      'title': title\n    } : {}), {}, {\n      'class': extra.classes.join(' ')\n    });\n\n    var styleString = joinStyles(extra.styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    var val = [];\n    val.push({\n      tag: 'span',\n      attributes: attributes,\n      children: [content]\n    });\n\n    if (title) {\n      val.push({\n        tag: 'span',\n        attributes: {\n          class: 'sr-only'\n        },\n        children: [title]\n      });\n    }\n\n    return val;\n  }\n\n  var styles$1 = namespace.styles;\n  function asFoundIcon(icon) {\n    var width = icon[0];\n    var height = icon[1];\n\n    var _icon$slice = icon.slice(4),\n        _icon$slice2 = _slicedToArray(_icon$slice, 1),\n        vectorData = _icon$slice2[0];\n\n    var element = null;\n\n    if (Array.isArray(vectorData)) {\n      element = {\n        tag: 'g',\n        attributes: {\n          class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n        },\n        children: [{\n          tag: 'path',\n          attributes: {\n            class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n            fill: 'currentColor',\n            d: vectorData[0]\n          }\n        }, {\n          tag: 'path',\n          attributes: {\n            class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n            fill: 'currentColor',\n            d: vectorData[1]\n          }\n        }]\n      };\n    } else {\n      element = {\n        tag: 'path',\n        attributes: {\n          fill: 'currentColor',\n          d: vectorData\n        }\n      };\n    }\n\n    return {\n      found: true,\n      width: width,\n      height: height,\n      icon: element\n    };\n  }\n  var missingIconResolutionMixin = {\n    found: false,\n    width: 512,\n    height: 512\n  };\n\n  function maybeNotifyMissing(iconName, prefix) {\n    if (!PRODUCTION && !config.showMissingIcons && iconName) {\n      console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n    }\n  }\n\n  function findIcon(iconName, prefix) {\n    var givenPrefix = prefix;\n\n    if (prefix === 'fa' && config.styleDefault !== null) {\n      prefix = getDefaultUsablePrefix();\n    }\n\n    return new Promise(function (resolve, reject) {\n      var val = {\n        found: false,\n        width: 512,\n        height: 512,\n        icon: callProvided('missingIconAbstract') || {}\n      };\n\n      if (givenPrefix === 'fa') {\n        var shim = byOldName(iconName) || {};\n        iconName = shim.iconName || iconName;\n        prefix = shim.prefix || prefix;\n      }\n\n      if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n        var icon = styles$1[prefix][iconName];\n        return resolve(asFoundIcon(icon));\n      }\n\n      maybeNotifyMissing(iconName, prefix);\n      resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n        icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n      }));\n    });\n  }\n\n  var noop$1 = function noop() {};\n\n  var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n    mark: noop$1,\n    measure: noop$1\n  };\n  var preamble = \"FA \\\"6.2.1\\\"\";\n\n  var begin = function begin(name) {\n    p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n    return function () {\n      return end(name);\n    };\n  };\n\n  var end = function end(name) {\n    p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n    p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n  };\n\n  var perf = {\n    begin: begin,\n    end: end\n  };\n\n  var noop$2 = function noop() {};\n\n  function isWatched(node) {\n    var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n    return typeof i2svg === 'string';\n  }\n\n  function hasPrefixAndIcon(node) {\n    var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n    var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n    return prefix && icon;\n  }\n\n  function hasBeenReplaced(node) {\n    return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n  }\n\n  function getMutator() {\n    if (config.autoReplaceSvg === true) {\n      return mutators.replace;\n    }\n\n    var mutator = mutators[config.autoReplaceSvg];\n    return mutator || mutators.replace;\n  }\n\n  function createElementNS(tag) {\n    return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n  }\n\n  function createElement(tag) {\n    return DOCUMENT.createElement(tag);\n  }\n\n  function convertSVG(abstractObj) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$ceFn = params.ceFn,\n        ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n    if (typeof abstractObj === 'string') {\n      return DOCUMENT.createTextNode(abstractObj);\n    }\n\n    var tag = ceFn(abstractObj.tag);\n    Object.keys(abstractObj.attributes || []).forEach(function (key) {\n      tag.setAttribute(key, abstractObj.attributes[key]);\n    });\n    var children = abstractObj.children || [];\n    children.forEach(function (child) {\n      tag.appendChild(convertSVG(child, {\n        ceFn: ceFn\n      }));\n    });\n    return tag;\n  }\n\n  function nodeAsComment(node) {\n    var comment = \" \".concat(node.outerHTML, \" \");\n    /* BEGIN.ATTRIBUTION */\n\n    comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n    /* END.ATTRIBUTION */\n\n    return comment;\n  }\n\n  var mutators = {\n    replace: function replace(mutation) {\n      var node = mutation[0];\n\n      if (node.parentNode) {\n        mutation[1].forEach(function (abstract) {\n          node.parentNode.insertBefore(convertSVG(abstract), node);\n        });\n\n        if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n          var comment = DOCUMENT.createComment(nodeAsComment(node));\n          node.parentNode.replaceChild(comment, node);\n        } else {\n          node.remove();\n        }\n      }\n    },\n    nest: function nest(mutation) {\n      var node = mutation[0];\n      var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n      // Short-circuit to the standard replacement\n\n      if (~classArray(node).indexOf(config.replacementClass)) {\n        return mutators.replace(mutation);\n      }\n\n      var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n      delete abstract[0].attributes.id;\n\n      if (abstract[0].attributes.class) {\n        var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n          if (cls === config.replacementClass || cls.match(forSvg)) {\n            acc.toSvg.push(cls);\n          } else {\n            acc.toNode.push(cls);\n          }\n\n          return acc;\n        }, {\n          toNode: [],\n          toSvg: []\n        });\n        abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n        if (splitClasses.toNode.length === 0) {\n          node.removeAttribute('class');\n        } else {\n          node.setAttribute('class', splitClasses.toNode.join(' '));\n        }\n      }\n\n      var newInnerHTML = abstract.map(function (a) {\n        return toHtml(a);\n      }).join('\\n');\n      node.setAttribute(DATA_FA_I2SVG, '');\n      node.innerHTML = newInnerHTML;\n    }\n  };\n\n  function performOperationSync(op) {\n    op();\n  }\n\n  function perform(mutations, callback) {\n    var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n    if (mutations.length === 0) {\n      callbackFunction();\n    } else {\n      var frame = performOperationSync;\n\n      if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n        frame = WINDOW.requestAnimationFrame || performOperationSync;\n      }\n\n      frame(function () {\n        var mutator = getMutator();\n        var mark = perf.begin('mutate');\n        mutations.map(mutator);\n        mark();\n        callbackFunction();\n      });\n    }\n  }\n  var disabled = false;\n  function disableObservation() {\n    disabled = true;\n  }\n  function enableObservation() {\n    disabled = false;\n  }\n  var mo = null;\n  function observe(options) {\n    if (!MUTATION_OBSERVER) {\n      return;\n    }\n\n    if (!config.observeMutations) {\n      return;\n    }\n\n    var _options$treeCallback = options.treeCallback,\n        treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n        _options$nodeCallback = options.nodeCallback,\n        nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n        _options$pseudoElemen = options.pseudoElementsCallback,\n        pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n        _options$observeMutat = options.observeMutationsRoot,\n        observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n    mo = new MUTATION_OBSERVER(function (objects) {\n      if (disabled) return;\n      var defaultPrefix = getDefaultUsablePrefix();\n      toArray(objects).forEach(function (mutationRecord) {\n        if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n          if (config.searchPseudoElements) {\n            pseudoElementsCallback(mutationRecord.target);\n          }\n\n          treeCallback(mutationRecord.target);\n        }\n\n        if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n          pseudoElementsCallback(mutationRecord.target.parentNode);\n        }\n\n        if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n          if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n            var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n                prefix = _getCanonicalIcon.prefix,\n                iconName = _getCanonicalIcon.iconName;\n\n            mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n            if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n          } else if (hasBeenReplaced(mutationRecord.target)) {\n            nodeCallback(mutationRecord.target);\n          }\n        }\n      });\n    });\n    if (!IS_DOM) return;\n    mo.observe(observeMutationsRoot, {\n      childList: true,\n      attributes: true,\n      characterData: true,\n      subtree: true\n    });\n  }\n  function disconnect() {\n    if (!mo) return;\n    mo.disconnect();\n  }\n\n  function styleParser (node) {\n    var style = node.getAttribute('style');\n    var val = [];\n\n    if (style) {\n      val = style.split(';').reduce(function (acc, style) {\n        var styles = style.split(':');\n        var prop = styles[0];\n        var value = styles.slice(1);\n\n        if (prop && value.length > 0) {\n          acc[prop] = value.join(':').trim();\n        }\n\n        return acc;\n      }, {});\n    }\n\n    return val;\n  }\n\n  function classParser (node) {\n    var existingPrefix = node.getAttribute('data-prefix');\n    var existingIconName = node.getAttribute('data-icon');\n    var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n    var val = getCanonicalIcon(classArray(node));\n\n    if (!val.prefix) {\n      val.prefix = getDefaultUsablePrefix();\n    }\n\n    if (existingPrefix && existingIconName) {\n      val.prefix = existingPrefix;\n      val.iconName = existingIconName;\n    }\n\n    if (val.iconName && val.prefix) {\n      return val;\n    }\n\n    if (val.prefix && innerText.length > 0) {\n      val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n    }\n\n    if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n      val.iconName = node.firstChild.data;\n    }\n\n    return val;\n  }\n\n  function attributesParser (node) {\n    var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n      if (acc.name !== 'class' && acc.name !== 'style') {\n        acc[attr.name] = attr.value;\n      }\n\n      return acc;\n    }, {});\n    var title = node.getAttribute('title');\n    var titleId = node.getAttribute('data-fa-title-id');\n\n    if (config.autoA11y) {\n      if (title) {\n        extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n      } else {\n        extraAttributes['aria-hidden'] = 'true';\n        extraAttributes['focusable'] = 'false';\n      }\n    }\n\n    return extraAttributes;\n  }\n\n  function blankMeta() {\n    return {\n      iconName: null,\n      title: null,\n      titleId: null,\n      prefix: null,\n      transform: meaninglessTransform,\n      symbol: false,\n      mask: {\n        iconName: null,\n        prefix: null,\n        rest: []\n      },\n      maskId: null,\n      extra: {\n        classes: [],\n        styles: {},\n        attributes: {}\n      }\n    };\n  }\n  function parseMeta(node) {\n    var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      styleParser: true\n    };\n\n    var _classParser = classParser(node),\n        iconName = _classParser.iconName,\n        prefix = _classParser.prefix,\n        extraClasses = _classParser.rest;\n\n    var extraAttributes = attributesParser(node);\n    var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n    var extraStyles = parser.styleParser ? styleParser(node) : [];\n    return _objectSpread2({\n      iconName: iconName,\n      title: node.getAttribute('title'),\n      titleId: node.getAttribute('data-fa-title-id'),\n      prefix: prefix,\n      transform: meaninglessTransform,\n      mask: {\n        iconName: null,\n        prefix: null,\n        rest: []\n      },\n      maskId: null,\n      symbol: false,\n      extra: {\n        classes: extraClasses,\n        styles: extraStyles,\n        attributes: extraAttributes\n      }\n    }, pluginMeta);\n  }\n\n  var styles$2 = namespace.styles;\n\n  function generateMutation(node) {\n    var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n      styleParser: false\n    }) : parseMeta(node);\n\n    if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n      return callProvided('generateLayersText', node, nodeMeta);\n    } else {\n      return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n    }\n  }\n\n  var knownPrefixes = new Set();\n  FAMILIES.map(function (family) {\n    knownPrefixes.add(\"fa-\".concat(family));\n  });\n  Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\n  Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\n  knownPrefixes = _toConsumableArray(knownPrefixes);\n\n  function onTree(root) {\n    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    if (!IS_DOM) return Promise.resolve();\n    var htmlClassList = DOCUMENT.documentElement.classList;\n\n    var hclAdd = function hclAdd(suffix) {\n      return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n    };\n\n    var hclRemove = function hclRemove(suffix) {\n      return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n    };\n\n    var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n      return \"fa-\".concat(f);\n    }).concat(Object.keys(styles$2));\n\n    if (!prefixes.includes('fa')) {\n      prefixes.push('fa');\n    }\n\n    var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n      return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n    })).join(', ');\n\n    if (prefixesDomQuery.length === 0) {\n      return Promise.resolve();\n    }\n\n    var candidates = [];\n\n    try {\n      candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n    } catch (e) {// noop\n    }\n\n    if (candidates.length > 0) {\n      hclAdd('pending');\n      hclRemove('complete');\n    } else {\n      return Promise.resolve();\n    }\n\n    var mark = perf.begin('onTree');\n    var mutations = candidates.reduce(function (acc, node) {\n      try {\n        var mutation = generateMutation(node);\n\n        if (mutation) {\n          acc.push(mutation);\n        }\n      } catch (e) {\n        if (!PRODUCTION) {\n          if (e.name === 'MissingIcon') {\n            console.error(e);\n          }\n        }\n      }\n\n      return acc;\n    }, []);\n    return new Promise(function (resolve, reject) {\n      Promise.all(mutations).then(function (resolvedMutations) {\n        perform(resolvedMutations, function () {\n          hclAdd('active');\n          hclAdd('complete');\n          hclRemove('pending');\n          if (typeof callback === 'function') callback();\n          mark();\n          resolve();\n        });\n      }).catch(function (e) {\n        mark();\n        reject(e);\n      });\n    });\n  }\n\n  function onNode(node) {\n    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    generateMutation(node).then(function (mutation) {\n      if (mutation) {\n        perform([mutation], callback);\n      }\n    });\n  }\n\n  function resolveIcons(next) {\n    return function (maybeIconDefinition) {\n      var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n      var mask = params.mask;\n\n      if (mask) {\n        mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n      }\n\n      return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n        mask: mask\n      }));\n    };\n  }\n\n  var render = function render(iconDefinition) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$transform = params.transform,\n        transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n        _params$symbol = params.symbol,\n        symbol = _params$symbol === void 0 ? false : _params$symbol,\n        _params$mask = params.mask,\n        mask = _params$mask === void 0 ? null : _params$mask,\n        _params$maskId = params.maskId,\n        maskId = _params$maskId === void 0 ? null : _params$maskId,\n        _params$title = params.title,\n        title = _params$title === void 0 ? null : _params$title,\n        _params$titleId = params.titleId,\n        titleId = _params$titleId === void 0 ? null : _params$titleId,\n        _params$classes = params.classes,\n        classes = _params$classes === void 0 ? [] : _params$classes,\n        _params$attributes = params.attributes,\n        attributes = _params$attributes === void 0 ? {} : _params$attributes,\n        _params$styles = params.styles,\n        styles = _params$styles === void 0 ? {} : _params$styles;\n    if (!iconDefinition) return;\n    var prefix = iconDefinition.prefix,\n        iconName = iconDefinition.iconName,\n        icon = iconDefinition.icon;\n    return domVariants(_objectSpread2({\n      type: 'icon'\n    }, iconDefinition), function () {\n      callHooks('beforeDOMElementCreation', {\n        iconDefinition: iconDefinition,\n        params: params\n      });\n\n      if (config.autoA11y) {\n        if (title) {\n          attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n        } else {\n          attributes['aria-hidden'] = 'true';\n          attributes['focusable'] = 'false';\n        }\n      }\n\n      return makeInlineSvgAbstract({\n        icons: {\n          main: asFoundIcon(icon),\n          mask: mask ? asFoundIcon(mask.icon) : {\n            found: false,\n            width: null,\n            height: null,\n            icon: {}\n          }\n        },\n        prefix: prefix,\n        iconName: iconName,\n        transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n        symbol: symbol,\n        title: title,\n        maskId: maskId,\n        titleId: titleId,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: classes\n        }\n      });\n    });\n  };\n  var ReplaceElements = {\n    mixout: function mixout() {\n      return {\n        icon: resolveIcons(render)\n      };\n    },\n    hooks: function hooks() {\n      return {\n        mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n          accumulator.treeCallback = onTree;\n          accumulator.nodeCallback = onNode;\n          return accumulator;\n        }\n      };\n    },\n    provides: function provides(providers$$1) {\n      providers$$1.i2svg = function (params) {\n        var _params$node = params.node,\n            node = _params$node === void 0 ? DOCUMENT : _params$node,\n            _params$callback = params.callback,\n            callback = _params$callback === void 0 ? function () {} : _params$callback;\n        return onTree(node, callback);\n      };\n\n      providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n        var iconName = nodeMeta.iconName,\n            title = nodeMeta.title,\n            titleId = nodeMeta.titleId,\n            prefix = nodeMeta.prefix,\n            transform = nodeMeta.transform,\n            symbol = nodeMeta.symbol,\n            mask = nodeMeta.mask,\n            maskId = nodeMeta.maskId,\n            extra = nodeMeta.extra;\n        return new Promise(function (resolve, reject) {\n          Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n            found: false,\n            width: 512,\n            height: 512,\n            icon: {}\n          })]).then(function (_ref) {\n            var _ref2 = _slicedToArray(_ref, 2),\n                main = _ref2[0],\n                mask = _ref2[1];\n\n            resolve([node, makeInlineSvgAbstract({\n              icons: {\n                main: main,\n                mask: mask\n              },\n              prefix: prefix,\n              iconName: iconName,\n              transform: transform,\n              symbol: symbol,\n              maskId: maskId,\n              title: title,\n              titleId: titleId,\n              extra: extra,\n              watchable: true\n            })]);\n          }).catch(reject);\n        });\n      };\n\n      providers$$1.generateAbstractIcon = function (_ref3) {\n        var children = _ref3.children,\n            attributes = _ref3.attributes,\n            main = _ref3.main,\n            transform = _ref3.transform,\n            styles = _ref3.styles;\n        var styleString = joinStyles(styles);\n\n        if (styleString.length > 0) {\n          attributes['style'] = styleString;\n        }\n\n        var nextChild;\n\n        if (transformIsMeaningful(transform)) {\n          nextChild = callProvided('generateAbstractTransformGrouping', {\n            main: main,\n            transform: transform,\n            containerWidth: main.width,\n            iconWidth: main.width\n          });\n        }\n\n        children.push(nextChild || main.icon);\n        return {\n          children: children,\n          attributes: attributes\n        };\n      };\n    }\n  };\n\n  var Layers = {\n    mixout: function mixout() {\n      return {\n        layer: function layer(assembler) {\n          var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          var _params$classes = params.classes,\n              classes = _params$classes === void 0 ? [] : _params$classes;\n          return domVariants({\n            type: 'layer'\n          }, function () {\n            callHooks('beforeDOMElementCreation', {\n              assembler: assembler,\n              params: params\n            });\n            var children = [];\n            assembler(function (args) {\n              Array.isArray(args) ? args.map(function (a) {\n                children = children.concat(a.abstract);\n              }) : children = children.concat(args.abstract);\n            });\n            return [{\n              tag: 'span',\n              attributes: {\n                class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n              },\n              children: children\n            }];\n          });\n        }\n      };\n    }\n  };\n\n  var LayersCounter = {\n    mixout: function mixout() {\n      return {\n        counter: function counter(content) {\n          var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          var _params$title = params.title,\n              title = _params$title === void 0 ? null : _params$title,\n              _params$classes = params.classes,\n              classes = _params$classes === void 0 ? [] : _params$classes,\n              _params$attributes = params.attributes,\n              attributes = _params$attributes === void 0 ? {} : _params$attributes,\n              _params$styles = params.styles,\n              styles = _params$styles === void 0 ? {} : _params$styles;\n          return domVariants({\n            type: 'counter',\n            content: content\n          }, function () {\n            callHooks('beforeDOMElementCreation', {\n              content: content,\n              params: params\n            });\n            return makeLayersCounterAbstract({\n              content: content.toString(),\n              title: title,\n              extra: {\n                attributes: attributes,\n                styles: styles,\n                classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n              }\n            });\n          });\n        }\n      };\n    }\n  };\n\n  var LayersText = {\n    mixout: function mixout() {\n      return {\n        text: function text(content) {\n          var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n          var _params$transform = params.transform,\n              transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n              _params$title = params.title,\n              title = _params$title === void 0 ? null : _params$title,\n              _params$classes = params.classes,\n              classes = _params$classes === void 0 ? [] : _params$classes,\n              _params$attributes = params.attributes,\n              attributes = _params$attributes === void 0 ? {} : _params$attributes,\n              _params$styles = params.styles,\n              styles = _params$styles === void 0 ? {} : _params$styles;\n          return domVariants({\n            type: 'text',\n            content: content\n          }, function () {\n            callHooks('beforeDOMElementCreation', {\n              content: content,\n              params: params\n            });\n            return makeLayersTextAbstract({\n              content: content,\n              transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n              title: title,\n              extra: {\n                attributes: attributes,\n                styles: styles,\n                classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n              }\n            });\n          });\n        }\n      };\n    },\n    provides: function provides(providers$$1) {\n      providers$$1.generateLayersText = function (node, nodeMeta) {\n        var title = nodeMeta.title,\n            transform = nodeMeta.transform,\n            extra = nodeMeta.extra;\n        var width = null;\n        var height = null;\n\n        if (IS_IE) {\n          var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n          var boundingClientRect = node.getBoundingClientRect();\n          width = boundingClientRect.width / computedFontSize;\n          height = boundingClientRect.height / computedFontSize;\n        }\n\n        if (config.autoA11y && !title) {\n          extra.attributes['aria-hidden'] = 'true';\n        }\n\n        return Promise.resolve([node, makeLayersTextAbstract({\n          content: node.innerHTML,\n          width: width,\n          height: height,\n          transform: transform,\n          title: title,\n          extra: extra,\n          watchable: true\n        })]);\n      };\n    }\n  };\n\n  var CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\n  var SECONDARY_UNICODE_RANGE = [1105920, 1112319];\n  function hexValueFromContent(content) {\n    var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n    var codePoint = codePointAt(cleaned, 0);\n    var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n    var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n    return {\n      value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n      isSecondary: isPrependTen || isDoubled\n    };\n  }\n\n  function replaceForPosition(node, position) {\n    var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n    return new Promise(function (resolve, reject) {\n      if (node.getAttribute(pendingAttribute) !== null) {\n        // This node is already being processed\n        return resolve();\n      }\n\n      var children = toArray(node.children);\n      var alreadyProcessedPseudoElement = children.filter(function (c) {\n        return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n      })[0];\n      var styles = WINDOW.getComputedStyle(node, position);\n      var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n      var fontWeight = styles.getPropertyValue('font-weight');\n      var content = styles.getPropertyValue('content');\n\n      if (alreadyProcessedPseudoElement && !fontFamily) {\n        // If we've already processed it but the current computed style does not result in a font-family,\n        // that probably means that a class name that was previously present to make the icon has been\n        // removed. So we now should delete the icon.\n        node.removeChild(alreadyProcessedPseudoElement);\n        return resolve();\n      } else if (fontFamily && content !== 'none' && content !== '') {\n        var _content = styles.getPropertyValue('content');\n\n        var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n        var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n        var _hexValueFromContent = hexValueFromContent(_content),\n            hexValue = _hexValueFromContent.value,\n            isSecondary = _hexValueFromContent.isSecondary;\n\n        var isV4 = fontFamily[0].startsWith('FontAwesome');\n        var iconName = byUnicode(prefix, hexValue);\n        var iconIdentifier = iconName;\n\n        if (isV4) {\n          var iconName4 = byOldUnicode(hexValue);\n\n          if (iconName4.iconName && iconName4.prefix) {\n            iconName = iconName4.iconName;\n            prefix = iconName4.prefix;\n          }\n        } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n        // already done so with the same prefix and iconName\n\n\n        if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n          node.setAttribute(pendingAttribute, iconIdentifier);\n\n          if (alreadyProcessedPseudoElement) {\n            // Delete the old one, since we're replacing it with a new one\n            node.removeChild(alreadyProcessedPseudoElement);\n          }\n\n          var meta = blankMeta();\n          var extra = meta.extra;\n          extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n          findIcon(iconName, prefix).then(function (main) {\n            var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n              icons: {\n                main: main,\n                mask: emptyCanonicalIcon()\n              },\n              prefix: prefix,\n              iconName: iconIdentifier,\n              extra: extra,\n              watchable: true\n            }));\n            var element = DOCUMENT.createElement('svg');\n\n            if (position === '::before') {\n              node.insertBefore(element, node.firstChild);\n            } else {\n              node.appendChild(element);\n            }\n\n            element.outerHTML = abstract.map(function (a) {\n              return toHtml(a);\n            }).join('\\n');\n            node.removeAttribute(pendingAttribute);\n            resolve();\n          }).catch(reject);\n        } else {\n          resolve();\n        }\n      } else {\n        resolve();\n      }\n    });\n  }\n\n  function replace(node) {\n    return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n  }\n\n  function processable(node) {\n    return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n  }\n\n  function searchPseudoElements(root) {\n    if (!IS_DOM) return;\n    return new Promise(function (resolve, reject) {\n      var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n      var end = perf.begin('searchPseudoElements');\n      disableObservation();\n      Promise.all(operations).then(function () {\n        end();\n        enableObservation();\n        resolve();\n      }).catch(function () {\n        end();\n        enableObservation();\n        reject();\n      });\n    });\n  }\n\n  var PseudoElements = {\n    hooks: function hooks() {\n      return {\n        mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n          accumulator.pseudoElementsCallback = searchPseudoElements;\n          return accumulator;\n        }\n      };\n    },\n    provides: function provides(providers$$1) {\n      providers$$1.pseudoElements2svg = function (params) {\n        var _params$node = params.node,\n            node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n        if (config.searchPseudoElements) {\n          searchPseudoElements(node);\n        }\n      };\n    }\n  };\n\n  var _unwatched = false;\n  var MutationObserver$1 = {\n    mixout: function mixout() {\n      return {\n        dom: {\n          unwatch: function unwatch() {\n            disableObservation();\n            _unwatched = true;\n          }\n        }\n      };\n    },\n    hooks: function hooks() {\n      return {\n        bootstrap: function bootstrap() {\n          observe(chainHooks('mutationObserverCallbacks', {}));\n        },\n        noAuto: function noAuto() {\n          disconnect();\n        },\n        watch: function watch(params) {\n          var observeMutationsRoot = params.observeMutationsRoot;\n\n          if (_unwatched) {\n            enableObservation();\n          } else {\n            observe(chainHooks('mutationObserverCallbacks', {\n              observeMutationsRoot: observeMutationsRoot\n            }));\n          }\n        }\n      };\n    }\n  };\n\n  var parseTransformString = function parseTransformString(transformString) {\n    var transform = {\n      size: 16,\n      x: 0,\n      y: 0,\n      flipX: false,\n      flipY: false,\n      rotate: 0\n    };\n    return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n      var parts = n.toLowerCase().split('-');\n      var first = parts[0];\n      var rest = parts.slice(1).join('-');\n\n      if (first && rest === 'h') {\n        acc.flipX = true;\n        return acc;\n      }\n\n      if (first && rest === 'v') {\n        acc.flipY = true;\n        return acc;\n      }\n\n      rest = parseFloat(rest);\n\n      if (isNaN(rest)) {\n        return acc;\n      }\n\n      switch (first) {\n        case 'grow':\n          acc.size = acc.size + rest;\n          break;\n\n        case 'shrink':\n          acc.size = acc.size - rest;\n          break;\n\n        case 'left':\n          acc.x = acc.x - rest;\n          break;\n\n        case 'right':\n          acc.x = acc.x + rest;\n          break;\n\n        case 'up':\n          acc.y = acc.y - rest;\n          break;\n\n        case 'down':\n          acc.y = acc.y + rest;\n          break;\n\n        case 'rotate':\n          acc.rotate = acc.rotate + rest;\n          break;\n      }\n\n      return acc;\n    }, transform);\n  };\n  var PowerTransforms = {\n    mixout: function mixout() {\n      return {\n        parse: {\n          transform: function transform(transformString) {\n            return parseTransformString(transformString);\n          }\n        }\n      };\n    },\n    hooks: function hooks() {\n      return {\n        parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n          var transformString = node.getAttribute('data-fa-transform');\n\n          if (transformString) {\n            accumulator.transform = parseTransformString(transformString);\n          }\n\n          return accumulator;\n        }\n      };\n    },\n    provides: function provides(providers) {\n      providers.generateAbstractTransformGrouping = function (_ref) {\n        var main = _ref.main,\n            transform = _ref.transform,\n            containerWidth = _ref.containerWidth,\n            iconWidth = _ref.iconWidth;\n        var outer = {\n          transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n        };\n        var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n        var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n        var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n        var inner = {\n          transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n        };\n        var path = {\n          transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n        };\n        var operations = {\n          outer: outer,\n          inner: inner,\n          path: path\n        };\n        return {\n          tag: 'g',\n          attributes: _objectSpread2({}, operations.outer),\n          children: [{\n            tag: 'g',\n            attributes: _objectSpread2({}, operations.inner),\n            children: [{\n              tag: main.icon.tag,\n              children: main.icon.children,\n              attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n            }]\n          }]\n        };\n      };\n    }\n  };\n\n  var ALL_SPACE = {\n    x: 0,\n    y: 0,\n    width: '100%',\n    height: '100%'\n  };\n\n  function fillBlack(abstract) {\n    var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n    if (abstract.attributes && (abstract.attributes.fill || force)) {\n      abstract.attributes.fill = 'black';\n    }\n\n    return abstract;\n  }\n\n  function deGroup(abstract) {\n    if (abstract.tag === 'g') {\n      return abstract.children;\n    } else {\n      return [abstract];\n    }\n  }\n\n  var Masks = {\n    hooks: function hooks() {\n      return {\n        parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n          var maskData = node.getAttribute('data-fa-mask');\n          var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n            return i.trim();\n          }));\n\n          if (!mask.prefix) {\n            mask.prefix = getDefaultUsablePrefix();\n          }\n\n          accumulator.mask = mask;\n          accumulator.maskId = node.getAttribute('data-fa-mask-id');\n          return accumulator;\n        }\n      };\n    },\n    provides: function provides(providers) {\n      providers.generateAbstractMask = function (_ref) {\n        var children = _ref.children,\n            attributes = _ref.attributes,\n            main = _ref.main,\n            mask = _ref.mask,\n            explicitMaskId = _ref.maskId,\n            transform = _ref.transform;\n        var mainWidth = main.width,\n            mainPath = main.icon;\n        var maskWidth = mask.width,\n            maskPath = mask.icon;\n        var trans = transformForSvg({\n          transform: transform,\n          containerWidth: maskWidth,\n          iconWidth: mainWidth\n        });\n        var maskRect = {\n          tag: 'rect',\n          attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n            fill: 'white'\n          })\n        };\n        var maskInnerGroupChildrenMixin = mainPath.children ? {\n          children: mainPath.children.map(fillBlack)\n        } : {};\n        var maskInnerGroup = {\n          tag: 'g',\n          attributes: _objectSpread2({}, trans.inner),\n          children: [fillBlack(_objectSpread2({\n            tag: mainPath.tag,\n            attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n          }, maskInnerGroupChildrenMixin))]\n        };\n        var maskOuterGroup = {\n          tag: 'g',\n          attributes: _objectSpread2({}, trans.outer),\n          children: [maskInnerGroup]\n        };\n        var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n        var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n        var maskTag = {\n          tag: 'mask',\n          attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n            id: maskId,\n            maskUnits: 'userSpaceOnUse',\n            maskContentUnits: 'userSpaceOnUse'\n          }),\n          children: [maskRect, maskOuterGroup]\n        };\n        var defs = {\n          tag: 'defs',\n          children: [{\n            tag: 'clipPath',\n            attributes: {\n              id: clipId\n            },\n            children: deGroup(maskPath)\n          }, maskTag]\n        };\n        children.push(defs, {\n          tag: 'rect',\n          attributes: _objectSpread2({\n            fill: 'currentColor',\n            'clip-path': \"url(#\".concat(clipId, \")\"),\n            mask: \"url(#\".concat(maskId, \")\")\n          }, ALL_SPACE)\n        });\n        return {\n          children: children,\n          attributes: attributes\n        };\n      };\n    }\n  };\n\n  var MissingIconIndicator = {\n    provides: function provides(providers) {\n      var reduceMotion = false;\n\n      if (WINDOW.matchMedia) {\n        reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n      }\n\n      providers.missingIconAbstract = function () {\n        var gChildren = [];\n        var FILL = {\n          fill: 'currentColor'\n        };\n        var ANIMATION_BASE = {\n          attributeType: 'XML',\n          repeatCount: 'indefinite',\n          dur: '2s'\n        }; // Ring\n\n        gChildren.push({\n          tag: 'path',\n          attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n            d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n          })\n        });\n\n        var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n          attributeName: 'opacity'\n        });\n\n        var dot = {\n          tag: 'circle',\n          attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n            cx: '256',\n            cy: '364',\n            r: '28'\n          }),\n          children: []\n        };\n\n        if (!reduceMotion) {\n          dot.children.push({\n            tag: 'animate',\n            attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n              attributeName: 'r',\n              values: '28;14;28;28;14;28;'\n            })\n          }, {\n            tag: 'animate',\n            attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n              values: '1;0;1;1;0;1;'\n            })\n          });\n        }\n\n        gChildren.push(dot);\n        gChildren.push({\n          tag: 'path',\n          attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n            opacity: '1',\n            d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n          }),\n          children: reduceMotion ? [] : [{\n            tag: 'animate',\n            attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n              values: '1;0;0;0;0;1;'\n            })\n          }]\n        });\n\n        if (!reduceMotion) {\n          // Exclamation\n          gChildren.push({\n            tag: 'path',\n            attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n              opacity: '0',\n              d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n            }),\n            children: [{\n              tag: 'animate',\n              attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n                values: '0;0;1;1;0;0;'\n              })\n            }]\n          });\n        }\n\n        return {\n          tag: 'g',\n          attributes: {\n            'class': 'missing'\n          },\n          children: gChildren\n        };\n      };\n    }\n  };\n\n  var SvgSymbols = {\n    hooks: function hooks() {\n      return {\n        parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n          var symbolData = node.getAttribute('data-fa-symbol');\n          var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n          accumulator['symbol'] = symbol;\n          return accumulator;\n        }\n      };\n    }\n  };\n\n  var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\n  registerPlugins(plugins, {\n    mixoutsTo: api\n  });\n  bunker(bootstrap);\n\n}());\n", "export * from \"./enums.js\";\nexport * from \"./modifiers/index.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { popperGenerator, detectOverflow, createPopper as createPopperBase } from \"./createPopper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper } from \"./popper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\";", "export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n  return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n  return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];", "export default function getNodeName(element) {\n  return element ? (element.nodeName || '').toLowerCase() : null;\n}", "export default function getWindow(node) {\n  if (node == null) {\n    return window;\n  }\n\n  if (node.toString() !== '[object Window]') {\n    var ownerDocument = node.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView || window : window;\n  }\n\n  return node;\n}", "import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n  var OwnElement = getWindow(node).Element;\n  return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n  var OwnElement = getWindow(node).HTMLElement;\n  return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n  // IE 11 has no ShadowRoot\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n\n  var OwnElement = getWindow(node).ShadowRoot;\n  return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };", "import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n  var state = _ref.state;\n  Object.keys(state.elements).forEach(function (name) {\n    var style = state.styles[name] || {};\n    var attributes = state.attributes[name] || {};\n    var element = state.elements[name]; // arrow is optional + virtual elements\n\n    if (!isHTMLElement(element) || !getNodeName(element)) {\n      return;\n    } // Flow doesn't support to extend this property, but it's the most\n    // effective way to apply styles to an HTMLElement\n    // $FlowFixMe[cannot-write]\n\n\n    Object.assign(element.style, style);\n    Object.keys(attributes).forEach(function (name) {\n      var value = attributes[name];\n\n      if (value === false) {\n        element.removeAttribute(name);\n      } else {\n        element.setAttribute(name, value === true ? '' : value);\n      }\n    });\n  });\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state;\n  var initialStyles = {\n    popper: {\n      position: state.options.strategy,\n      left: '0',\n      top: '0',\n      margin: '0'\n    },\n    arrow: {\n      position: 'absolute'\n    },\n    reference: {}\n  };\n  Object.assign(state.elements.popper.style, initialStyles.popper);\n  state.styles = initialStyles;\n\n  if (state.elements.arrow) {\n    Object.assign(state.elements.arrow.style, initialStyles.arrow);\n  }\n\n  return function () {\n    Object.keys(state.elements).forEach(function (name) {\n      var element = state.elements[name];\n      var attributes = state.attributes[name] || {};\n      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n      var style = styleProperties.reduce(function (style, property) {\n        style[property] = '';\n        return style;\n      }, {}); // arrow is optional + virtual elements\n\n      if (!isHTMLElement(element) || !getNodeName(element)) {\n        return;\n      }\n\n      Object.assign(element.style, style);\n      Object.keys(attributes).forEach(function (attribute) {\n        element.removeAttribute(attribute);\n      });\n    });\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'applyStyles',\n  enabled: true,\n  phase: 'write',\n  fn: applyStyles,\n  effect: effect,\n  requires: ['computeStyles']\n};", "import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n  return placement.split('-')[0];\n}", "export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;", "export default function getUAString() {\n  var uaData = navigator.userAgentData;\n\n  if (uaData != null && uaData.brands) {\n    return uaData.brands.map(function (item) {\n      return item.brand + \"/\" + item.version;\n    }).join(' ');\n  }\n\n  return navigator.userAgent;\n}", "import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n  return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}", "import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n\n  var clientRect = element.getBoundingClientRect();\n  var scaleX = 1;\n  var scaleY = 1;\n\n  if (includeScale && isHTMLElement(element)) {\n    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n  }\n\n  var _ref = isElement(element) ? getWindow(element) : window,\n      visualViewport = _ref.visualViewport;\n\n  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n  var width = clientRect.width / scaleX;\n  var height = clientRect.height / scaleY;\n  return {\n    width: width,\n    height: height,\n    top: y,\n    right: x + width,\n    bottom: y + height,\n    left: x,\n    x: x,\n    y: y\n  };\n}", "import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n  var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n  // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n  var width = element.offsetWidth;\n  var height = element.offsetHeight;\n\n  if (Math.abs(clientRect.width - width) <= 1) {\n    width = clientRect.width;\n  }\n\n  if (Math.abs(clientRect.height - height) <= 1) {\n    height = clientRect.height;\n  }\n\n  return {\n    x: element.offsetLeft,\n    y: element.offsetTop,\n    width: width,\n    height: height\n  };\n}", "import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n  if (parent.contains(child)) {\n    return true;\n  } // then fallback to custom implementation with Shadow DOM support\n  else if (rootNode && isShadowRoot(rootNode)) {\n      var next = child;\n\n      do {\n        if (next && parent.isSameNode(next)) {\n          return true;\n        } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n        next = next.parentNode || next.host;\n      } while (next);\n    } // Give up, the result is false\n\n\n  return false;\n}", "import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}", "import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n  return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}", "import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n  // $FlowFixMe[incompatible-return]: assume body is always available\n  return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n  element.document) || window.document).documentElement;\n}", "import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n  if (getNodeName(element) === 'html') {\n    return element;\n  }\n\n  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n    // $FlowFixMe[incompatible-return]\n    // $FlowFixMe[prop-missing]\n    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n    element.parentNode || ( // DOM Element detected\n    isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n    // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n    getDocumentElement(element) // fallback\n\n  );\n}", "import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n  getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n\n  return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n  var isFirefox = /firefox/i.test(getUAString());\n  var isIE = /Trident/i.test(getUAString());\n\n  if (isIE && isHTMLElement(element)) {\n    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n    var elementCss = getComputedStyle(element);\n\n    if (elementCss.position === 'fixed') {\n      return null;\n    }\n  }\n\n  var currentNode = getParentNode(element);\n\n  if (isShadowRoot(currentNode)) {\n    currentNode = currentNode.host;\n  }\n\n  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n    var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n    // create a containing block.\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n      return currentNode;\n    } else {\n      currentNode = currentNode.parentNode;\n    }\n  }\n\n  return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n  var window = getWindow(element);\n  var offsetParent = getTrueOffsetParent(element);\n\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n    offsetParent = getTrueOffsetParent(offsetParent);\n  }\n\n  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n    return window;\n  }\n\n  return offsetParent || getContainingBlock(element) || window;\n}", "export default function getMainAxisFromPlacement(placement) {\n  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}", "import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n  return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n  var v = within(min, value, max);\n  return v > max ? max : v;\n}", "export default function getFreshSideObject() {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0\n  };\n}", "import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n  return Object.assign({}, getFreshSideObject(), paddingObject);\n}", "export default function expandToHashMap(value, keys) {\n  return keys.reduce(function (hashMap, key) {\n    hashMap[key] = value;\n    return hashMap;\n  }, {});\n}", "import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : padding;\n  return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n  var _state$modifiersData$;\n\n  var state = _ref.state,\n      name = _ref.name,\n      options = _ref.options;\n  var arrowElement = state.elements.arrow;\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var basePlacement = getBasePlacement(state.placement);\n  var axis = getMainAxisFromPlacement(basePlacement);\n  var isVertical = [left, right].indexOf(basePlacement) >= 0;\n  var len = isVertical ? 'height' : 'width';\n\n  if (!arrowElement || !popperOffsets) {\n    return;\n  }\n\n  var paddingObject = toPaddingObject(options.padding, state);\n  var arrowRect = getLayoutRect(arrowElement);\n  var minProp = axis === 'y' ? top : left;\n  var maxProp = axis === 'y' ? bottom : right;\n  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n  var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n  var arrowOffsetParent = getOffsetParent(arrowElement);\n  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n  // outside of the popper bounds\n\n  var min = paddingObject[minProp];\n  var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n  var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n  var axisProp = axis;\n  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options;\n  var _options$element = options.element,\n      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n  if (arrowElement == null) {\n    return;\n  } // CSS selector\n\n\n  if (typeof arrowElement === 'string') {\n    arrowElement = state.elements.popper.querySelector(arrowElement);\n\n    if (!arrowElement) {\n      return;\n    }\n  }\n\n  if (process.env.NODE_ENV !== \"production\") {\n    if (!isHTMLElement(arrowElement)) {\n      console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n    }\n  }\n\n  if (!contains(state.elements.popper, arrowElement)) {\n    if (process.env.NODE_ENV !== \"production\") {\n      console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n    }\n\n    return;\n  }\n\n  state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'arrow',\n  enabled: true,\n  phase: 'main',\n  fn: arrow,\n  effect: effect,\n  requires: ['popperOffsets'],\n  requiresIfExists: ['preventOverflow']\n};", "export default function getVariation(placement) {\n  return placement.split('-')[1];\n}", "import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n  top: 'auto',\n  right: 'auto',\n  bottom: 'auto',\n  left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n  var x = _ref.x,\n      y = _ref.y;\n  var win = window;\n  var dpr = win.devicePixelRatio || 1;\n  return {\n    x: round(x * dpr) / dpr || 0,\n    y: round(y * dpr) / dpr || 0\n  };\n}\n\nexport function mapToStyles(_ref2) {\n  var _Object$assign2;\n\n  var popper = _ref2.popper,\n      popperRect = _ref2.popperRect,\n      placement = _ref2.placement,\n      variation = _ref2.variation,\n      offsets = _ref2.offsets,\n      position = _ref2.position,\n      gpuAcceleration = _ref2.gpuAcceleration,\n      adaptive = _ref2.adaptive,\n      roundOffsets = _ref2.roundOffsets,\n      isFixed = _ref2.isFixed;\n  var _offsets$x = offsets.x,\n      x = _offsets$x === void 0 ? 0 : _offsets$x,\n      _offsets$y = offsets.y,\n      y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n  var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n    x: x,\n    y: y\n  }) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref3.x;\n  y = _ref3.y;\n  var hasX = offsets.hasOwnProperty('x');\n  var hasY = offsets.hasOwnProperty('y');\n  var sideX = left;\n  var sideY = top;\n  var win = window;\n\n  if (adaptive) {\n    var offsetParent = getOffsetParent(popper);\n    var heightProp = 'clientHeight';\n    var widthProp = 'clientWidth';\n\n    if (offsetParent === getWindow(popper)) {\n      offsetParent = getDocumentElement(popper);\n\n      if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n        heightProp = 'scrollHeight';\n        widthProp = 'scrollWidth';\n      }\n    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n    offsetParent = offsetParent;\n\n    if (placement === top || (placement === left || placement === right) && variation === end) {\n      sideY = bottom;\n      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n      offsetParent[heightProp];\n      y -= offsetY - popperRect.height;\n      y *= gpuAcceleration ? 1 : -1;\n    }\n\n    if (placement === left || (placement === top || placement === bottom) && variation === end) {\n      sideX = right;\n      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n      offsetParent[widthProp];\n      x -= offsetX - popperRect.width;\n      x *= gpuAcceleration ? 1 : -1;\n    }\n  }\n\n  var commonStyles = Object.assign({\n    position: position\n  }, adaptive && unsetSides);\n\n  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n    x: x,\n    y: y\n  }) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref4.x;\n  y = _ref4.y;\n\n  if (gpuAcceleration) {\n    var _Object$assign;\n\n    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n  }\n\n  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n  var state = _ref5.state,\n      options = _ref5.options;\n  var _options$gpuAccelerat = options.gpuAcceleration,\n      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n      _options$adaptive = options.adaptive,\n      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n      _options$roundOffsets = options.roundOffsets,\n      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n  if (process.env.NODE_ENV !== \"production\") {\n    var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n    if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n      return transitionProperty.indexOf(property) >= 0;\n    })) {\n      console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n    }\n  }\n\n  var commonStyles = {\n    placement: getBasePlacement(state.placement),\n    variation: getVariation(state.placement),\n    popper: state.elements.popper,\n    popperRect: state.rects.popper,\n    gpuAcceleration: gpuAcceleration,\n    isFixed: state.options.strategy === 'fixed'\n  };\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.popperOffsets,\n      position: state.options.strategy,\n      adaptive: adaptive,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  if (state.modifiersData.arrow != null) {\n    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.arrow,\n      position: 'absolute',\n      adaptive: false,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-placement': state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'computeStyles',\n  enabled: true,\n  phase: 'beforeWrite',\n  fn: computeStyles,\n  data: {}\n};", "import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n  passive: true\n};\n\nfunction effect(_ref) {\n  var state = _ref.state,\n      instance = _ref.instance,\n      options = _ref.options;\n  var _options$scroll = options.scroll,\n      scroll = _options$scroll === void 0 ? true : _options$scroll,\n      _options$resize = options.resize,\n      resize = _options$resize === void 0 ? true : _options$resize;\n  var window = getWindow(state.elements.popper);\n  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n  if (scroll) {\n    scrollParents.forEach(function (scrollParent) {\n      scrollParent.addEventListener('scroll', instance.update, passive);\n    });\n  }\n\n  if (resize) {\n    window.addEventListener('resize', instance.update, passive);\n  }\n\n  return function () {\n    if (scroll) {\n      scrollParents.forEach(function (scrollParent) {\n        scrollParent.removeEventListener('scroll', instance.update, passive);\n      });\n    }\n\n    if (resize) {\n      window.removeEventListener('resize', instance.update, passive);\n    }\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'eventListeners',\n  enabled: true,\n  phase: 'write',\n  fn: function fn() {},\n  effect: effect,\n  data: {}\n};", "var hash = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}", "var hash = {\n  start: 'end',\n  end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n  return placement.replace(/start|end/g, function (matched) {\n    return hash[matched];\n  });\n}", "import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n  var win = getWindow(node);\n  var scrollLeft = win.pageXOffset;\n  var scrollTop = win.pageYOffset;\n  return {\n    scrollLeft: scrollLeft,\n    scrollTop: scrollTop\n  };\n}", "import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  // Popper 1 is broken in this case and never had a bug report so let's assume\n  // it's not an issue. I don't think anyone ever specifies width on <html>\n  // anyway.\n  // Browsers where the left scrollbar doesn't cause an issue report `0` for\n  // this (e.g. Edge 2019, IE11, Safari)\n  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}", "import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n  var win = getWindow(element);\n  var html = getDocumentElement(element);\n  var visualViewport = win.visualViewport;\n  var width = html.clientWidth;\n  var height = html.clientHeight;\n  var x = 0;\n  var y = 0;\n\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    var layoutViewport = isLayoutViewport();\n\n    if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x + getWindowScrollBarX(element),\n    y: y\n  };\n}", "import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n  var _element$ownerDocumen;\n\n  var html = getDocumentElement(element);\n  var winScroll = getWindowScroll(element);\n  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n  var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n  var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n  var y = -winScroll.scrollTop;\n\n  if (getComputedStyle(body || html).direction === 'rtl') {\n    x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x,\n    y: y\n  };\n}", "import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n  // Firefox wants us to check `-x` and `-y` variations as well\n  var _getComputedStyle = getComputedStyle(element),\n      overflow = _getComputedStyle.overflow,\n      overflowX = _getComputedStyle.overflowX,\n      overflowY = _getComputedStyle.overflowY;\n\n  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}", "import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n  if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n    // $FlowFixMe[incompatible-return]: assume body is always available\n    return node.ownerDocument.body;\n  }\n\n  if (isHTMLElement(node) && isScrollParent(node)) {\n    return node;\n  }\n\n  return getScrollParent(getParentNode(node));\n}", "import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n  var _element$ownerDocumen;\n\n  if (list === void 0) {\n    list = [];\n  }\n\n  var scrollParent = getScrollParent(element);\n  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n  var win = getWindow(scrollParent);\n  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n  var updatedList = list.concat(target);\n  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n  updatedList.concat(listScrollParents(getParentNode(target)));\n}", "export default function rectToClientRect(rect) {\n  return Object.assign({}, rect, {\n    left: rect.x,\n    top: rect.y,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  });\n}", "import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n  var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n  rect.top = rect.top + element.clientTop;\n  rect.left = rect.left + element.clientLeft;\n  rect.bottom = rect.top + element.clientHeight;\n  rect.right = rect.left + element.clientWidth;\n  rect.width = element.clientWidth;\n  rect.height = element.clientHeight;\n  rect.x = rect.left;\n  rect.y = rect.top;\n  return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n  return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n  var clippingParents = listScrollParents(getParentNode(element));\n  var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n  if (!isElement(clipperElement)) {\n    return [];\n  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n  return clippingParents.filter(function (clippingParent) {\n    return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n  });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n  var firstClippingParent = clippingParents[0];\n  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n    var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n  clippingRect.width = clippingRect.right - clippingRect.left;\n  clippingRect.height = clippingRect.bottom - clippingRect.top;\n  clippingRect.x = clippingRect.left;\n  clippingRect.y = clippingRect.top;\n  return clippingRect;\n}", "import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n  var reference = _ref.reference,\n      element = _ref.element,\n      placement = _ref.placement;\n  var basePlacement = placement ? getBasePlacement(placement) : null;\n  var variation = placement ? getVariation(placement) : null;\n  var commonX = reference.x + reference.width / 2 - element.width / 2;\n  var commonY = reference.y + reference.height / 2 - element.height / 2;\n  var offsets;\n\n  switch (basePlacement) {\n    case top:\n      offsets = {\n        x: commonX,\n        y: reference.y - element.height\n      };\n      break;\n\n    case bottom:\n      offsets = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n\n    case right:\n      offsets = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n\n    case left:\n      offsets = {\n        x: reference.x - element.width,\n        y: commonY\n      };\n      break;\n\n    default:\n      offsets = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n\n  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n  if (mainAxis != null) {\n    var len = mainAxis === 'y' ? 'height' : 'width';\n\n    switch (variation) {\n      case start:\n        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n        break;\n\n      case end:\n        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n        break;\n\n      default:\n    }\n  }\n\n  return offsets;\n}", "import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      _options$placement = _options.placement,\n      placement = _options$placement === void 0 ? state.placement : _options$placement,\n      _options$strategy = _options.strategy,\n      strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n      _options$boundary = _options.boundary,\n      boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n      _options$rootBoundary = _options.rootBoundary,\n      rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n      _options$elementConte = _options.elementContext,\n      elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n      _options$altBoundary = _options.altBoundary,\n      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n      _options$padding = _options.padding,\n      padding = _options$padding === void 0 ? 0 : _options$padding;\n  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n  var altContext = elementContext === popper ? reference : popper;\n  var popperRect = state.rects.popper;\n  var element = state.elements[altBoundary ? altContext : elementContext];\n  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n  var referenceClientRect = getBoundingClientRect(state.elements.reference);\n  var popperOffsets = computeOffsets({\n    reference: referenceClientRect,\n    element: popperRect,\n    strategy: 'absolute',\n    placement: placement\n  });\n  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n  // 0 or negative = within the clipping rect\n\n  var overflowOffsets = {\n    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n    right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n  };\n  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n  if (elementContext === popper && offsetData) {\n    var offset = offsetData[placement];\n    Object.keys(overflowOffsets).forEach(function (key) {\n      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n      var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n      overflowOffsets[key] += offset[axis] * multiply;\n    });\n  }\n\n  return overflowOffsets;\n}", "import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      placement = _options.placement,\n      boundary = _options.boundary,\n      rootBoundary = _options.rootBoundary,\n      padding = _options.padding,\n      flipVariations = _options.flipVariations,\n      _options$allowedAutoP = _options.allowedAutoPlacements,\n      allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n  var variation = getVariation(placement);\n  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n    return getVariation(placement) === variation;\n  }) : basePlacements;\n  var allowedPlacements = placements.filter(function (placement) {\n    return allowedAutoPlacements.indexOf(placement) >= 0;\n  });\n\n  if (allowedPlacements.length === 0) {\n    allowedPlacements = placements;\n\n    if (process.env.NODE_ENV !== \"production\") {\n      console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n    }\n  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n  var overflows = allowedPlacements.reduce(function (acc, placement) {\n    acc[placement] = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding\n    })[getBasePlacement(placement)];\n    return acc;\n  }, {});\n  return Object.keys(overflows).sort(function (a, b) {\n    return overflows[a] - overflows[b];\n  });\n}", "import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n  if (getBasePlacement(placement) === auto) {\n    return [];\n  }\n\n  var oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n\n  if (state.modifiersData[name]._skip) {\n    return;\n  }\n\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n      specifiedFallbackPlacements = options.fallbackPlacements,\n      padding = options.padding,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      _options$flipVariatio = options.flipVariations,\n      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n      allowedAutoPlacements = options.allowedAutoPlacements;\n  var preferredPlacement = state.options.placement;\n  var basePlacement = getBasePlacement(preferredPlacement);\n  var isBasePlacement = basePlacement === preferredPlacement;\n  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n    return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding,\n      flipVariations: flipVariations,\n      allowedAutoPlacements: allowedAutoPlacements\n    }) : placement);\n  }, []);\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var checksMap = new Map();\n  var makeFallbackChecks = true;\n  var firstFittingPlacement = placements[0];\n\n  for (var i = 0; i < placements.length; i++) {\n    var placement = placements[i];\n\n    var _basePlacement = getBasePlacement(placement);\n\n    var isStartVariation = getVariation(placement) === start;\n    var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n    var len = isVertical ? 'width' : 'height';\n    var overflow = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      altBoundary: altBoundary,\n      padding: padding\n    });\n    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n    if (referenceRect[len] > popperRect[len]) {\n      mainVariationSide = getOppositePlacement(mainVariationSide);\n    }\n\n    var altVariationSide = getOppositePlacement(mainVariationSide);\n    var checks = [];\n\n    if (checkMainAxis) {\n      checks.push(overflow[_basePlacement] <= 0);\n    }\n\n    if (checkAltAxis) {\n      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n    }\n\n    if (checks.every(function (check) {\n      return check;\n    })) {\n      firstFittingPlacement = placement;\n      makeFallbackChecks = false;\n      break;\n    }\n\n    checksMap.set(placement, checks);\n  }\n\n  if (makeFallbackChecks) {\n    // `2` may be desired in some cases \u2013 research later\n    var numberOfChecks = flipVariations ? 3 : 1;\n\n    var _loop = function _loop(_i) {\n      var fittingPlacement = placements.find(function (placement) {\n        var checks = checksMap.get(placement);\n\n        if (checks) {\n          return checks.slice(0, _i).every(function (check) {\n            return check;\n          });\n        }\n      });\n\n      if (fittingPlacement) {\n        firstFittingPlacement = fittingPlacement;\n        return \"break\";\n      }\n    };\n\n    for (var _i = numberOfChecks; _i > 0; _i--) {\n      var _ret = _loop(_i);\n\n      if (_ret === \"break\") break;\n    }\n  }\n\n  if (state.placement !== firstFittingPlacement) {\n    state.modifiersData[name]._skip = true;\n    state.placement = firstFittingPlacement;\n    state.reset = true;\n  }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'flip',\n  enabled: true,\n  phase: 'main',\n  fn: flip,\n  requiresIfExists: ['offset'],\n  data: {\n    _skip: false\n  }\n};", "import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n  if (preventedOffsets === void 0) {\n    preventedOffsets = {\n      x: 0,\n      y: 0\n    };\n  }\n\n  return {\n    top: overflow.top - rect.height - preventedOffsets.y,\n    right: overflow.right - rect.width + preventedOffsets.x,\n    bottom: overflow.bottom - rect.height + preventedOffsets.y,\n    left: overflow.left - rect.width - preventedOffsets.x\n  };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n  return [top, right, bottom, left].some(function (side) {\n    return overflow[side] >= 0;\n  });\n}\n\nfunction hide(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var preventedOffsets = state.modifiersData.preventOverflow;\n  var referenceOverflow = detectOverflow(state, {\n    elementContext: 'reference'\n  });\n  var popperAltOverflow = detectOverflow(state, {\n    altBoundary: true\n  });\n  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n  state.modifiersData[name] = {\n    referenceClippingOffsets: referenceClippingOffsets,\n    popperEscapeOffsets: popperEscapeOffsets,\n    isReferenceHidden: isReferenceHidden,\n    hasPopperEscaped: hasPopperEscaped\n  };\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-reference-hidden': isReferenceHidden,\n    'data-popper-escaped': hasPopperEscaped\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'hide',\n  enabled: true,\n  phase: 'main',\n  requiresIfExists: ['preventOverflow'],\n  fn: hide\n};", "import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n  var basePlacement = getBasePlacement(placement);\n  var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n    placement: placement\n  })) : offset,\n      skidding = _ref[0],\n      distance = _ref[1];\n\n  skidding = skidding || 0;\n  distance = (distance || 0) * invertDistance;\n  return [left, right].indexOf(basePlacement) >= 0 ? {\n    x: distance,\n    y: skidding\n  } : {\n    x: skidding,\n    y: distance\n  };\n}\n\nfunction offset(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options,\n      name = _ref2.name;\n  var _options$offset = options.offset,\n      offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n  var data = placements.reduce(function (acc, placement) {\n    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n    return acc;\n  }, {});\n  var _data$state$placement = data[state.placement],\n      x = _data$state$placement.x,\n      y = _data$state$placement.y;\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.modifiersData.popperOffsets.x += x;\n    state.modifiersData.popperOffsets.y += y;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'offset',\n  enabled: true,\n  phase: 'main',\n  requires: ['popperOffsets'],\n  fn: offset\n};", "import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  // Offsets are the actual position the popper needs to have to be\n  // properly positioned near its reference element\n  // This is the most basic placement, and will be adjusted by\n  // the modifiers in the next step\n  state.modifiersData[name] = computeOffsets({\n    reference: state.rects.reference,\n    element: state.rects.popper,\n    strategy: 'absolute',\n    placement: state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'popperOffsets',\n  enabled: true,\n  phase: 'read',\n  fn: popperOffsets,\n  data: {}\n};", "export default function getAltAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}", "import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      padding = options.padding,\n      _options$tether = options.tether,\n      tether = _options$tether === void 0 ? true : _options$tether,\n      _options$tetherOffset = options.tetherOffset,\n      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n  var overflow = detectOverflow(state, {\n    boundary: boundary,\n    rootBoundary: rootBoundary,\n    padding: padding,\n    altBoundary: altBoundary\n  });\n  var basePlacement = getBasePlacement(state.placement);\n  var variation = getVariation(state.placement);\n  var isBasePlacement = !variation;\n  var mainAxis = getMainAxisFromPlacement(basePlacement);\n  var altAxis = getAltAxis(mainAxis);\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : tetherOffset;\n  var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n    mainAxis: tetherOffsetValue,\n    altAxis: tetherOffsetValue\n  } : Object.assign({\n    mainAxis: 0,\n    altAxis: 0\n  }, tetherOffsetValue);\n  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n  var data = {\n    x: 0,\n    y: 0\n  };\n\n  if (!popperOffsets) {\n    return;\n  }\n\n  if (checkMainAxis) {\n    var _offsetModifierState$;\n\n    var mainSide = mainAxis === 'y' ? top : left;\n    var altSide = mainAxis === 'y' ? bottom : right;\n    var len = mainAxis === 'y' ? 'height' : 'width';\n    var offset = popperOffsets[mainAxis];\n    var min = offset + overflow[mainSide];\n    var max = offset - overflow[altSide];\n    var additive = tether ? -popperRect[len] / 2 : 0;\n    var minLen = variation === start ? referenceRect[len] : popperRect[len];\n    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n    // outside the reference bounds\n\n    var arrowElement = state.elements.arrow;\n    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n      width: 0,\n      height: 0\n    };\n    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n    var arrowPaddingMin = arrowPaddingObject[mainSide];\n    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n    // to include its full size in the calculation. If the reference is small\n    // and near the edge of a boundary, the popper can overflow even if the\n    // reference is not overflowing as well (e.g. virtual elements with no\n    // width or height)\n\n    var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n    var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n    var tetherMax = offset + maxOffset - offsetModifierValue;\n    var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n    popperOffsets[mainAxis] = preventedOffset;\n    data[mainAxis] = preventedOffset - offset;\n  }\n\n  if (checkAltAxis) {\n    var _offsetModifierState$2;\n\n    var _mainSide = mainAxis === 'x' ? top : left;\n\n    var _altSide = mainAxis === 'x' ? bottom : right;\n\n    var _offset = popperOffsets[altAxis];\n\n    var _len = altAxis === 'y' ? 'height' : 'width';\n\n    var _min = _offset + overflow[_mainSide];\n\n    var _max = _offset - overflow[_altSide];\n\n    var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n    var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n    popperOffsets[altAxis] = _preventedOffset;\n    data[altAxis] = _preventedOffset - _offset;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'preventOverflow',\n  enabled: true,\n  phase: 'main',\n  fn: preventOverflow,\n  requiresIfExists: ['offset']\n};", "export default function getHTMLElementScroll(element) {\n  return {\n    scrollLeft: element.scrollLeft,\n    scrollTop: element.scrollTop\n  };\n}", "import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n  if (node === getWindow(node) || !isHTMLElement(node)) {\n    return getWindowScroll(node);\n  } else {\n    return getHTMLElementScroll(node);\n  }\n}", "import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n  var rect = element.getBoundingClientRect();\n  var scaleX = round(rect.width) / element.offsetWidth || 1;\n  var scaleY = round(rect.height) / element.offsetHeight || 1;\n  return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n\n  var isOffsetParentAnElement = isHTMLElement(offsetParent);\n  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n  var documentElement = getDocumentElement(offsetParent);\n  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n  var scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  var offsets = {\n    x: 0,\n    y: 0\n  };\n\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n    isScrollParent(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n\n    if (isHTMLElement(offsetParent)) {\n      offsets = getBoundingClientRect(offsetParent, true);\n      offsets.x += offsetParent.clientLeft;\n      offsets.y += offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n\n  return {\n    x: rect.left + scroll.scrollLeft - offsets.x,\n    y: rect.top + scroll.scrollTop - offsets.y,\n    width: rect.width,\n    height: rect.height\n  };\n}", "import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n  var map = new Map();\n  var visited = new Set();\n  var result = [];\n  modifiers.forEach(function (modifier) {\n    map.set(modifier.name, modifier);\n  }); // On visiting object, check for its dependencies and visit them recursively\n\n  function sort(modifier) {\n    visited.add(modifier.name);\n    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n    requires.forEach(function (dep) {\n      if (!visited.has(dep)) {\n        var depModifier = map.get(dep);\n\n        if (depModifier) {\n          sort(depModifier);\n        }\n      }\n    });\n    result.push(modifier);\n  }\n\n  modifiers.forEach(function (modifier) {\n    if (!visited.has(modifier.name)) {\n      // check for visited object\n      sort(modifier);\n    }\n  });\n  return result;\n}\n\nexport default function orderModifiers(modifiers) {\n  // order based on dependencies\n  var orderedModifiers = order(modifiers); // order based on phase\n\n  return modifierPhases.reduce(function (acc, phase) {\n    return acc.concat(orderedModifiers.filter(function (modifier) {\n      return modifier.phase === phase;\n    }));\n  }, []);\n}", "export default function debounce(fn) {\n  var pending;\n  return function () {\n    if (!pending) {\n      pending = new Promise(function (resolve) {\n        Promise.resolve().then(function () {\n          pending = undefined;\n          resolve(fn());\n        });\n      });\n    }\n\n    return pending;\n  };\n}", "export default function format(str) {\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 [].concat(args).reduce(function (p, c) {\n    return p.replace(/%s/, c);\n  }, str);\n}", "import format from \"./format.js\";\nimport { modifierPhases } from \"../enums.js\";\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];\nexport default function validateModifiers(modifiers) {\n  modifiers.forEach(function (modifier) {\n    [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`\n    .filter(function (value, index, self) {\n      return self.indexOf(value) === index;\n    }).forEach(function (key) {\n      switch (key) {\n        case 'name':\n          if (typeof modifier.name !== 'string') {\n            console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', \"\\\"\" + String(modifier.name) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'enabled':\n          if (typeof modifier.enabled !== 'boolean') {\n            console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', \"\\\"\" + String(modifier.enabled) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'phase':\n          if (modifierPhases.indexOf(modifier.phase) < 0) {\n            console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + modifierPhases.join(', '), \"\\\"\" + String(modifier.phase) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'fn':\n          if (typeof modifier.fn !== 'function') {\n            console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'effect':\n          if (modifier.effect != null && typeof modifier.effect !== 'function') {\n            console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'requires':\n          if (modifier.requires != null && !Array.isArray(modifier.requires)) {\n            console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', \"\\\"\" + String(modifier.requires) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'requiresIfExists':\n          if (!Array.isArray(modifier.requiresIfExists)) {\n            console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', \"\\\"\" + String(modifier.requiresIfExists) + \"\\\"\"));\n          }\n\n          break;\n\n        case 'options':\n        case 'data':\n          break;\n\n        default:\n          console.error(\"PopperJS: an invalid property has been provided to the \\\"\" + modifier.name + \"\\\" modifier, valid properties are \" + VALID_PROPERTIES.map(function (s) {\n            return \"\\\"\" + s + \"\\\"\";\n          }).join(', ') + \"; but \\\"\" + key + \"\\\" was provided.\");\n      }\n\n      modifier.requires && modifier.requires.forEach(function (requirement) {\n        if (modifiers.find(function (mod) {\n          return mod.name === requirement;\n        }) == null) {\n          console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n        }\n      });\n    });\n  });\n}", "export default function uniqueBy(arr, fn) {\n  var identifiers = new Set();\n  return arr.filter(function (item) {\n    var identifier = fn(item);\n\n    if (!identifiers.has(identifier)) {\n      identifiers.add(identifier);\n      return true;\n    }\n  });\n}", "export default function mergeByName(modifiers) {\n  var merged = modifiers.reduce(function (merged, current) {\n    var existing = merged[current.name];\n    merged[current.name] = existing ? Object.assign({}, existing, current, {\n      options: Object.assign({}, existing.options, current.options),\n      data: Object.assign({}, existing.data, current.data)\n    }) : current;\n    return merged;\n  }, {}); // IE11 does not support Object.values\n\n  return Object.keys(merged).map(function (key) {\n    return merged[key];\n  });\n}", "import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n  placement: 'bottom',\n  modifiers: [],\n  strategy: 'absolute'\n};\n\nfunction areValidElements() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return !args.some(function (element) {\n    return !(element && typeof element.getBoundingClientRect === 'function');\n  });\n}\n\nexport function popperGenerator(generatorOptions) {\n  if (generatorOptions === void 0) {\n    generatorOptions = {};\n  }\n\n  var _generatorOptions = generatorOptions,\n      _generatorOptions$def = _generatorOptions.defaultModifiers,\n      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n      _generatorOptions$def2 = _generatorOptions.defaultOptions,\n      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n  return function createPopper(reference, popper, options) {\n    if (options === void 0) {\n      options = defaultOptions;\n    }\n\n    var state = {\n      placement: 'bottom',\n      orderedModifiers: [],\n      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n      modifiersData: {},\n      elements: {\n        reference: reference,\n        popper: popper\n      },\n      attributes: {},\n      styles: {}\n    };\n    var effectCleanupFns = [];\n    var isDestroyed = false;\n    var instance = {\n      state: state,\n      setOptions: function setOptions(setOptionsAction) {\n        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n        cleanupModifierEffects();\n        state.options = Object.assign({}, defaultOptions, state.options, options);\n        state.scrollParents = {\n          reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n          popper: listScrollParents(popper)\n        }; // Orders the modifiers based on their dependencies and `phase`\n        // properties\n\n        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n        state.orderedModifiers = orderedModifiers.filter(function (m) {\n          return m.enabled;\n        }); // Validate the provided modifiers so that the consumer will get warned\n        // if one of the modifiers is invalid for any reason\n\n        if (process.env.NODE_ENV !== \"production\") {\n          var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n            var name = _ref.name;\n            return name;\n          });\n          validateModifiers(modifiers);\n\n          if (getBasePlacement(state.options.placement) === auto) {\n            var flipModifier = state.orderedModifiers.find(function (_ref2) {\n              var name = _ref2.name;\n              return name === 'flip';\n            });\n\n            if (!flipModifier) {\n              console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n            }\n          }\n\n          var _getComputedStyle = getComputedStyle(popper),\n              marginTop = _getComputedStyle.marginTop,\n              marginRight = _getComputedStyle.marginRight,\n              marginBottom = _getComputedStyle.marginBottom,\n              marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n          // cause bugs with positioning, so we'll warn the consumer\n\n\n          if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n            return parseFloat(margin);\n          })) {\n            console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n          }\n        }\n\n        runModifierEffects();\n        return instance.update();\n      },\n      // Sync update \u2013 it will always be executed, even if not necessary. This\n      // is useful for low frequency updates where sync behavior simplifies the\n      // logic.\n      // For high frequency updates (e.g. `resize` and `scroll` events), always\n      // prefer the async Popper#update method\n      forceUpdate: function forceUpdate() {\n        if (isDestroyed) {\n          return;\n        }\n\n        var _state$elements = state.elements,\n            reference = _state$elements.reference,\n            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n        // anymore\n\n        if (!areValidElements(reference, popper)) {\n          if (process.env.NODE_ENV !== \"production\") {\n            console.error(INVALID_ELEMENT_ERROR);\n          }\n\n          return;\n        } // Store the reference and popper rects to be read by modifiers\n\n\n        state.rects = {\n          reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n          popper: getLayoutRect(popper)\n        }; // Modifiers have the ability to reset the current update cycle. The\n        // most common use case for this is the `flip` modifier changing the\n        // placement, which then needs to re-run all the modifiers, because the\n        // logic was previously ran for the previous placement and is therefore\n        // stale/incorrect\n\n        state.reset = false;\n        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n        // is filled with the initial data specified by the modifier. This means\n        // it doesn't persist and is fresh on each update.\n        // To ensure persistent data, use `${name}#persistent`\n\n        state.orderedModifiers.forEach(function (modifier) {\n          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n        });\n        var __debug_loops__ = 0;\n\n        for (var index = 0; index < state.orderedModifiers.length; index++) {\n          if (process.env.NODE_ENV !== \"production\") {\n            __debug_loops__ += 1;\n\n            if (__debug_loops__ > 100) {\n              console.error(INFINITE_LOOP_ERROR);\n              break;\n            }\n          }\n\n          if (state.reset === true) {\n            state.reset = false;\n            index = -1;\n            continue;\n          }\n\n          var _state$orderedModifie = state.orderedModifiers[index],\n              fn = _state$orderedModifie.fn,\n              _state$orderedModifie2 = _state$orderedModifie.options,\n              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n              name = _state$orderedModifie.name;\n\n          if (typeof fn === 'function') {\n            state = fn({\n              state: state,\n              options: _options,\n              name: name,\n              instance: instance\n            }) || state;\n          }\n        }\n      },\n      // Async and optimistically optimized update \u2013 it will not be executed if\n      // not necessary (debounced to run at most once-per-tick)\n      update: debounce(function () {\n        return new Promise(function (resolve) {\n          instance.forceUpdate();\n          resolve(state);\n        });\n      }),\n      destroy: function destroy() {\n        cleanupModifierEffects();\n        isDestroyed = true;\n      }\n    };\n\n    if (!areValidElements(reference, popper)) {\n      if (process.env.NODE_ENV !== \"production\") {\n        console.error(INVALID_ELEMENT_ERROR);\n      }\n\n      return instance;\n    }\n\n    instance.setOptions(options).then(function (state) {\n      if (!isDestroyed && options.onFirstUpdate) {\n        options.onFirstUpdate(state);\n      }\n    }); // Modifiers have the ability to execute arbitrary code before the first\n    // update cycle runs. They will be executed in the same order as the update\n    // cycle. This is useful when a modifier adds some persistent data that\n    // other modifiers need to use, but the modifier is run after the dependent\n    // one.\n\n    function runModifierEffects() {\n      state.orderedModifiers.forEach(function (_ref3) {\n        var name = _ref3.name,\n            _ref3$options = _ref3.options,\n            options = _ref3$options === void 0 ? {} : _ref3$options,\n            effect = _ref3.effect;\n\n        if (typeof effect === 'function') {\n          var cleanupFn = effect({\n            state: state,\n            name: name,\n            instance: instance,\n            options: options\n          });\n\n          var noopFn = function noopFn() {};\n\n          effectCleanupFns.push(cleanupFn || noopFn);\n        }\n      });\n    }\n\n    function cleanupModifierEffects() {\n      effectCleanupFns.forEach(function (fn) {\n        return fn();\n      });\n      effectCleanupFns = [];\n    }\n\n    return instance;\n  };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };", "import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n  defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };", "import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n  defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n  if (object === null || object === undefined) {\n    return `${object}`\n  }\n\n  return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n  do {\n    prefix += Math.floor(Math.random() * MAX_UID)\n  } while (document.getElementById(prefix))\n\n  return prefix\n}\n\nconst getSelector = element => {\n  let selector = element.getAttribute('data-bs-target')\n\n  if (!selector || selector === '#') {\n    let hrefAttribute = element.getAttribute('href')\n\n    // The only valid content that could double as a selector are IDs or classes,\n    // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n    // `document.querySelector` will rightfully complain it is invalid.\n    // See https://github.com/twbs/bootstrap/issues/32273\n    if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n      return null\n    }\n\n    // Just in case some CMS puts out a full URL with the anchor appended\n    if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n      hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n    }\n\n    selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n  }\n\n  return selector\n}\n\nconst getSelectorFromElement = element => {\n  const selector = getSelector(element)\n\n  if (selector) {\n    return document.querySelector(selector) ? selector : null\n  }\n\n  return null\n}\n\nconst getElementFromSelector = element => {\n  const selector = getSelector(element)\n\n  return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n  if (!element) {\n    return 0\n  }\n\n  // Get transition-duration of the element\n  let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n  const floatTransitionDuration = Number.parseFloat(transitionDuration)\n  const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n  // Return 0 if element or transition duration is not found\n  if (!floatTransitionDuration && !floatTransitionDelay) {\n    return 0\n  }\n\n  // If multiple durations are defined, take the first\n  transitionDuration = transitionDuration.split(',')[0]\n  transitionDelay = transitionDelay.split(',')[0]\n\n  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n  element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n  if (!object || typeof object !== 'object') {\n    return false\n  }\n\n  if (typeof object.jquery !== 'undefined') {\n    object = object[0]\n  }\n\n  return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n  // it's a jQuery object or a node element\n  if (isElement(object)) {\n    return object.jquery ? object[0] : object\n  }\n\n  if (typeof object === 'string' && object.length > 0) {\n    return document.querySelector(object)\n  }\n\n  return null\n}\n\nconst isVisible = element => {\n  if (!isElement(element) || element.getClientRects().length === 0) {\n    return false\n  }\n\n  const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n  // Handle `details` element as its content may falsie appear visible when it is closed\n  const closedDetails = element.closest('details:not([open])')\n\n  if (!closedDetails) {\n    return elementIsVisible\n  }\n\n  if (closedDetails !== element) {\n    const summary = element.closest('summary')\n    if (summary && summary.parentNode !== closedDetails) {\n      return false\n    }\n\n    if (summary === null) {\n      return false\n    }\n  }\n\n  return elementIsVisible\n}\n\nconst isDisabled = element => {\n  if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n    return true\n  }\n\n  if (element.classList.contains('disabled')) {\n    return true\n  }\n\n  if (typeof element.disabled !== 'undefined') {\n    return element.disabled\n  }\n\n  return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n  if (!document.documentElement.attachShadow) {\n    return null\n  }\n\n  // Can find the shadow root otherwise it'll return the document\n  if (typeof element.getRootNode === 'function') {\n    const root = element.getRootNode()\n    return root instanceof ShadowRoot ? root : null\n  }\n\n  if (element instanceof ShadowRoot) {\n    return element\n  }\n\n  // when we don't find a shadow root\n  if (!element.parentNode) {\n    return null\n  }\n\n  return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n  element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n  if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n    return window.jQuery\n  }\n\n  return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n  if (document.readyState === 'loading') {\n    // add listener on the first call when the document is in loading state\n    if (!DOMContentLoadedCallbacks.length) {\n      document.addEventListener('DOMContentLoaded', () => {\n        for (const callback of DOMContentLoadedCallbacks) {\n          callback()\n        }\n      })\n    }\n\n    DOMContentLoadedCallbacks.push(callback)\n  } else {\n    callback()\n  }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n  onDOMContentLoaded(() => {\n    const $ = getjQuery()\n    /* istanbul ignore if */\n    if ($) {\n      const name = plugin.NAME\n      const JQUERY_NO_CONFLICT = $.fn[name]\n      $.fn[name] = plugin.jQueryInterface\n      $.fn[name].Constructor = plugin\n      $.fn[name].noConflict = () => {\n        $.fn[name] = JQUERY_NO_CONFLICT\n        return plugin.jQueryInterface\n      }\n    }\n  })\n}\n\nconst execute = callback => {\n  if (typeof callback === 'function') {\n    callback()\n  }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n  if (!waitForTransition) {\n    execute(callback)\n    return\n  }\n\n  const durationPadding = 5\n  const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n  let called = false\n\n  const handler = ({ target }) => {\n    if (target !== transitionElement) {\n      return\n    }\n\n    called = true\n    transitionElement.removeEventListener(TRANSITION_END, handler)\n    execute(callback)\n  }\n\n  transitionElement.addEventListener(TRANSITION_END, handler)\n  setTimeout(() => {\n    if (!called) {\n      triggerTransitionEnd(transitionElement)\n    }\n  }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list    The list of elements\n * @param activeElement   The active element\n * @param shouldGetNext   Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n  const listLength = list.length\n  let index = list.indexOf(activeElement)\n\n  // if the element does not exist in the list return an element\n  // depending on the direction and if cycle is allowed\n  if (index === -1) {\n    return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n  }\n\n  index += shouldGetNext ? 1 : -1\n\n  if (isCycleAllowed) {\n    index = (index + listLength) % listLength\n  }\n\n  return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n  defineJQueryPlugin,\n  execute,\n  executeAfterTransition,\n  findShadowRoot,\n  getElement,\n  getElementFromSelector,\n  getjQuery,\n  getNextActiveElement,\n  getSelectorFromElement,\n  getTransitionDurationFromElement,\n  getUID,\n  isDisabled,\n  isElement,\n  isRTL,\n  isVisible,\n  noop,\n  onDOMContentLoaded,\n  reflow,\n  triggerTransitionEnd,\n  toType\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n  mouseenter: 'mouseover',\n  mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n  'click',\n  'dblclick',\n  'mouseup',\n  'mousedown',\n  'contextmenu',\n  'mousewheel',\n  'DOMMouseScroll',\n  'mouseover',\n  'mouseout',\n  'mousemove',\n  'selectstart',\n  'selectend',\n  'keydown',\n  'keypress',\n  'keyup',\n  'orientationchange',\n  'touchstart',\n  'touchmove',\n  'touchend',\n  'touchcancel',\n  'pointerdown',\n  'pointermove',\n  'pointerup',\n  'pointerleave',\n  'pointercancel',\n  'gesturestart',\n  'gesturechange',\n  'gestureend',\n  'focus',\n  'blur',\n  'change',\n  'reset',\n  'select',\n  'submit',\n  'focusin',\n  'focusout',\n  'load',\n  'unload',\n  'beforeunload',\n  'resize',\n  'move',\n  'DOMContentLoaded',\n  'readystatechange',\n  'error',\n  'abort',\n  'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n  return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n  const uid = makeEventUid(element)\n\n  element.uidEvent = uid\n  eventRegistry[uid] = eventRegistry[uid] || {}\n\n  return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n  return function handler(event) {\n    hydrateObj(event, { delegateTarget: element })\n\n    if (handler.oneOff) {\n      EventHandler.off(element, event.type, fn)\n    }\n\n    return fn.apply(element, [event])\n  }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n  return function handler(event) {\n    const domElements = element.querySelectorAll(selector)\n\n    for (let { target } = event; target && target !== this; target = target.parentNode) {\n      for (const domElement of domElements) {\n        if (domElement !== target) {\n          continue\n        }\n\n        hydrateObj(event, { delegateTarget: target })\n\n        if (handler.oneOff) {\n          EventHandler.off(element, event.type, selector, fn)\n        }\n\n        return fn.apply(target, [event])\n      }\n    }\n  }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n  return Object.values(events)\n    .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n  const isDelegated = typeof handler === 'string'\n  // todo: tooltip passes `false` instead of selector, so we need to check\n  const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n  let typeEvent = getTypeEvent(originalTypeEvent)\n\n  if (!nativeEvents.has(typeEvent)) {\n    typeEvent = originalTypeEvent\n  }\n\n  return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n  if (typeof originalTypeEvent !== 'string' || !element) {\n    return\n  }\n\n  let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n  // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n  // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n  if (originalTypeEvent in customEvents) {\n    const wrapFunction = fn => {\n      return function (event) {\n        if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n          return fn.call(this, event)\n        }\n      }\n    }\n\n    callable = wrapFunction(callable)\n  }\n\n  const events = getElementEvents(element)\n  const handlers = events[typeEvent] || (events[typeEvent] = {})\n  const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n  if (previousFunction) {\n    previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n    return\n  }\n\n  const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n  const fn = isDelegated ?\n    bootstrapDelegationHandler(element, handler, callable) :\n    bootstrapHandler(element, callable)\n\n  fn.delegationSelector = isDelegated ? handler : null\n  fn.callable = callable\n  fn.oneOff = oneOff\n  fn.uidEvent = uid\n  handlers[uid] = fn\n\n  element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n  const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n  if (!fn) {\n    return\n  }\n\n  element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n  delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n  const storeElementEvent = events[typeEvent] || {}\n\n  for (const handlerKey of Object.keys(storeElementEvent)) {\n    if (handlerKey.includes(namespace)) {\n      const event = storeElementEvent[handlerKey]\n      removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n    }\n  }\n}\n\nfunction getTypeEvent(event) {\n  // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n  event = event.replace(stripNameRegex, '')\n  return customEvents[event] || event\n}\n\nconst EventHandler = {\n  on(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, false)\n  },\n\n  one(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, true)\n  },\n\n  off(element, originalTypeEvent, handler, delegationFunction) {\n    if (typeof originalTypeEvent !== 'string' || !element) {\n      return\n    }\n\n    const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n    const inNamespace = typeEvent !== originalTypeEvent\n    const events = getElementEvents(element)\n    const storeElementEvent = events[typeEvent] || {}\n    const isNamespace = originalTypeEvent.startsWith('.')\n\n    if (typeof callable !== 'undefined') {\n      // Simplest case: handler is passed, remove that listener ONLY.\n      if (!Object.keys(storeElementEvent).length) {\n        return\n      }\n\n      removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n      return\n    }\n\n    if (isNamespace) {\n      for (const elementEvent of Object.keys(events)) {\n        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n      }\n    }\n\n    for (const keyHandlers of Object.keys(storeElementEvent)) {\n      const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n        const event = storeElementEvent[keyHandlers]\n        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n      }\n    }\n  },\n\n  trigger(element, event, args) {\n    if (typeof event !== 'string' || !element) {\n      return null\n    }\n\n    const $ = getjQuery()\n    const typeEvent = getTypeEvent(event)\n    const inNamespace = event !== typeEvent\n\n    let jQueryEvent = null\n    let bubbles = true\n    let nativeDispatch = true\n    let defaultPrevented = false\n\n    if (inNamespace && $) {\n      jQueryEvent = $.Event(event, args)\n\n      $(element).trigger(jQueryEvent)\n      bubbles = !jQueryEvent.isPropagationStopped()\n      nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n      defaultPrevented = jQueryEvent.isDefaultPrevented()\n    }\n\n    let evt = new Event(event, { bubbles, cancelable: true })\n    evt = hydrateObj(evt, args)\n\n    if (defaultPrevented) {\n      evt.preventDefault()\n    }\n\n    if (nativeDispatch) {\n      element.dispatchEvent(evt)\n    }\n\n    if (evt.defaultPrevented && jQueryEvent) {\n      jQueryEvent.preventDefault()\n    }\n\n    return evt\n  }\n}\n\nfunction hydrateObj(obj, meta) {\n  for (const [key, value] of Object.entries(meta || {})) {\n    try {\n      obj[key] = value\n    } catch {\n      Object.defineProperty(obj, key, {\n        configurable: true,\n        get() {\n          return value\n        }\n      })\n    }\n  }\n\n  return obj\n}\n\nexport default EventHandler\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n  set(element, key, instance) {\n    if (!elementMap.has(element)) {\n      elementMap.set(element, new Map())\n    }\n\n    const instanceMap = elementMap.get(element)\n\n    // make it clear we only want one instance per element\n    // can be removed later when multiple key/instances are fine to be used\n    if (!instanceMap.has(key) && instanceMap.size !== 0) {\n      // eslint-disable-next-line no-console\n      console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n      return\n    }\n\n    instanceMap.set(key, instance)\n  },\n\n  get(element, key) {\n    if (elementMap.has(element)) {\n      return elementMap.get(element).get(key) || null\n    }\n\n    return null\n  },\n\n  remove(element, key) {\n    if (!elementMap.has(element)) {\n      return\n    }\n\n    const instanceMap = elementMap.get(element)\n\n    instanceMap.delete(key)\n\n    // free up element references if there are no instances left for an element\n    if (instanceMap.size === 0) {\n      elementMap.delete(element)\n    }\n  }\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n  if (value === 'true') {\n    return true\n  }\n\n  if (value === 'false') {\n    return false\n  }\n\n  if (value === Number(value).toString()) {\n    return Number(value)\n  }\n\n  if (value === '' || value === 'null') {\n    return null\n  }\n\n  if (typeof value !== 'string') {\n    return value\n  }\n\n  try {\n    return JSON.parse(decodeURIComponent(value))\n  } catch {\n    return value\n  }\n}\n\nfunction normalizeDataKey(key) {\n  return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n  setDataAttribute(element, key, value) {\n    element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n  },\n\n  removeDataAttribute(element, key) {\n    element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n  },\n\n  getDataAttributes(element) {\n    if (!element) {\n      return {}\n    }\n\n    const attributes = {}\n    const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n    for (const key of bsKeys) {\n      let pureKey = key.replace(/^bs/, '')\n      pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n      attributes[pureKey] = normalizeData(element.dataset[key])\n    }\n\n    return attributes\n  },\n\n  getDataAttribute(element, key) {\n    return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n  }\n}\n\nexport default Manipulator\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isElement, toType } from './index'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * Class definition\n */\n\nclass Config {\n  // Getters\n  static get Default() {\n    return {}\n  }\n\n  static get DefaultType() {\n    return {}\n  }\n\n  static get NAME() {\n    throw new Error('You have to implement the static method \"NAME\", for each component!')\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    return config\n  }\n\n  _mergeConfigObj(config, element) {\n    const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n    return {\n      ...this.constructor.Default,\n      ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n      ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n      ...(typeof config === 'object' ? config : {})\n    }\n  }\n\n  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n    for (const property of Object.keys(configTypes)) {\n      const expectedTypes = configTypes[property]\n      const value = config[property]\n      const valueType = isElement(value) ? 'element' : toType(value)\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        throw new TypeError(\n          `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n        )\n      }\n    }\n  }\n}\n\nexport default Config\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport { executeAfterTransition, getElement } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Config from './util/config'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.2.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n  constructor(element, config) {\n    super()\n\n    element = getElement(element)\n    if (!element) {\n      return\n    }\n\n    this._element = element\n    this._config = this._getConfig(config)\n\n    Data.set(this._element, this.constructor.DATA_KEY, this)\n  }\n\n  // Public\n  dispose() {\n    Data.remove(this._element, this.constructor.DATA_KEY)\n    EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n    for (const propertyName of Object.getOwnPropertyNames(this)) {\n      this[propertyName] = null\n    }\n  }\n\n  _queueCallback(callback, element, isAnimated = true) {\n    executeAfterTransition(callback, element, isAnimated)\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config, this._element)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  // Static\n  static getInstance(element) {\n    return Data.get(getElement(element), this.DATA_KEY)\n  }\n\n  static getOrCreateInstance(element, config = {}) {\n    return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n  }\n\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get DATA_KEY() {\n    return `bs.${this.NAME}`\n  }\n\n  static get EVENT_KEY() {\n    return `.${this.DATA_KEY}`\n  }\n\n  static eventName(name) {\n    return `${name}${this.EVENT_KEY}`\n  }\n}\n\nexport default BaseComponent\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { getElementFromSelector, isDisabled } from './index'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n  const clickEvent = `click.dismiss${component.EVENT_KEY}`\n  const name = component.NAME\n\n  EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n    if (['A', 'AREA'].includes(this.tagName)) {\n      event.preventDefault()\n    }\n\n    if (isDisabled(this)) {\n      return\n    }\n\n    const target = getElementFromSelector(this) || this.closest(`.${name}`)\n    const instance = component.getOrCreateInstance(target)\n\n    // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n    instance[method]()\n  })\n}\n\nexport {\n  enableDismissTrigger\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n  // Getters\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  close() {\n    const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n    if (closeEvent.defaultPrevented) {\n      return\n    }\n\n    this._element.classList.remove(CLASS_NAME_SHOW)\n\n    const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n    this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n  }\n\n  // Private\n  _destroyElement() {\n    this._element.remove()\n    EventHandler.trigger(this._element, EVENT_CLOSED)\n    this.dispose()\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Alert.getOrCreateInstance(this)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config](this)\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n  // Getters\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  toggle() {\n    // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n    this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Button.getOrCreateInstance(this)\n\n      if (config === 'toggle') {\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n  event.preventDefault()\n\n  const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n  const data = Button.getOrCreateInstance(button)\n\n  data.toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\n/**\n * Constants\n */\n\nconst SelectorEngine = {\n  find(selector, element = document.documentElement) {\n    return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n  },\n\n  findOne(selector, element = document.documentElement) {\n    return Element.prototype.querySelector.call(element, selector)\n  },\n\n  children(element, selector) {\n    return [].concat(...element.children).filter(child => child.matches(selector))\n  },\n\n  parents(element, selector) {\n    const parents = []\n    let ancestor = element.parentNode.closest(selector)\n\n    while (ancestor) {\n      parents.push(ancestor)\n      ancestor = ancestor.parentNode.closest(selector)\n    }\n\n    return parents\n  },\n\n  prev(element, selector) {\n    let previous = element.previousElementSibling\n\n    while (previous) {\n      if (previous.matches(selector)) {\n        return [previous]\n      }\n\n      previous = previous.previousElementSibling\n    }\n\n    return []\n  },\n  // TODO: this is now unused; remove later along with prev()\n  next(element, selector) {\n    let next = element.nextElementSibling\n\n    while (next) {\n      if (next.matches(selector)) {\n        return [next]\n      }\n\n      next = next.nextElementSibling\n    }\n\n    return []\n  },\n\n  focusableChildren(element) {\n    const focusables = [\n      'a',\n      'button',\n      'input',\n      'textarea',\n      'select',\n      'details',\n      '[tabindex]',\n      '[contenteditable=\"true\"]'\n    ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n    return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n  }\n}\n\nexport default SelectorEngine\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Config from './config'\nimport EventHandler from '../dom/event-handler'\nimport { execute } from './index'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n  endCallback: null,\n  leftCallback: null,\n  rightCallback: null\n}\n\nconst DefaultType = {\n  endCallback: '(function|null)',\n  leftCallback: '(function|null)',\n  rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n  constructor(element, config) {\n    super()\n    this._element = element\n\n    if (!element || !Swipe.isSupported()) {\n      return\n    }\n\n    this._config = this._getConfig(config)\n    this._deltaX = 0\n    this._supportPointerEvents = Boolean(window.PointerEvent)\n    this._initEvents()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  dispose() {\n    EventHandler.off(this._element, EVENT_KEY)\n  }\n\n  // Private\n  _start(event) {\n    if (!this._supportPointerEvents) {\n      this._deltaX = event.touches[0].clientX\n\n      return\n    }\n\n    if (this._eventIsPointerPenTouch(event)) {\n      this._deltaX = event.clientX\n    }\n  }\n\n  _end(event) {\n    if (this._eventIsPointerPenTouch(event)) {\n      this._deltaX = event.clientX - this._deltaX\n    }\n\n    this._handleSwipe()\n    execute(this._config.endCallback)\n  }\n\n  _move(event) {\n    this._deltaX = event.touches && event.touches.length > 1 ?\n      0 :\n      event.touches[0].clientX - this._deltaX\n  }\n\n  _handleSwipe() {\n    const absDeltaX = Math.abs(this._deltaX)\n\n    if (absDeltaX <= SWIPE_THRESHOLD) {\n      return\n    }\n\n    const direction = absDeltaX / this._deltaX\n\n    this._deltaX = 0\n\n    if (!direction) {\n      return\n    }\n\n    execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n  }\n\n  _initEvents() {\n    if (this._supportPointerEvents) {\n      EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n      EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n      this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n    } else {\n      EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n      EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n      EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n    }\n  }\n\n  _eventIsPointerPenTouch(event) {\n    return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n  }\n\n  // Static\n  static isSupported() {\n    return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n  }\n}\n\nexport default Swipe\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  getElementFromSelector,\n  getNextActiveElement,\n  isRTL,\n  isVisible,\n  reflow,\n  triggerTransitionEnd\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport Swipe from './util/swipe'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n  [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n  [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n  interval: 5000,\n  keyboard: true,\n  pause: 'hover',\n  ride: false,\n  touch: true,\n  wrap: true\n}\n\nconst DefaultType = {\n  interval: '(number|boolean)', // TODO:v6 remove boolean support\n  keyboard: 'boolean',\n  pause: '(string|boolean)',\n  ride: '(boolean|string)',\n  touch: 'boolean',\n  wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._interval = null\n    this._activeElement = null\n    this._isSliding = false\n    this.touchTimeout = null\n    this._swipeHelper = null\n\n    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n    this._addEventListeners()\n\n    if (this._config.ride === CLASS_NAME_CAROUSEL) {\n      this.cycle()\n    }\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  next() {\n    this._slide(ORDER_NEXT)\n  }\n\n  nextWhenVisible() {\n    // FIXME TODO use `document.visibilityState`\n    // Don't call next when the page isn't visible\n    // or the carousel or its parent isn't visible\n    if (!document.hidden && isVisible(this._element)) {\n      this.next()\n    }\n  }\n\n  prev() {\n    this._slide(ORDER_PREV)\n  }\n\n  pause() {\n    if (this._isSliding) {\n      triggerTransitionEnd(this._element)\n    }\n\n    this._clearInterval()\n  }\n\n  cycle() {\n    this._clearInterval()\n    this._updateInterval()\n\n    this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n  }\n\n  _maybeEnableCycle() {\n    if (!this._config.ride) {\n      return\n    }\n\n    if (this._isSliding) {\n      EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n      return\n    }\n\n    this.cycle()\n  }\n\n  to(index) {\n    const items = this._getItems()\n    if (index > items.length - 1 || index < 0) {\n      return\n    }\n\n    if (this._isSliding) {\n      EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n      return\n    }\n\n    const activeIndex = this._getItemIndex(this._getActive())\n    if (activeIndex === index) {\n      return\n    }\n\n    const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n    this._slide(order, items[index])\n  }\n\n  dispose() {\n    if (this._swipeHelper) {\n      this._swipeHelper.dispose()\n    }\n\n    super.dispose()\n  }\n\n  // Private\n  _configAfterMerge(config) {\n    config.defaultInterval = config.interval\n    return config\n  }\n\n  _addEventListeners() {\n    if (this._config.keyboard) {\n      EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n    }\n\n    if (this._config.pause === 'hover') {\n      EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n      EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n    }\n\n    if (this._config.touch && Swipe.isSupported()) {\n      this._addTouchEventListeners()\n    }\n  }\n\n  _addTouchEventListeners() {\n    for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n      EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n    }\n\n    const endCallBack = () => {\n      if (this._config.pause !== 'hover') {\n        return\n      }\n\n      // If it's a touch-enabled device, mouseenter/leave are fired as\n      // part of the mouse compatibility events on first tap - the carousel\n      // would stop cycling until user tapped out of it;\n      // here, we listen for touchend, explicitly pause the carousel\n      // (as if it's the second time we tap on it, mouseenter compat event\n      // is NOT fired) and after a timeout (to allow for mouse compatibility\n      // events to fire) we explicitly restart cycling\n\n      this.pause()\n      if (this.touchTimeout) {\n        clearTimeout(this.touchTimeout)\n      }\n\n      this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n    }\n\n    const swipeConfig = {\n      leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n      rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n      endCallback: endCallBack\n    }\n\n    this._swipeHelper = new Swipe(this._element, swipeConfig)\n  }\n\n  _keydown(event) {\n    if (/input|textarea/i.test(event.target.tagName)) {\n      return\n    }\n\n    const direction = KEY_TO_DIRECTION[event.key]\n    if (direction) {\n      event.preventDefault()\n      this._slide(this._directionToOrder(direction))\n    }\n  }\n\n  _getItemIndex(element) {\n    return this._getItems().indexOf(element)\n  }\n\n  _setActiveIndicatorElement(index) {\n    if (!this._indicatorsElement) {\n      return\n    }\n\n    const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n    activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n    activeIndicator.removeAttribute('aria-current')\n\n    const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n    if (newActiveIndicator) {\n      newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n      newActiveIndicator.setAttribute('aria-current', 'true')\n    }\n  }\n\n  _updateInterval() {\n    const element = this._activeElement || this._getActive()\n\n    if (!element) {\n      return\n    }\n\n    const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n    this._config.interval = elementInterval || this._config.defaultInterval\n  }\n\n  _slide(order, element = null) {\n    if (this._isSliding) {\n      return\n    }\n\n    const activeElement = this._getActive()\n    const isNext = order === ORDER_NEXT\n    const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n    if (nextElement === activeElement) {\n      return\n    }\n\n    const nextElementIndex = this._getItemIndex(nextElement)\n\n    const triggerEvent = eventName => {\n      return EventHandler.trigger(this._element, eventName, {\n        relatedTarget: nextElement,\n        direction: this._orderToDirection(order),\n        from: this._getItemIndex(activeElement),\n        to: nextElementIndex\n      })\n    }\n\n    const slideEvent = triggerEvent(EVENT_SLIDE)\n\n    if (slideEvent.defaultPrevented) {\n      return\n    }\n\n    if (!activeElement || !nextElement) {\n      // Some weirdness is happening, so we bail\n      // todo: change tests that use empty divs to avoid this check\n      return\n    }\n\n    const isCycling = Boolean(this._interval)\n    this.pause()\n\n    this._isSliding = true\n\n    this._setActiveIndicatorElement(nextElementIndex)\n    this._activeElement = nextElement\n\n    const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n    const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n    nextElement.classList.add(orderClassName)\n\n    reflow(nextElement)\n\n    activeElement.classList.add(directionalClassName)\n    nextElement.classList.add(directionalClassName)\n\n    const completeCallBack = () => {\n      nextElement.classList.remove(directionalClassName, orderClassName)\n      nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n      activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n      this._isSliding = false\n\n      triggerEvent(EVENT_SLID)\n    }\n\n    this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n    if (isCycling) {\n      this.cycle()\n    }\n  }\n\n  _isAnimated() {\n    return this._element.classList.contains(CLASS_NAME_SLIDE)\n  }\n\n  _getActive() {\n    return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n  }\n\n  _getItems() {\n    return SelectorEngine.find(SELECTOR_ITEM, this._element)\n  }\n\n  _clearInterval() {\n    if (this._interval) {\n      clearInterval(this._interval)\n      this._interval = null\n    }\n  }\n\n  _directionToOrder(direction) {\n    if (isRTL()) {\n      return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n    }\n\n    return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n  }\n\n  _orderToDirection(order) {\n    if (isRTL()) {\n      return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n    }\n\n    return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Carousel.getOrCreateInstance(this, config)\n\n      if (typeof config === 'number') {\n        data.to(config)\n        return\n      }\n\n      if (typeof config === 'string') {\n        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n          throw new TypeError(`No method named \"${config}\"`)\n        }\n\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n  const target = getElementFromSelector(this)\n\n  if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n    return\n  }\n\n  event.preventDefault()\n\n  const carousel = Carousel.getOrCreateInstance(target)\n  const slideIndex = this.getAttribute('data-bs-slide-to')\n\n  if (slideIndex) {\n    carousel.to(slideIndex)\n    carousel._maybeEnableCycle()\n    return\n  }\n\n  if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n    carousel.next()\n    carousel._maybeEnableCycle()\n    return\n  }\n\n  carousel.prev()\n  carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n  for (const carousel of carousels) {\n    Carousel.getOrCreateInstance(carousel)\n  }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  getElement,\n  getElementFromSelector,\n  getSelectorFromElement,\n  reflow\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n  parent: null,\n  toggle: true\n}\n\nconst DefaultType = {\n  parent: '(null|element)',\n  toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._isTransitioning = false\n    this._triggerArray = []\n\n    const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n    for (const elem of toggleList) {\n      const selector = getSelectorFromElement(elem)\n      const filterElement = SelectorEngine.find(selector)\n        .filter(foundElement => foundElement === this._element)\n\n      if (selector !== null && filterElement.length) {\n        this._triggerArray.push(elem)\n      }\n    }\n\n    this._initializeChildren()\n\n    if (!this._config.parent) {\n      this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n    }\n\n    if (this._config.toggle) {\n      this.toggle()\n    }\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  toggle() {\n    if (this._isShown()) {\n      this.hide()\n    } else {\n      this.show()\n    }\n  }\n\n  show() {\n    if (this._isTransitioning || this._isShown()) {\n      return\n    }\n\n    let activeChildren = []\n\n    // find active children\n    if (this._config.parent) {\n      activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n        .filter(element => element !== this._element)\n        .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n    }\n\n    if (activeChildren.length && activeChildren[0]._isTransitioning) {\n      return\n    }\n\n    const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n    if (startEvent.defaultPrevented) {\n      return\n    }\n\n    for (const activeInstance of activeChildren) {\n      activeInstance.hide()\n    }\n\n    const dimension = this._getDimension()\n\n    this._element.classList.remove(CLASS_NAME_COLLAPSE)\n    this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n    this._element.style[dimension] = 0\n\n    this._addAriaAndCollapsedClass(this._triggerArray, true)\n    this._isTransitioning = true\n\n    const complete = () => {\n      this._isTransitioning = false\n\n      this._element.classList.remove(CLASS_NAME_COLLAPSING)\n      this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n      this._element.style[dimension] = ''\n\n      EventHandler.trigger(this._element, EVENT_SHOWN)\n    }\n\n    const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n    const scrollSize = `scroll${capitalizedDimension}`\n\n    this._queueCallback(complete, this._element, true)\n    this._element.style[dimension] = `${this._element[scrollSize]}px`\n  }\n\n  hide() {\n    if (this._isTransitioning || !this._isShown()) {\n      return\n    }\n\n    const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n    if (startEvent.defaultPrevented) {\n      return\n    }\n\n    const dimension = this._getDimension()\n\n    this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n    reflow(this._element)\n\n    this._element.classList.add(CLASS_NAME_COLLAPSING)\n    this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n    for (const trigger of this._triggerArray) {\n      const element = getElementFromSelector(trigger)\n\n      if (element && !this._isShown(element)) {\n        this._addAriaAndCollapsedClass([trigger], false)\n      }\n    }\n\n    this._isTransitioning = true\n\n    const complete = () => {\n      this._isTransitioning = false\n      this._element.classList.remove(CLASS_NAME_COLLAPSING)\n      this._element.classList.add(CLASS_NAME_COLLAPSE)\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    }\n\n    this._element.style[dimension] = ''\n\n    this._queueCallback(complete, this._element, true)\n  }\n\n  _isShown(element = this._element) {\n    return element.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  // Private\n  _configAfterMerge(config) {\n    config.toggle = Boolean(config.toggle) // Coerce string values\n    config.parent = getElement(config.parent)\n    return config\n  }\n\n  _getDimension() {\n    return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n  }\n\n  _initializeChildren() {\n    if (!this._config.parent) {\n      return\n    }\n\n    const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n    for (const element of children) {\n      const selected = getElementFromSelector(element)\n\n      if (selected) {\n        this._addAriaAndCollapsedClass([element], this._isShown(selected))\n      }\n    }\n  }\n\n  _getFirstLevelChildren(selector) {\n    const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n    // remove children if greater depth\n    return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n  }\n\n  _addAriaAndCollapsedClass(triggerArray, isOpen) {\n    if (!triggerArray.length) {\n      return\n    }\n\n    for (const element of triggerArray) {\n      element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n      element.setAttribute('aria-expanded', isOpen)\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    const _config = {}\n    if (typeof config === 'string' && /show|hide/.test(config)) {\n      _config.toggle = false\n    }\n\n    return this.each(function () {\n      const data = Collapse.getOrCreateInstance(this, _config)\n\n      if (typeof config === 'string') {\n        if (typeof data[config] === 'undefined') {\n          throw new TypeError(`No method named \"${config}\"`)\n        }\n\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n  if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n    event.preventDefault()\n  }\n\n  const selector = getSelectorFromElement(this)\n  const selectorElements = SelectorEngine.find(selector)\n\n  for (const element of selectorElements) {\n    Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n  }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport {\n  defineJQueryPlugin,\n  getElement,\n  getNextActiveElement,\n  isDisabled,\n  isElement,\n  isRTL,\n  isVisible,\n  noop\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n  autoClose: true,\n  boundary: 'clippingParents',\n  display: 'dynamic',\n  offset: [0, 2],\n  popperConfig: null,\n  reference: 'toggle'\n}\n\nconst DefaultType = {\n  autoClose: '(boolean|string)',\n  boundary: '(string|element)',\n  display: 'string',\n  offset: '(array|string|function)',\n  popperConfig: '(null|object|function)',\n  reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._popper = null\n    this._parent = this._element.parentNode // dropdown wrapper\n    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n    this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n      SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n      SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n    this._inNavbar = this._detectNavbar()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  toggle() {\n    return this._isShown() ? this.hide() : this.show()\n  }\n\n  show() {\n    if (isDisabled(this._element) || this._isShown()) {\n      return\n    }\n\n    const relatedTarget = {\n      relatedTarget: this._element\n    }\n\n    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    this._createPopper()\n\n    // If this is a touch-enabled device we add extra\n    // empty mouseover listeners to the body's immediate children;\n    // only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.on(element, 'mouseover', noop)\n      }\n    }\n\n    this._element.focus()\n    this._element.setAttribute('aria-expanded', true)\n\n    this._menu.classList.add(CLASS_NAME_SHOW)\n    this._element.classList.add(CLASS_NAME_SHOW)\n    EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n  }\n\n  hide() {\n    if (isDisabled(this._element) || !this._isShown()) {\n      return\n    }\n\n    const relatedTarget = {\n      relatedTarget: this._element\n    }\n\n    this._completeHide(relatedTarget)\n  }\n\n  dispose() {\n    if (this._popper) {\n      this._popper.destroy()\n    }\n\n    super.dispose()\n  }\n\n  update() {\n    this._inNavbar = this._detectNavbar()\n    if (this._popper) {\n      this._popper.update()\n    }\n  }\n\n  // Private\n  _completeHide(relatedTarget) {\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    // If this is a touch-enabled device we remove the extra\n    // empty mouseover listeners we added for iOS support\n    if ('ontouchstart' in document.documentElement) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.off(element, 'mouseover', noop)\n      }\n    }\n\n    if (this._popper) {\n      this._popper.destroy()\n    }\n\n    this._menu.classList.remove(CLASS_NAME_SHOW)\n    this._element.classList.remove(CLASS_NAME_SHOW)\n    this._element.setAttribute('aria-expanded', 'false')\n    Manipulator.removeDataAttribute(this._menu, 'popper')\n    EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n  }\n\n  _getConfig(config) {\n    config = super._getConfig(config)\n\n    if (typeof config.reference === 'object' && !isElement(config.reference) &&\n      typeof config.reference.getBoundingClientRect !== 'function'\n    ) {\n      // Popper virtual elements require a getBoundingClientRect method\n      throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n    }\n\n    return config\n  }\n\n  _createPopper() {\n    if (typeof Popper === 'undefined') {\n      throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n    }\n\n    let referenceElement = this._element\n\n    if (this._config.reference === 'parent') {\n      referenceElement = this._parent\n    } else if (isElement(this._config.reference)) {\n      referenceElement = getElement(this._config.reference)\n    } else if (typeof this._config.reference === 'object') {\n      referenceElement = this._config.reference\n    }\n\n    const popperConfig = this._getPopperConfig()\n    this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n  }\n\n  _isShown() {\n    return this._menu.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  _getPlacement() {\n    const parentDropdown = this._parent\n\n    if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n      return PLACEMENT_RIGHT\n    }\n\n    if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n      return PLACEMENT_LEFT\n    }\n\n    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n      return PLACEMENT_TOPCENTER\n    }\n\n    if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n      return PLACEMENT_BOTTOMCENTER\n    }\n\n    // We need to trim the value because custom properties can also include spaces\n    const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n      return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n    }\n\n    return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n  }\n\n  _detectNavbar() {\n    return this._element.closest(SELECTOR_NAVBAR) !== null\n  }\n\n  _getOffset() {\n    const { offset } = this._config\n\n    if (typeof offset === 'string') {\n      return offset.split(',').map(value => Number.parseInt(value, 10))\n    }\n\n    if (typeof offset === 'function') {\n      return popperData => offset(popperData, this._element)\n    }\n\n    return offset\n  }\n\n  _getPopperConfig() {\n    const defaultBsPopperConfig = {\n      placement: this._getPlacement(),\n      modifiers: [{\n        name: 'preventOverflow',\n        options: {\n          boundary: this._config.boundary\n        }\n      },\n      {\n        name: 'offset',\n        options: {\n          offset: this._getOffset()\n        }\n      }]\n    }\n\n    // Disable Popper if we have a static display or Dropdown is in Navbar\n    if (this._inNavbar || this._config.display === 'static') {\n      Manipulator.setDataAttribute(this._menu, 'popper', 'static') // todo:v6 remove\n      defaultBsPopperConfig.modifiers = [{\n        name: 'applyStyles',\n        enabled: false\n      }]\n    }\n\n    return {\n      ...defaultBsPopperConfig,\n      ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n    }\n  }\n\n  _selectMenuItem({ key, target }) {\n    const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\n\n    if (!items.length) {\n      return\n    }\n\n    // if target isn't included in items (e.g. when expanding the dropdown)\n    // allow cycling to get the last item in case key equals ARROW_UP_KEY\n    getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Dropdown.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (typeof data[config] === 'undefined') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n\n  static clearMenus(event) {\n    if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n      return\n    }\n\n    const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n    for (const toggle of openToggles) {\n      const context = Dropdown.getInstance(toggle)\n      if (!context || context._config.autoClose === false) {\n        continue\n      }\n\n      const composedPath = event.composedPath()\n      const isMenuTarget = composedPath.includes(context._menu)\n      if (\n        composedPath.includes(context._element) ||\n        (context._config.autoClose === 'inside' && !isMenuTarget) ||\n        (context._config.autoClose === 'outside' && isMenuTarget)\n      ) {\n        continue\n      }\n\n      // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n      if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n        continue\n      }\n\n      const relatedTarget = { relatedTarget: context._element }\n\n      if (event.type === 'click') {\n        relatedTarget.clickEvent = event\n      }\n\n      context._completeHide(relatedTarget)\n    }\n  }\n\n  static dataApiKeydownHandler(event) {\n    // If not an UP | DOWN | ESCAPE key => not a dropdown command\n    // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n    const isInput = /input|textarea/i.test(event.target.tagName)\n    const isEscapeEvent = event.key === ESCAPE_KEY\n    const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n    if (!isUpOrDownEvent && !isEscapeEvent) {\n      return\n    }\n\n    if (isInput && !isEscapeEvent) {\n      return\n    }\n\n    event.preventDefault()\n\n    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n    const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n      this :\n      (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n        SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n        SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n    const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n    if (isUpOrDownEvent) {\n      event.stopPropagation()\n      instance.show()\n      instance._selectMenuItem(event)\n      return\n    }\n\n    if (instance._isShown()) { // else is escape and we check if it is shown\n      event.stopPropagation()\n      instance.hide()\n      getToggleButton.focus()\n    }\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  event.preventDefault()\n  Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\nimport { isElement } from './index'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\nconst PROPERTY_PADDING = 'padding-right'\nconst PROPERTY_MARGIN = 'margin-right'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n  constructor() {\n    this._element = document.body\n  }\n\n  // Public\n  getWidth() {\n    // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n    const documentWidth = document.documentElement.clientWidth\n    return Math.abs(window.innerWidth - documentWidth)\n  }\n\n  hide() {\n    const width = this.getWidth()\n    this._disableOverFlow()\n    // give padding to element to balance the hidden scrollbar width\n    this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n    // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n    this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n    this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n  }\n\n  reset() {\n    this._resetElementAttributes(this._element, 'overflow')\n    this._resetElementAttributes(this._element, PROPERTY_PADDING)\n    this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n    this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n  }\n\n  isOverflowing() {\n    return this.getWidth() > 0\n  }\n\n  // Private\n  _disableOverFlow() {\n    this._saveInitialAttribute(this._element, 'overflow')\n    this._element.style.overflow = 'hidden'\n  }\n\n  _setElementAttributes(selector, styleProperty, callback) {\n    const scrollbarWidth = this.getWidth()\n    const manipulationCallBack = element => {\n      if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n        return\n      }\n\n      this._saveInitialAttribute(element, styleProperty)\n      const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n      element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n    }\n\n    this._applyManipulationCallback(selector, manipulationCallBack)\n  }\n\n  _saveInitialAttribute(element, styleProperty) {\n    const actualValue = element.style.getPropertyValue(styleProperty)\n    if (actualValue) {\n      Manipulator.setDataAttribute(element, styleProperty, actualValue)\n    }\n  }\n\n  _resetElementAttributes(selector, styleProperty) {\n    const manipulationCallBack = element => {\n      const value = Manipulator.getDataAttribute(element, styleProperty)\n      // We only want to remove the property if the value is `null`; the value can also be zero\n      if (value === null) {\n        element.style.removeProperty(styleProperty)\n        return\n      }\n\n      Manipulator.removeDataAttribute(element, styleProperty)\n      element.style.setProperty(styleProperty, value)\n    }\n\n    this._applyManipulationCallback(selector, manipulationCallBack)\n  }\n\n  _applyManipulationCallback(selector, callBack) {\n    if (isElement(selector)) {\n      callBack(selector)\n      return\n    }\n\n    for (const sel of SelectorEngine.find(selector, this._element)) {\n      callBack(sel)\n    }\n  }\n}\n\nexport default ScrollBarHelper\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { execute, executeAfterTransition, getElement, reflow } from './index'\nimport Config from './config'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n  className: 'modal-backdrop',\n  clickCallback: null,\n  isAnimated: false,\n  isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n  rootElement: 'body' // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n  className: 'string',\n  clickCallback: '(function|null)',\n  isAnimated: 'boolean',\n  isVisible: 'boolean',\n  rootElement: '(element|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n    this._isAppended = false\n    this._element = null\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  show(callback) {\n    if (!this._config.isVisible) {\n      execute(callback)\n      return\n    }\n\n    this._append()\n\n    const element = this._getElement()\n    if (this._config.isAnimated) {\n      reflow(element)\n    }\n\n    element.classList.add(CLASS_NAME_SHOW)\n\n    this._emulateAnimation(() => {\n      execute(callback)\n    })\n  }\n\n  hide(callback) {\n    if (!this._config.isVisible) {\n      execute(callback)\n      return\n    }\n\n    this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n    this._emulateAnimation(() => {\n      this.dispose()\n      execute(callback)\n    })\n  }\n\n  dispose() {\n    if (!this._isAppended) {\n      return\n    }\n\n    EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n    this._element.remove()\n    this._isAppended = false\n  }\n\n  // Private\n  _getElement() {\n    if (!this._element) {\n      const backdrop = document.createElement('div')\n      backdrop.className = this._config.className\n      if (this._config.isAnimated) {\n        backdrop.classList.add(CLASS_NAME_FADE)\n      }\n\n      this._element = backdrop\n    }\n\n    return this._element\n  }\n\n  _configAfterMerge(config) {\n    // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n    config.rootElement = getElement(config.rootElement)\n    return config\n  }\n\n  _append() {\n    if (this._isAppended) {\n      return\n    }\n\n    const element = this._getElement()\n    this._config.rootElement.append(element)\n\n    EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n      execute(this._config.clickCallback)\n    })\n\n    this._isAppended = true\n  }\n\n  _emulateAnimation(callback) {\n    executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n  }\n}\n\nexport default Backdrop\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\nimport Config from './config'\n\n/**\n * Constants\n */\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nconst Default = {\n  autofocus: true,\n  trapElement: null // The element to trap focus inside of\n}\n\nconst DefaultType = {\n  autofocus: 'boolean',\n  trapElement: 'element'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n    this._isActive = false\n    this._lastTabNavDirection = null\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  activate() {\n    if (this._isActive) {\n      return\n    }\n\n    if (this._config.autofocus) {\n      this._config.trapElement.focus()\n    }\n\n    EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n    EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n    EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n    this._isActive = true\n  }\n\n  deactivate() {\n    if (!this._isActive) {\n      return\n    }\n\n    this._isActive = false\n    EventHandler.off(document, EVENT_KEY)\n  }\n\n  // Private\n  _handleFocusin(event) {\n    const { trapElement } = this._config\n\n    if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n      return\n    }\n\n    const elements = SelectorEngine.focusableChildren(trapElement)\n\n    if (elements.length === 0) {\n      trapElement.focus()\n    } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n      elements[elements.length - 1].focus()\n    } else {\n      elements[0].focus()\n    }\n  }\n\n  _handleKeydown(event) {\n    if (event.key !== TAB_KEY) {\n      return\n    }\n\n    this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n  }\n}\n\nexport default FocusTrap\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, isRTL, isVisible, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n  backdrop: true,\n  focus: true,\n  keyboard: true\n}\n\nconst DefaultType = {\n  backdrop: '(boolean|string)',\n  focus: 'boolean',\n  keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n    this._backdrop = this._initializeBackDrop()\n    this._focustrap = this._initializeFocusTrap()\n    this._isShown = false\n    this._isTransitioning = false\n    this._scrollBar = new ScrollBarHelper()\n\n    this._addEventListeners()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown || this._isTransitioning) {\n      return\n    }\n\n    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n      relatedTarget\n    })\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = true\n    this._isTransitioning = true\n\n    this._scrollBar.hide()\n\n    document.body.classList.add(CLASS_NAME_OPEN)\n\n    this._adjustDialog()\n\n    this._backdrop.show(() => this._showElement(relatedTarget))\n  }\n\n  hide() {\n    if (!this._isShown || this._isTransitioning) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = false\n    this._isTransitioning = true\n    this._focustrap.deactivate()\n\n    this._element.classList.remove(CLASS_NAME_SHOW)\n\n    this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n  }\n\n  dispose() {\n    for (const htmlElement of [window, this._dialog]) {\n      EventHandler.off(htmlElement, EVENT_KEY)\n    }\n\n    this._backdrop.dispose()\n    this._focustrap.deactivate()\n    super.dispose()\n  }\n\n  handleUpdate() {\n    this._adjustDialog()\n  }\n\n  // Private\n  _initializeBackDrop() {\n    return new Backdrop({\n      isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n      isAnimated: this._isAnimated()\n    })\n  }\n\n  _initializeFocusTrap() {\n    return new FocusTrap({\n      trapElement: this._element\n    })\n  }\n\n  _showElement(relatedTarget) {\n    // try to append dynamic modal\n    if (!document.body.contains(this._element)) {\n      document.body.append(this._element)\n    }\n\n    this._element.style.display = 'block'\n    this._element.removeAttribute('aria-hidden')\n    this._element.setAttribute('aria-modal', true)\n    this._element.setAttribute('role', 'dialog')\n    this._element.scrollTop = 0\n\n    const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n    if (modalBody) {\n      modalBody.scrollTop = 0\n    }\n\n    reflow(this._element)\n\n    this._element.classList.add(CLASS_NAME_SHOW)\n\n    const transitionComplete = () => {\n      if (this._config.focus) {\n        this._focustrap.activate()\n      }\n\n      this._isTransitioning = false\n      EventHandler.trigger(this._element, EVENT_SHOWN, {\n        relatedTarget\n      })\n    }\n\n    this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n  }\n\n  _addEventListeners() {\n    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n      if (event.key !== ESCAPE_KEY) {\n        return\n      }\n\n      if (this._config.keyboard) {\n        event.preventDefault()\n        this.hide()\n        return\n      }\n\n      this._triggerBackdropTransition()\n    })\n\n    EventHandler.on(window, EVENT_RESIZE, () => {\n      if (this._isShown && !this._isTransitioning) {\n        this._adjustDialog()\n      }\n    })\n\n    EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n      // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n      EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n        if (this._element !== event.target || this._element !== event2.target) {\n          return\n        }\n\n        if (this._config.backdrop === 'static') {\n          this._triggerBackdropTransition()\n          return\n        }\n\n        if (this._config.backdrop) {\n          this.hide()\n        }\n      })\n    })\n  }\n\n  _hideModal() {\n    this._element.style.display = 'none'\n    this._element.setAttribute('aria-hidden', true)\n    this._element.removeAttribute('aria-modal')\n    this._element.removeAttribute('role')\n    this._isTransitioning = false\n\n    this._backdrop.hide(() => {\n      document.body.classList.remove(CLASS_NAME_OPEN)\n      this._resetAdjustments()\n      this._scrollBar.reset()\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    })\n  }\n\n  _isAnimated() {\n    return this._element.classList.contains(CLASS_NAME_FADE)\n  }\n\n  _triggerBackdropTransition() {\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n    const initialOverflowY = this._element.style.overflowY\n    // return if the following background transition hasn't yet completed\n    if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n      return\n    }\n\n    if (!isModalOverflowing) {\n      this._element.style.overflowY = 'hidden'\n    }\n\n    this._element.classList.add(CLASS_NAME_STATIC)\n    this._queueCallback(() => {\n      this._element.classList.remove(CLASS_NAME_STATIC)\n      this._queueCallback(() => {\n        this._element.style.overflowY = initialOverflowY\n      }, this._dialog)\n    }, this._dialog)\n\n    this._element.focus()\n  }\n\n  /**\n   * The following methods are used to handle overflowing modals\n   */\n\n  _adjustDialog() {\n    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n    const scrollbarWidth = this._scrollBar.getWidth()\n    const isBodyOverflowing = scrollbarWidth > 0\n\n    if (isBodyOverflowing && !isModalOverflowing) {\n      const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n      this._element.style[property] = `${scrollbarWidth}px`\n    }\n\n    if (!isBodyOverflowing && isModalOverflowing) {\n      const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n      this._element.style[property] = `${scrollbarWidth}px`\n    }\n  }\n\n  _resetAdjustments() {\n    this._element.style.paddingLeft = ''\n    this._element.style.paddingRight = ''\n  }\n\n  // Static\n  static jQueryInterface(config, relatedTarget) {\n    return this.each(function () {\n      const data = Modal.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (typeof data[config] === 'undefined') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config](relatedTarget)\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = getElementFromSelector(this)\n\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault()\n  }\n\n  EventHandler.one(target, EVENT_SHOW, showEvent => {\n    if (showEvent.defaultPrevented) {\n      // only register focus restorer if modal will actually get shown\n      return\n    }\n\n    EventHandler.one(target, EVENT_HIDDEN, () => {\n      if (isVisible(this)) {\n        this.focus()\n      }\n    })\n  })\n\n  // avoid conflict when clicking modal toggler while another one is open\n  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n  if (alreadyOpen) {\n    Modal.getInstance(alreadyOpen).hide()\n  }\n\n  const data = Modal.getOrCreateInstance(target)\n\n  data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  getElementFromSelector,\n  isDisabled,\n  isVisible\n} from './util/index'\nimport ScrollBarHelper from './util/scrollbar'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\nconst CLASS_NAME_HIDING = 'hiding'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\nconst Default = {\n  backdrop: true,\n  keyboard: true,\n  scroll: false\n}\n\nconst DefaultType = {\n  backdrop: '(boolean|string)',\n  keyboard: 'boolean',\n  scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._isShown = false\n    this._backdrop = this._initializeBackDrop()\n    this._focustrap = this._initializeFocusTrap()\n    this._addEventListeners()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown) {\n      return\n    }\n\n    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = true\n    this._backdrop.show()\n\n    if (!this._config.scroll) {\n      new ScrollBarHelper().hide()\n    }\n\n    this._element.setAttribute('aria-modal', true)\n    this._element.setAttribute('role', 'dialog')\n    this._element.classList.add(CLASS_NAME_SHOWING)\n\n    const completeCallBack = () => {\n      if (!this._config.scroll || this._config.backdrop) {\n        this._focustrap.activate()\n      }\n\n      this._element.classList.add(CLASS_NAME_SHOW)\n      this._element.classList.remove(CLASS_NAME_SHOWING)\n      EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n    }\n\n    this._queueCallback(completeCallBack, this._element, true)\n  }\n\n  hide() {\n    if (!this._isShown) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    this._focustrap.deactivate()\n    this._element.blur()\n    this._isShown = false\n    this._element.classList.add(CLASS_NAME_HIDING)\n    this._backdrop.hide()\n\n    const completeCallback = () => {\n      this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n      this._element.removeAttribute('aria-modal')\n      this._element.removeAttribute('role')\n\n      if (!this._config.scroll) {\n        new ScrollBarHelper().reset()\n      }\n\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    }\n\n    this._queueCallback(completeCallback, this._element, true)\n  }\n\n  dispose() {\n    this._backdrop.dispose()\n    this._focustrap.deactivate()\n    super.dispose()\n  }\n\n  // Private\n  _initializeBackDrop() {\n    const clickCallback = () => {\n      if (this._config.backdrop === 'static') {\n        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n        return\n      }\n\n      this.hide()\n    }\n\n    // 'static' option will be translated to true, and booleans will keep their value\n    const isVisible = Boolean(this._config.backdrop)\n\n    return new Backdrop({\n      className: CLASS_NAME_BACKDROP,\n      isVisible,\n      isAnimated: true,\n      rootElement: this._element.parentNode,\n      clickCallback: isVisible ? clickCallback : null\n    })\n  }\n\n  _initializeFocusTrap() {\n    return new FocusTrap({\n      trapElement: this._element\n    })\n  }\n\n  _addEventListeners() {\n    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n      if (event.key !== ESCAPE_KEY) {\n        return\n      }\n\n      if (!this._config.keyboard) {\n        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n        return\n      }\n\n      this.hide()\n    })\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Offcanvas.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config](this)\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = getElementFromSelector(this)\n\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault()\n  }\n\n  if (isDisabled(this)) {\n    return\n  }\n\n  EventHandler.one(target, EVENT_HIDDEN, () => {\n    // focus on trigger when it is closed\n    if (isVisible(this)) {\n      this.focus()\n    }\n  })\n\n  // avoid conflict when clicking a toggler of an offcanvas, while another is open\n  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n  if (alreadyOpen && alreadyOpen !== target) {\n    Offcanvas.getInstance(alreadyOpen).hide()\n  }\n\n  const data = Offcanvas.getOrCreateInstance(target)\n  data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n    Offcanvas.getOrCreateInstance(selector).show()\n  }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n  for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n    if (getComputedStyle(element).position !== 'fixed') {\n      Offcanvas.getOrCreateInstance(element).hide()\n    }\n  }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttributes = new Set([\n  'background',\n  'cite',\n  'href',\n  'itemtype',\n  'longdesc',\n  'poster',\n  'src',\n  'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n  const attributeName = attribute.nodeName.toLowerCase()\n\n  if (allowedAttributeList.includes(attributeName)) {\n    if (uriAttributes.has(attributeName)) {\n      return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue))\n    }\n\n    return true\n  }\n\n  // Check if a regular expression validates the attribute.\n  return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n    .some(regex => regex.test(attributeName))\n}\n\nexport const DefaultAllowlist = {\n  // Global attributes allowed on any supplied element below.\n  '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n  a: ['target', 'href', 'title', 'rel'],\n  area: [],\n  b: [],\n  br: [],\n  col: [],\n  code: [],\n  div: [],\n  em: [],\n  hr: [],\n  h1: [],\n  h2: [],\n  h3: [],\n  h4: [],\n  h5: [],\n  h6: [],\n  i: [],\n  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n  li: [],\n  ol: [],\n  p: [],\n  pre: [],\n  s: [],\n  small: [],\n  span: [],\n  sub: [],\n  sup: [],\n  strong: [],\n  u: [],\n  ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n  if (!unsafeHtml.length) {\n    return unsafeHtml\n  }\n\n  if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n    return sanitizeFunction(unsafeHtml)\n  }\n\n  const domParser = new window.DOMParser()\n  const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n  const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n  for (const element of elements) {\n    const elementName = element.nodeName.toLowerCase()\n\n    if (!Object.keys(allowList).includes(elementName)) {\n      element.remove()\n\n      continue\n    }\n\n    const attributeList = [].concat(...element.attributes)\n    const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n    for (const attribute of attributeList) {\n      if (!allowedAttribute(attribute, allowedAttributes)) {\n        element.removeAttribute(attribute.nodeName)\n      }\n    }\n  }\n\n  return createdDocument.body.innerHTML\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer'\nimport { getElement, isElement } from '../util/index'\nimport SelectorEngine from '../dom/selector-engine'\nimport Config from './config'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n  allowList: DefaultAllowlist,\n  content: {}, // { selector : text ,  selector2 : text2 , }\n  extraClass: '',\n  html: false,\n  sanitize: true,\n  sanitizeFn: null,\n  template: '<div></div>'\n}\n\nconst DefaultType = {\n  allowList: 'object',\n  content: 'object',\n  extraClass: '(string|function)',\n  html: 'boolean',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  template: 'string'\n}\n\nconst DefaultContentType = {\n  entry: '(string|element|function|null)',\n  selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  getContent() {\n    return Object.values(this._config.content)\n      .map(config => this._resolvePossibleFunction(config))\n      .filter(Boolean)\n  }\n\n  hasContent() {\n    return this.getContent().length > 0\n  }\n\n  changeContent(content) {\n    this._checkContent(content)\n    this._config.content = { ...this._config.content, ...content }\n    return this\n  }\n\n  toHtml() {\n    const templateWrapper = document.createElement('div')\n    templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n    for (const [selector, text] of Object.entries(this._config.content)) {\n      this._setContent(templateWrapper, text, selector)\n    }\n\n    const template = templateWrapper.children[0]\n    const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n    if (extraClass) {\n      template.classList.add(...extraClass.split(' '))\n    }\n\n    return template\n  }\n\n  // Private\n  _typeCheckConfig(config) {\n    super._typeCheckConfig(config)\n    this._checkContent(config.content)\n  }\n\n  _checkContent(arg) {\n    for (const [selector, content] of Object.entries(arg)) {\n      super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n    }\n  }\n\n  _setContent(template, content, selector) {\n    const templateElement = SelectorEngine.findOne(selector, template)\n\n    if (!templateElement) {\n      return\n    }\n\n    content = this._resolvePossibleFunction(content)\n\n    if (!content) {\n      templateElement.remove()\n      return\n    }\n\n    if (isElement(content)) {\n      this._putElementInTemplate(getElement(content), templateElement)\n      return\n    }\n\n    if (this._config.html) {\n      templateElement.innerHTML = this._maybeSanitize(content)\n      return\n    }\n\n    templateElement.textContent = content\n  }\n\n  _maybeSanitize(arg) {\n    return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n  }\n\n  _resolvePossibleFunction(arg) {\n    return typeof arg === 'function' ? arg(this) : arg\n  }\n\n  _putElementInTemplate(element, templateElement) {\n    if (this._config.html) {\n      templateElement.innerHTML = ''\n      templateElement.append(element)\n      return\n    }\n\n    templateElement.textContent = element.textContent\n  }\n}\n\nexport default TemplateFactory\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport { defineJQueryPlugin, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index'\nimport { DefaultAllowlist } from './util/sanitizer'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\nimport TemplateFactory from './util/template-factory'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: isRTL() ? 'left' : 'right',\n  BOTTOM: 'bottom',\n  LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n  allowList: DefaultAllowlist,\n  animation: true,\n  boundary: 'clippingParents',\n  container: false,\n  customClass: '',\n  delay: 0,\n  fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n  html: false,\n  offset: [0, 0],\n  placement: 'top',\n  popperConfig: null,\n  sanitize: true,\n  sanitizeFn: null,\n  selector: false,\n  template: '<div class=\"tooltip\" role=\"tooltip\">' +\n            '<div class=\"tooltip-arrow\"></div>' +\n            '<div class=\"tooltip-inner\"></div>' +\n            '</div>',\n  title: '',\n  trigger: 'hover focus'\n}\n\nconst DefaultType = {\n  allowList: 'object',\n  animation: 'boolean',\n  boundary: '(string|element)',\n  container: '(string|element|boolean)',\n  customClass: '(string|function)',\n  delay: '(number|object)',\n  fallbackPlacements: 'array',\n  html: 'boolean',\n  offset: '(array|string|function)',\n  placement: '(string|function)',\n  popperConfig: '(null|object|function)',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  selector: '(string|boolean)',\n  template: 'string',\n  title: '(string|element|function)',\n  trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n  constructor(element, config) {\n    if (typeof Popper === 'undefined') {\n      throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n    }\n\n    super(element, config)\n\n    // Private\n    this._isEnabled = true\n    this._timeout = 0\n    this._isHovered = null\n    this._activeTrigger = {}\n    this._popper = null\n    this._templateFactory = null\n    this._newContent = null\n\n    // Protected\n    this.tip = null\n\n    this._setListeners()\n\n    if (!this._config.selector) {\n      this._fixTitle()\n    }\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  enable() {\n    this._isEnabled = true\n  }\n\n  disable() {\n    this._isEnabled = false\n  }\n\n  toggleEnabled() {\n    this._isEnabled = !this._isEnabled\n  }\n\n  toggle() {\n    if (!this._isEnabled) {\n      return\n    }\n\n    this._activeTrigger.click = !this._activeTrigger.click\n    if (this._isShown()) {\n      this._leave()\n      return\n    }\n\n    this._enter()\n  }\n\n  dispose() {\n    clearTimeout(this._timeout)\n\n    EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n    if (this._element.getAttribute('data-bs-original-title')) {\n      this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n    }\n\n    this._disposePopper()\n    super.dispose()\n  }\n\n  show() {\n    if (this._element.style.display === 'none') {\n      throw new Error('Please use show on visible elements')\n    }\n\n    if (!(this._isWithContent() && this._isEnabled)) {\n      return\n    }\n\n    const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n    const shadowRoot = findShadowRoot(this._element)\n    const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n    if (showEvent.defaultPrevented || !isInTheDom) {\n      return\n    }\n\n    // todo v6 remove this OR make it optional\n    this._disposePopper()\n\n    const tip = this._getTipElement()\n\n    this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n    const { container } = this._config\n\n    if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n      container.append(tip)\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n    }\n\n    this._popper = this._createPopper(tip)\n\n    tip.classList.add(CLASS_NAME_SHOW)\n\n    // If this is a touch-enabled device we add extra\n    // empty mouseover listeners to the body's immediate children;\n    // only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.on(element, 'mouseover', noop)\n      }\n    }\n\n    const complete = () => {\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n      if (this._isHovered === false) {\n        this._leave()\n      }\n\n      this._isHovered = false\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  hide() {\n    if (!this._isShown()) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const tip = this._getTipElement()\n    tip.classList.remove(CLASS_NAME_SHOW)\n\n    // If this is a touch-enabled device we remove the extra\n    // empty mouseover listeners we added for iOS support\n    if ('ontouchstart' in document.documentElement) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.off(element, 'mouseover', noop)\n      }\n    }\n\n    this._activeTrigger[TRIGGER_CLICK] = false\n    this._activeTrigger[TRIGGER_FOCUS] = false\n    this._activeTrigger[TRIGGER_HOVER] = false\n    this._isHovered = null // it is a trick to support manual triggering\n\n    const complete = () => {\n      if (this._isWithActiveTrigger()) {\n        return\n      }\n\n      if (!this._isHovered) {\n        this._disposePopper()\n      }\n\n      this._element.removeAttribute('aria-describedby')\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  update() {\n    if (this._popper) {\n      this._popper.update()\n    }\n  }\n\n  // Protected\n  _isWithContent() {\n    return Boolean(this._getTitle())\n  }\n\n  _getTipElement() {\n    if (!this.tip) {\n      this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n    }\n\n    return this.tip\n  }\n\n  _createTipElement(content) {\n    const tip = this._getTemplateFactory(content).toHtml()\n\n    // todo: remove this check on v6\n    if (!tip) {\n      return null\n    }\n\n    tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n    // todo: on v6 the following can be achieved with CSS only\n    tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n    const tipId = getUID(this.constructor.NAME).toString()\n\n    tip.setAttribute('id', tipId)\n\n    if (this._isAnimated()) {\n      tip.classList.add(CLASS_NAME_FADE)\n    }\n\n    return tip\n  }\n\n  setContent(content) {\n    this._newContent = content\n    if (this._isShown()) {\n      this._disposePopper()\n      this.show()\n    }\n  }\n\n  _getTemplateFactory(content) {\n    if (this._templateFactory) {\n      this._templateFactory.changeContent(content)\n    } else {\n      this._templateFactory = new TemplateFactory({\n        ...this._config,\n        // the `content` var has to be after `this._config`\n        // to override config.content in case of popover\n        content,\n        extraClass: this._resolvePossibleFunction(this._config.customClass)\n      })\n    }\n\n    return this._templateFactory\n  }\n\n  _getContentForTemplate() {\n    return {\n      [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n    }\n  }\n\n  _getTitle() {\n    return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n  }\n\n  // Private\n  _initializeOnDelegatedTarget(event) {\n    return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n  }\n\n  _isAnimated() {\n    return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _isShown() {\n    return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  _createPopper(tip) {\n    const placement = typeof this._config.placement === 'function' ?\n      this._config.placement.call(this, tip, this._element) :\n      this._config.placement\n    const attachment = AttachmentMap[placement.toUpperCase()]\n    return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n  }\n\n  _getOffset() {\n    const { offset } = this._config\n\n    if (typeof offset === 'string') {\n      return offset.split(',').map(value => Number.parseInt(value, 10))\n    }\n\n    if (typeof offset === 'function') {\n      return popperData => offset(popperData, this._element)\n    }\n\n    return offset\n  }\n\n  _resolvePossibleFunction(arg) {\n    return typeof arg === 'function' ? arg.call(this._element) : arg\n  }\n\n  _getPopperConfig(attachment) {\n    const defaultBsPopperConfig = {\n      placement: attachment,\n      modifiers: [\n        {\n          name: 'flip',\n          options: {\n            fallbackPlacements: this._config.fallbackPlacements\n          }\n        },\n        {\n          name: 'offset',\n          options: {\n            offset: this._getOffset()\n          }\n        },\n        {\n          name: 'preventOverflow',\n          options: {\n            boundary: this._config.boundary\n          }\n        },\n        {\n          name: 'arrow',\n          options: {\n            element: `.${this.constructor.NAME}-arrow`\n          }\n        },\n        {\n          name: 'preSetPlacement',\n          enabled: true,\n          phase: 'beforeMain',\n          fn: data => {\n            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n            this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n          }\n        }\n      ]\n    }\n\n    return {\n      ...defaultBsPopperConfig,\n      ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n    }\n  }\n\n  _setListeners() {\n    const triggers = this._config.trigger.split(' ')\n\n    for (const trigger of triggers) {\n      if (trigger === 'click') {\n        EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context.toggle()\n        })\n      } else if (trigger !== TRIGGER_MANUAL) {\n        const eventIn = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSEENTER) :\n          this.constructor.eventName(EVENT_FOCUSIN)\n        const eventOut = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSELEAVE) :\n          this.constructor.eventName(EVENT_FOCUSOUT)\n\n        EventHandler.on(this._element, eventIn, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n          context._enter()\n        })\n        EventHandler.on(this._element, eventOut, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n            context._element.contains(event.relatedTarget)\n\n          context._leave()\n        })\n      }\n    }\n\n    this._hideModalHandler = () => {\n      if (this._element) {\n        this.hide()\n      }\n    }\n\n    EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n  }\n\n  _fixTitle() {\n    const title = this._element.getAttribute('title')\n\n    if (!title) {\n      return\n    }\n\n    if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n      this._element.setAttribute('aria-label', title)\n    }\n\n    this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n    this._element.removeAttribute('title')\n  }\n\n  _enter() {\n    if (this._isShown() || this._isHovered) {\n      this._isHovered = true\n      return\n    }\n\n    this._isHovered = true\n\n    this._setTimeout(() => {\n      if (this._isHovered) {\n        this.show()\n      }\n    }, this._config.delay.show)\n  }\n\n  _leave() {\n    if (this._isWithActiveTrigger()) {\n      return\n    }\n\n    this._isHovered = false\n\n    this._setTimeout(() => {\n      if (!this._isHovered) {\n        this.hide()\n      }\n    }, this._config.delay.hide)\n  }\n\n  _setTimeout(handler, timeout) {\n    clearTimeout(this._timeout)\n    this._timeout = setTimeout(handler, timeout)\n  }\n\n  _isWithActiveTrigger() {\n    return Object.values(this._activeTrigger).includes(true)\n  }\n\n  _getConfig(config) {\n    const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n    for (const dataAttribute of Object.keys(dataAttributes)) {\n      if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n        delete dataAttributes[dataAttribute]\n      }\n    }\n\n    config = {\n      ...dataAttributes,\n      ...(typeof config === 'object' && config ? config : {})\n    }\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    config.container = config.container === false ? document.body : getElement(config.container)\n\n    if (typeof config.delay === 'number') {\n      config.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    if (typeof config.title === 'number') {\n      config.title = config.title.toString()\n    }\n\n    if (typeof config.content === 'number') {\n      config.content = config.content.toString()\n    }\n\n    return config\n  }\n\n  _getDelegateConfig() {\n    const config = {}\n\n    for (const key in this._config) {\n      if (this.constructor.Default[key] !== this._config[key]) {\n        config[key] = this._config[key]\n      }\n    }\n\n    config.selector = false\n    config.trigger = 'manual'\n\n    // In the future can be replaced with:\n    // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n    // `Object.fromEntries(keysWithDifferentValues)`\n    return config\n  }\n\n  _disposePopper() {\n    if (this._popper) {\n      this._popper.destroy()\n      this._popper = null\n    }\n\n    if (this.tip) {\n      this.tip.remove()\n      this.tip = null\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Tooltip.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (typeof data[config] === 'undefined') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Tooltip from './tooltip'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n  ...Tooltip.Default,\n  content: '',\n  offset: [0, 8],\n  placement: 'right',\n  template: '<div class=\"popover\" role=\"tooltip\">' +\n    '<div class=\"popover-arrow\"></div>' +\n    '<h3 class=\"popover-header\"></h3>' +\n    '<div class=\"popover-body\"></div>' +\n    '</div>',\n  trigger: 'click'\n}\n\nconst DefaultType = {\n  ...Tooltip.DefaultType,\n  content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Overrides\n  _isWithContent() {\n    return this._getTitle() || this._getContent()\n  }\n\n  // Private\n  _getContentForTemplate() {\n    return {\n      [SELECTOR_TITLE]: this._getTitle(),\n      [SELECTOR_CONTENT]: this._getContent()\n    }\n  }\n\n  _getContent() {\n    return this._resolvePossibleFunction(this._config.content)\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Popover.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (typeof data[config] === 'undefined') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n  offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n  rootMargin: '0px 0px -25%',\n  smoothScroll: false,\n  target: null,\n  threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n  offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n  rootMargin: 'string',\n  smoothScroll: 'boolean',\n  target: 'element',\n  threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    // this._element is the observablesContainer and config.target the menu links wrapper\n    this._targetLinks = new Map()\n    this._observableSections = new Map()\n    this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n    this._activeTarget = null\n    this._observer = null\n    this._previousScrollData = {\n      visibleEntryTop: 0,\n      parentScrollTop: 0\n    }\n    this.refresh() // initialize\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  refresh() {\n    this._initializeTargetsAndObservables()\n    this._maybeEnableSmoothScroll()\n\n    if (this._observer) {\n      this._observer.disconnect()\n    } else {\n      this._observer = this._getNewObserver()\n    }\n\n    for (const section of this._observableSections.values()) {\n      this._observer.observe(section)\n    }\n  }\n\n  dispose() {\n    this._observer.disconnect()\n    super.dispose()\n  }\n\n  // Private\n  _configAfterMerge(config) {\n    // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n    config.target = getElement(config.target) || document.body\n\n    // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n    config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n    if (typeof config.threshold === 'string') {\n      config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n    }\n\n    return config\n  }\n\n  _maybeEnableSmoothScroll() {\n    if (!this._config.smoothScroll) {\n      return\n    }\n\n    // unregister any previous listeners\n    EventHandler.off(this._config.target, EVENT_CLICK)\n\n    EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n      const observableSection = this._observableSections.get(event.target.hash)\n      if (observableSection) {\n        event.preventDefault()\n        const root = this._rootElement || window\n        const height = observableSection.offsetTop - this._element.offsetTop\n        if (root.scrollTo) {\n          root.scrollTo({ top: height, behavior: 'smooth' })\n          return\n        }\n\n        // Chrome 60 doesn't support `scrollTo`\n        root.scrollTop = height\n      }\n    })\n  }\n\n  _getNewObserver() {\n    const options = {\n      root: this._rootElement,\n      threshold: this._config.threshold,\n      rootMargin: this._config.rootMargin\n    }\n\n    return new IntersectionObserver(entries => this._observerCallback(entries), options)\n  }\n\n  // The logic of selection\n  _observerCallback(entries) {\n    const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n    const activate = entry => {\n      this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n      this._process(targetElement(entry))\n    }\n\n    const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n    const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n    this._previousScrollData.parentScrollTop = parentScrollTop\n\n    for (const entry of entries) {\n      if (!entry.isIntersecting) {\n        this._activeTarget = null\n        this._clearActiveClass(targetElement(entry))\n\n        continue\n      }\n\n      const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n      // if we are scrolling down, pick the bigger offsetTop\n      if (userScrollsDown && entryIsLowerThanPrevious) {\n        activate(entry)\n        // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n        if (!parentScrollTop) {\n          return\n        }\n\n        continue\n      }\n\n      // if we are scrolling up, pick the smallest offsetTop\n      if (!userScrollsDown && !entryIsLowerThanPrevious) {\n        activate(entry)\n      }\n    }\n  }\n\n  _initializeTargetsAndObservables() {\n    this._targetLinks = new Map()\n    this._observableSections = new Map()\n\n    const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n    for (const anchor of targetLinks) {\n      // ensure that the anchor has an id and is not disabled\n      if (!anchor.hash || isDisabled(anchor)) {\n        continue\n      }\n\n      const observableSection = SelectorEngine.findOne(anchor.hash, this._element)\n\n      // ensure that the observableSection exists & is visible\n      if (isVisible(observableSection)) {\n        this._targetLinks.set(anchor.hash, anchor)\n        this._observableSections.set(anchor.hash, observableSection)\n      }\n    }\n  }\n\n  _process(target) {\n    if (this._activeTarget === target) {\n      return\n    }\n\n    this._clearActiveClass(this._config.target)\n    this._activeTarget = target\n    target.classList.add(CLASS_NAME_ACTIVE)\n    this._activateParents(target)\n\n    EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n  }\n\n  _activateParents(target) {\n    // Activate dropdown parents\n    if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n        .classList.add(CLASS_NAME_ACTIVE)\n      return\n    }\n\n    for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n      // Set triggered links parents as active\n      // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n      for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n        item.classList.add(CLASS_NAME_ACTIVE)\n      }\n    }\n  }\n\n  _clearActiveClass(parent) {\n    parent.classList.remove(CLASS_NAME_ACTIVE)\n\n    const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n    for (const node of activeNodes) {\n      node.classList.remove(CLASS_NAME_ACTIVE)\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = ScrollSpy.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n    ScrollSpy.getOrCreateInstance(spy)\n  }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, getNextActiveElement, isDisabled } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // todo:v6: could be only `tab`\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n  constructor(element) {\n    super(element)\n    this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n    if (!this._parent) {\n      return\n      // todo: should Throw exception on v6\n      // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n    }\n\n    // Set up initial aria attributes\n    this._setInitialAttributes(this._parent, this._getChildren())\n\n    EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n  }\n\n  // Getters\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  show() { // Shows this elem and deactivate the active sibling if exists\n    const innerElem = this._element\n    if (this._elemIsActive(innerElem)) {\n      return\n    }\n\n    // Search for active tab on same parent to deactivate it\n    const active = this._getActiveElem()\n\n    const hideEvent = active ?\n      EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n      null\n\n    const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n    if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n      return\n    }\n\n    this._deactivate(active, innerElem)\n    this._activate(innerElem, active)\n  }\n\n  // Private\n  _activate(element, relatedElem) {\n    if (!element) {\n      return\n    }\n\n    element.classList.add(CLASS_NAME_ACTIVE)\n\n    this._activate(getElementFromSelector(element)) // Search and activate/show the proper section\n\n    const complete = () => {\n      if (element.getAttribute('role') !== 'tab') {\n        element.classList.add(CLASS_NAME_SHOW)\n        return\n      }\n\n      element.removeAttribute('tabindex')\n      element.setAttribute('aria-selected', true)\n      this._toggleDropDown(element, true)\n      EventHandler.trigger(element, EVENT_SHOWN, {\n        relatedTarget: relatedElem\n      })\n    }\n\n    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _deactivate(element, relatedElem) {\n    if (!element) {\n      return\n    }\n\n    element.classList.remove(CLASS_NAME_ACTIVE)\n    element.blur()\n\n    this._deactivate(getElementFromSelector(element)) // Search and deactivate the shown section too\n\n    const complete = () => {\n      if (element.getAttribute('role') !== 'tab') {\n        element.classList.remove(CLASS_NAME_SHOW)\n        return\n      }\n\n      element.setAttribute('aria-selected', false)\n      element.setAttribute('tabindex', '-1')\n      this._toggleDropDown(element, false)\n      EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n    }\n\n    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _keydown(event) {\n    if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key))) {\n      return\n    }\n\n    event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n    event.preventDefault()\n    const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n    const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)\n\n    if (nextActiveElement) {\n      nextActiveElement.focus({ preventScroll: true })\n      Tab.getOrCreateInstance(nextActiveElement).show()\n    }\n  }\n\n  _getChildren() { // collection of inner elements\n    return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n  }\n\n  _getActiveElem() {\n    return this._getChildren().find(child => this._elemIsActive(child)) || null\n  }\n\n  _setInitialAttributes(parent, children) {\n    this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n    for (const child of children) {\n      this._setInitialAttributesOnChild(child)\n    }\n  }\n\n  _setInitialAttributesOnChild(child) {\n    child = this._getInnerElement(child)\n    const isActive = this._elemIsActive(child)\n    const outerElem = this._getOuterElement(child)\n    child.setAttribute('aria-selected', isActive)\n\n    if (outerElem !== child) {\n      this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n    }\n\n    if (!isActive) {\n      child.setAttribute('tabindex', '-1')\n    }\n\n    this._setAttributeIfNotExists(child, 'role', 'tab')\n\n    // set attributes to the related panel too\n    this._setInitialAttributesOnTargetPanel(child)\n  }\n\n  _setInitialAttributesOnTargetPanel(child) {\n    const target = getElementFromSelector(child)\n\n    if (!target) {\n      return\n    }\n\n    this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n    if (child.id) {\n      this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`)\n    }\n  }\n\n  _toggleDropDown(element, open) {\n    const outerElem = this._getOuterElement(element)\n    if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n      return\n    }\n\n    const toggle = (selector, className) => {\n      const element = SelectorEngine.findOne(selector, outerElem)\n      if (element) {\n        element.classList.toggle(className, open)\n      }\n    }\n\n    toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n    toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n    outerElem.setAttribute('aria-expanded', open)\n  }\n\n  _setAttributeIfNotExists(element, attribute, value) {\n    if (!element.hasAttribute(attribute)) {\n      element.setAttribute(attribute, value)\n    }\n  }\n\n  _elemIsActive(elem) {\n    return elem.classList.contains(CLASS_NAME_ACTIVE)\n  }\n\n  // Try to get the inner element (usually the .nav-link)\n  _getInnerElement(elem) {\n    return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n  }\n\n  // Try to get the outer element (usually the .nav-item)\n  _getOuterElement(elem) {\n    return elem.closest(SELECTOR_OUTER) || elem\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Tab.getOrCreateInstance(this)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  if (['A', 'AREA'].includes(this.tagName)) {\n    event.preventDefault()\n  }\n\n  if (isDisabled(this)) {\n    return\n  }\n\n  Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n    Tab.getOrCreateInstance(element)\n  }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n  animation: 'boolean',\n  autohide: 'boolean',\n  delay: 'number'\n}\n\nconst Default = {\n  animation: true,\n  autohide: true,\n  delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._timeout = null\n    this._hasMouseInteraction = false\n    this._hasKeyboardInteraction = false\n    this._setListeners()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  show() {\n    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    this._clearTimeout()\n\n    if (this._config.animation) {\n      this._element.classList.add(CLASS_NAME_FADE)\n    }\n\n    const complete = () => {\n      this._element.classList.remove(CLASS_NAME_SHOWING)\n      EventHandler.trigger(this._element, EVENT_SHOWN)\n\n      this._maybeScheduleHide()\n    }\n\n    this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n    reflow(this._element)\n    this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n    this._queueCallback(complete, this._element, this._config.animation)\n  }\n\n  hide() {\n    if (!this.isShown()) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const complete = () => {\n      this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n      this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n      EventHandler.trigger(this._element, EVENT_HIDDEN)\n    }\n\n    this._element.classList.add(CLASS_NAME_SHOWING)\n    this._queueCallback(complete, this._element, this._config.animation)\n  }\n\n  dispose() {\n    this._clearTimeout()\n\n    if (this.isShown()) {\n      this._element.classList.remove(CLASS_NAME_SHOW)\n    }\n\n    super.dispose()\n  }\n\n  isShown() {\n    return this._element.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  // Private\n\n  _maybeScheduleHide() {\n    if (!this._config.autohide) {\n      return\n    }\n\n    if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n      return\n    }\n\n    this._timeout = setTimeout(() => {\n      this.hide()\n    }, this._config.delay)\n  }\n\n  _onInteraction(event, isInteracting) {\n    switch (event.type) {\n      case 'mouseover':\n      case 'mouseout': {\n        this._hasMouseInteraction = isInteracting\n        break\n      }\n\n      case 'focusin':\n      case 'focusout': {\n        this._hasKeyboardInteraction = isInteracting\n        break\n      }\n\n      default: {\n        break\n      }\n    }\n\n    if (isInteracting) {\n      this._clearTimeout()\n      return\n    }\n\n    const nextElement = event.relatedTarget\n    if (this._element === nextElement || this._element.contains(nextElement)) {\n      return\n    }\n\n    this._maybeScheduleHide()\n  }\n\n  _setListeners() {\n    EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n    EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n    EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n    EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n  }\n\n  _clearTimeout() {\n    clearTimeout(this._timeout)\n    this._timeout = null\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Toast.getOrCreateInstance(this, config)\n\n      if (typeof config === 'string') {\n        if (typeof data[config] === 'undefined') {\n          throw new TypeError(`No method named \"${config}\"`)\n        }\n\n        data[config](this)\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast)\n\nexport default Toast\n", "import { Turbo } from \"@hotwired/turbo-rails\"\n\nTurbo.setConfirmMethod((message, element) => {\n  return new Promise((resolve, reject) => {\n    const modalElement = document.getElementById('confirm-modal')\n    const modalBody = document.getElementById('confirm-modal-body')\n    const confirmBtn = document.getElementById('confirm-modal-btn')\n\n    if (!modalElement || !modalBody || !confirmBtn) {\n      // Fallback to native confirm if modal is missing\n      if (confirm(message)) {\n        resolve(true)\n      } else {\n        resolve(false)\n      }\n      return\n    }\n\n    // Set message\n    modalBody.textContent = message\n\n    // Create Bootstrap modal instance\n    const modal = new bootstrap.Modal(modalElement)\n    \n    // Handler for Confirm button\n    const handleConfirm = () => {\n      resolve(true)\n      modal.hide()\n      cleanup()\n    }\n\n    // Handler for Cancel/Dismiss\n    const handleCancel = () => {\n      resolve(false)\n      cleanup()\n    }\n\n    // Cleanup event listeners to avoid duplicates\n    const cleanup = () => {\n      confirmBtn.removeEventListener('click', handleConfirm)\n      modalElement.removeEventListener('hidden.bs.modal', handleCancel)\n    }\n\n    // Attach listeners\n    confirmBtn.addEventListener('click', handleConfirm)\n    modalElement.addEventListener('hidden.bs.modal', handleCancel)\n\n    // Show modal\n    modal.show()\n  })\n})\n", "// Entry point for the build script in your package.json\nimport \"@hotwired/turbo-rails\";\nimport \"./controllers\";\nimport \"./src/jquery\";\nimport \"trix\";\nimport \"@rails/actiontext\";\nimport \"@fortawesome/fontawesome-free/js/all\";\nimport * as bootstrap from \"bootstrap\";\nimport \"./custom_confirm\";\nwindow.bootstrap = bootstrap;\n\n// \uC774\uBCA4\uD2B8 \uC704\uC784\uC744 \uC0AC\uC6A9\uD558\uC5EC \uB3D9\uC801\uC73C\uB85C \uCD94\uAC00\uB41C \uC694\uC18C\uC5D0\uB3C4 \uC774\uBCA4\uD2B8\uAC00 \uC801\uC6A9\uB418\uB3C4\uB85D \uC218\uC815\ndocument.addEventListener(\"click\", (event) => {\n  // \uD074\uB9AD\uB41C \uC694\uC18C\uAC00 .cell-text \uD074\uB798\uC2A4\uC778\uC9C0 \uD655\uC778\n  if (event.target.matches(\".cell-text\")) {\n    const cell = event.target.closest('[data-behavior=\"editable-cell\"]');\n    if (cell) {\n      const textElement = cell.querySelector(\".cell-text\");\n      const inputElement = cell.querySelector('[data-behavior=\"inline-edit\"]');\n      const formElement = cell.querySelector(\".inline-form\");\n\n      textElement.classList.add(\"d-none\");\n      inputElement.classList.remove(\"d-none\");\n      inputElement.focus();\n    }\n  }\n});\n\ndocument.addEventListener(\n  \"blur\",\n  (event) => {\n    if (event.target.matches('[data-behavior=\"inline-edit\"]')) {\n      const inputElement = event.target;\n      const cell = inputElement.closest('[data-behavior=\"editable-cell\"]');\n      const textElement = cell.querySelector(\".cell-text\");\n      const formElement = cell.querySelector(\".inline-form\");\n\n      // \uD544\uC694\uC2DC \uD3FC \uC81C\uCD9C\n      // formElement.requestSubmit();\n\n      inputElement.classList.add(\"d-none\");\n      textElement.classList.remove(\"d-none\");\n    }\n  },\n  true\n); // Capture \uB2E8\uACC4\uC5D0\uC11C \uC774\uBCA4\uD2B8\uB97C \uD3EC\uCC29\n\ndocument.addEventListener(\"keydown\", (event) => {\n  if (\n    event.target.matches('[data-behavior=\"inline-edit\"]') &&\n    event.key === \"Enter\"\n  ) {\n    const inputElement = event.target;\n    const cell = inputElement.closest('[data-behavior=\"editable-cell\"]');\n    const textElement = cell.querySelector(\".cell-text\");\n    const formElement = cell.querySelector(\".inline-form\");\n\n    formElement.requestSubmit();\n    inputElement.classList.add(\"d-none\");\n    textElement.classList.remove(\"d-none\");\n  }\n});\n\n// Bootstrap tooltip \uCD08\uAE30\uD654 (Turbo Frame \uB0B4 \uB3D9\uC801 \uC694\uC18C \uD3EC\uD568)\nfunction initializeTooltips() {\n  if (typeof bootstrap !== \"undefined\") {\n    const tooltipTriggerList = document.querySelectorAll(\n      '[data-bs-toggle=\"tooltip\"]'\n    );\n    tooltipTriggerList.forEach((tooltipTriggerEl) => {\n      // \uC774\uBBF8 \uCD08\uAE30\uD654\uB41C tooltip\uC740 \uAC74\uB108\uB6F0\uAE30\n      if (!tooltipTriggerEl.dataset.tooltipInitialized) {\n        new bootstrap.Tooltip(tooltipTriggerEl);\n        tooltipTriggerEl.dataset.tooltipInitialized = \"true\";\n      }\n    });\n  }\n}\n\n// \uCD08\uAE30 \uB85C\uB4DC \uC2DC tooltip \uCD08\uAE30\uD654\ndocument.addEventListener(\"DOMContentLoaded\", initializeTooltips);\n\n// Turbo Frame \uB85C\uB4DC \uD6C4 tooltip \uCD08\uAE30\uD654\ndocument.addEventListener(\"turbo:frame-load\", initializeTooltips);\n\n// Turbo \uD398\uC774\uC9C0 \uB85C\uB4DC \uD6C4 tooltip \uCD08\uAE30\uD654\ndocument.addEventListener(\"turbo:load\", initializeTooltips);\n\n// \uBCF5\uC0AC \uBC84\uD2BC \uC774\uBCA4\uD2B8 \uC704\uC784 \uCC98\uB9AC\nconst copyButtonTimeouts = new Map();\n\nfunction initializeCopyButtons() {\n  document.querySelectorAll(\".copy-button-wrapper\").forEach((wrapper) => {\n    if (wrapper.dataset.copyInitialized === \"true\") return;\n\n    const button = wrapper.querySelector(\".copy-btn\");\n    const label = wrapper.querySelector(\".copy-label\");\n    if (!button || !label) return;\n\n    wrapper.dataset.copyInitialized = \"true\";\n    const wrapperId = wrapper.dataset.copyWrapperId || button.dataset.orderId;\n\n    // \uD638\uBC84 \uC2DC \"(copy)\" \uD45C\uC2DC\n    button.addEventListener(\"mouseenter\", function () {\n      if (!label.textContent.includes(\"copied\")) {\n        label.style.display = \"inline\";\n        // \uB2E4\uC74C \uD504\uB808\uC784\uC5D0\uC11C opacity \uC801\uC6A9 (display \uBCC0\uACBD \uD6C4)\n        requestAnimationFrame(() => {\n          label.style.opacity = \"1\";\n        });\n      }\n    });\n\n    button.addEventListener(\"mouseleave\", function () {\n      if (!label.textContent.includes(\"copied\")) {\n        label.style.opacity = \"0\";\n        // transition \uC644\uB8CC \uD6C4 display none\n        setTimeout(() => {\n          if (label.style.opacity === \"0\") {\n            label.style.display = \"none\";\n          }\n        }, 300);\n      }\n    });\n\n    // \uD074\uB9AD \uC2DC \uBCF5\uC0AC \uBC0F \"(copied)\" \uD45C\uC2DC\n    button.addEventListener(\"click\", function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n\n      const orderId = this.dataset.orderId;\n\n      navigator.clipboard\n        .writeText(orderId)\n        .then(() => {\n          if (typeof showToast === \"function\") {\n            showToast(\"\uC8FC\uBB38\uBC88\uD638\uAC00 \uD074\uB9BD\uBCF4\uB4DC\uB85C \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\");\n          }\n\n          // \uAE30\uC874 \uD0C0\uC774\uBA38\uAC00 \uC788\uC73C\uBA74 \uCDE8\uC18C\n          if (copyButtonTimeouts.has(wrapperId)) {\n            clearTimeout(copyButtonTimeouts.get(wrapperId));\n          }\n\n          // \"(copied)\"\uB85C \uBCC0\uACBD\uD558\uACE0 \uD45C\uC2DC (success \uC0C9\uC0C1 \uC801\uC6A9)\n          label.textContent = \"(copied)\";\n          label.classList.remove(\"text-primary\");\n          label.classList.add(\"text-success\");\n          label.style.display = \"inline\";\n          // \uB2E4\uC74C \uD504\uB808\uC784\uC5D0\uC11C opacity \uC801\uC6A9\n          requestAnimationFrame(() => {\n            label.style.opacity = \"1\";\n          });\n\n          // 3\uCD08 \uD6C4 fade out \uD6A8\uACFC\uB85C \uC228\uAE30\uAE30\n          const timeoutId = setTimeout(() => {\n            label.style.opacity = \"0\";\n            // transition \uC644\uB8CC \uD6C4 display none \uBC0F \uD14D\uC2A4\uD2B8 \uBCF5\uC6D0 (primary \uC0C9\uC0C1\uC73C\uB85C \uBCF5\uC6D0)\n            setTimeout(() => {\n              label.style.display = \"none\";\n              label.textContent = \"(copy)\";\n              label.classList.remove(\"text-success\");\n              label.classList.add(\"text-primary\");\n              copyButtonTimeouts.delete(wrapperId);\n            }, 300);\n          }, 1000);\n\n          copyButtonTimeouts.set(wrapperId, timeoutId);\n        })\n        .catch(function (err) {\n          console.error(\"\uBCF5\uC0AC \uC2E4\uD328:\", err);\n        });\n    });\n  });\n}\n\n// \uCD08\uAE30 \uB85C\uB4DC \uC2DC \uBCF5\uC0AC \uBC84\uD2BC \uCD08\uAE30\uD654\ndocument.addEventListener(\"DOMContentLoaded\", initializeCopyButtons);\n\n// Turbo Frame \uB85C\uB4DC \uD6C4 \uBCF5\uC0AC \uBC84\uD2BC \uCD08\uAE30\uD654\ndocument.addEventListener(\"turbo:frame-load\", initializeCopyButtons);\n\n// Turbo \uD398\uC774\uC9C0 \uB85C\uB4DC \uD6C4 \uBCF5\uC0AC \uBC84\uD2BC \uCD08\uAE30\uD654\ndocument.addEventListener(\"turbo:load\", initializeCopyButtons);\n\n// Alert \uBAA8\uB2EC \uD45C\uC2DC \uD568\uC218\nwindow.showAlertModal = function(message, type = \"info\") {\n  if (typeof bootstrap === \"undefined\") {\n    console.error(\"Bootstrap is not loaded\");\n    alert(message); // Fallback to alert\n    return;\n  }\n\n  const modalElement = document.getElementById(\"alert-modal\");\n  const modalBody = document.getElementById(\"alert-modal-body\");\n  const modalTitle = document.getElementById(\"alertModalLabel\");\n\n  if (!modalElement || !modalBody || !modalTitle) {\n    console.error(\"Alert modal elements not found\");\n    alert(message); // Fallback to alert\n    return;\n  }\n\n  // \uD0C0\uC785\uC5D0 \uB530\uB978 \uC81C\uBAA9 \uBC0F \uC2A4\uD0C0\uC77C \uC124\uC815\n  const typeConfig = {\n    success: { title: \"\uC131\uACF5\", icon: \"\u2713\", class: \"text-success\" },\n    danger: { title: \"\uC624\uB958\", icon: \"\u2715\", class: \"text-danger\" },\n    warning: { title: \"\uACBD\uACE0\", icon: \"\u26A0\", class: \"text-warning\" },\n    info: { title: \"\uC54C\uB9BC\", icon: \"\u2139\", class: \"text-info\" }\n  };\n\n  const config = typeConfig[type] || typeConfig.info;\n\n  // \uBAA8\uB2EC \uC81C\uBAA9 \uC124\uC815\n  modalTitle.textContent = config.title;\n  modalTitle.className = `modal-title ${config.class}`;\n\n  // \uBAA8\uB2EC \uBCF8\uBB38 \uC124\uC815\n  modalBody.innerHTML = `<div class=\"${config.class}\"><strong>${config.icon}</strong> ${message}</div>`;\n\n  // Bootstrap Modal \uC778\uC2A4\uD134\uC2A4 \uC0DD\uC131 \uBC0F \uD45C\uC2DC\n  const modal = new bootstrap.Modal(modalElement);\n  modal.show();\n};\n\n// Toast \uBA54\uC2DC\uC9C0 \uD45C\uC2DC \uD568\uC218 (\uAE30\uC874 \uD638\uD658\uC131 \uC720\uC9C0)\nwindow.showToast = function(message, type = \"info\") {\n  // showAlertModal\uB85C \uB9AC\uB2E4\uC774\uB809\uD2B8\n  showAlertModal(message, type);\n};\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAO;AAAP;AAAA;AAAA,MAAO,mBAAQ;AAAA,QACb,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,MAClB;AAAA;AAAA;;;ACHA,MAcO;AAdP;AAAA;AAAA;AAcA,MAAO,iBAAQ;AAAA,QACb,OAAO,UAAU;AACf,cAAI,KAAK,SAAS;AAChB,qBAAS,KAAK,KAAK,IAAI,CAAC;AACxB,6BAAS,OAAO,IAAI,iBAAiB,GAAG,QAAQ;AAAA,UAClD;AAAA,QACF;AAAA,MACF;AAAA;AAAA;;;ACrBA,MAKM,KAEA,cAEA,mBAmHC;AA5HP;AAAA;AAAA;AAKA,MAAM,MAAM,MAAM,IAAI,KAAK,EAAE,QAAQ;AAErC,MAAM,eAAe,WAAS,IAAI,IAAI,QAAQ;AAE9C,MAAM,oBAAN,MAAwB;AAAA,QACtB,YAAY,YAAY;AACtB,eAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAI;AAC7D,eAAK,aAAa;AAClB,eAAK,oBAAoB;AAAA,QAC3B;AAAA,QAEA,QAAQ;AACN,cAAI,CAAC,KAAK,UAAU,GAAG;AACrB,iBAAK,YAAY,IAAI;AACrB,mBAAO,KAAK;AACZ,iBAAK,aAAa;AAClB,6BAAiB,oBAAoB,KAAK,mBAAmB;AAC7D,2BAAO,IAAI,gDAAgD,KAAK,YAAY,kBAAkB;AAAA,UAChG;AAAA,QACF;AAAA,QAEA,OAAO;AACL,cAAI,KAAK,UAAU,GAAG;AACpB,iBAAK,YAAY,IAAI;AACrB,iBAAK,YAAY;AACjB,gCAAoB,oBAAoB,KAAK,mBAAmB;AAChE,2BAAO,IAAI,2BAA2B;AAAA,UACxC;AAAA,QACF;AAAA,QAEA,YAAY;AACV,iBAAO,KAAK,aAAa,CAAC,KAAK;AAAA,QACjC;AAAA,QAEA,aAAa;AACX,eAAK,WAAW,IAAI;AAAA,QACtB;AAAA,QAEA,gBAAgB;AACd,eAAK,oBAAoB;AACzB,eAAK,WAAW;AAChB,iBAAO,KAAK;AACZ,yBAAO,IAAI,oCAAoC;AAAA,QACjD;AAAA,QAEA,mBAAmB;AACjB,eAAK,iBAAiB,IAAI;AAC1B,yBAAO,IAAI,uCAAuC;AAAA,QACpD;AAAA;AAAA,QAIA,eAAe;AACb,eAAK,YAAY;AACjB,eAAK,KAAK;AAAA,QACZ;AAAA,QAEA,cAAc;AACZ,uBAAa,KAAK,WAAW;AAAA,QAC/B;AAAA,QAEA,OAAO;AACL,eAAK,cAAc;AAAA,YAAW,MAAM;AAClC,mBAAK,iBAAiB;AACtB,mBAAK,KAAK;AAAA,YACZ;AAAA,YACE,KAAK,gBAAgB;AAAA,UAAC;AAAA,QAC1B;AAAA,QAEA,kBAAkB;AAChB,gBAAM,EAAE,gBAAgB,wBAAwB,IAAI,KAAK;AACzD,gBAAM,UAAU,KAAK,IAAI,IAAI,yBAAyB,KAAK,IAAI,KAAK,mBAAmB,EAAE,CAAC;AAC1F,gBAAM,YAAY,KAAK,sBAAsB,IAAI,IAAM;AACvD,gBAAM,SAAS,YAAY,KAAK,OAAO;AACvC,iBAAO,iBAAiB,MAAO,WAAW,IAAI;AAAA,QAChD;AAAA,QAEA,mBAAmB;AACjB,cAAI,KAAK,kBAAkB,GAAG;AAC5B,2BAAO,IAAI,oEAAoE,KAAK,mCAAmC,aAAa,KAAK,WAAW,0BAA0B,KAAK,YAAY,kBAAkB;AACjN,iBAAK;AACL,gBAAI,KAAK,qBAAqB,GAAG;AAC/B,6BAAO,IAAI,+EAA+E,aAAa,KAAK,cAAc,KAAK;AAAA,YACjI,OAAO;AACL,6BAAO,IAAI,6BAA6B;AACxC,mBAAK,WAAW,OAAO;AAAA,YACzB;AAAA,UACF;AAAA,QACF;AAAA,QAEA,IAAI,cAAc;AAChB,iBAAO,KAAK,WAAW,KAAK,WAAW,KAAK;AAAA,QAC9C;AAAA,QAEA,oBAAoB;AAClB,iBAAO,aAAa,KAAK,WAAW,IAAI,KAAK,YAAY;AAAA,QAC3D;AAAA,QAEA,uBAAuB;AACrB,iBAAO,KAAK,kBAAmB,aAAa,KAAK,cAAc,IAAI,KAAK,YAAY;AAAA,QACtF;AAAA,QAEA,sBAAsB;AACpB,cAAI,SAAS,oBAAoB,WAAW;AAC1C;AAAA,cAAW,MAAM;AACf,oBAAI,KAAK,kBAAkB,KAAK,CAAC,KAAK,WAAW,OAAO,GAAG;AACzD,iCAAO,IAAI,uFAAuF,SAAS,iBAAiB;AAC5H,uBAAK,WAAW,OAAO;AAAA,gBACzB;AAAA,cACF;AAAA,cACE;AAAA,YAAG;AAAA,UACP;AAAA,QACF;AAAA,MAEF;AAEA,wBAAkB,iBAAiB;AACnC,wBAAkB,0BAA0B;AAE5C,MAAO,6BAAQ;AAAA;AAAA;;;AC5Hf,MAAO;AAAP;AAAA;AAAA,MAAO,mBAAQ;AAAA,QACb,iBAAiB;AAAA,UACf,WAAW;AAAA,UACX,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,aAAa;AAAA,QACf;AAAA,QACA,sBAAsB;AAAA,UACpB,gBAAgB;AAAA,UAChB,mBAAmB;AAAA,UACnB,kBAAkB;AAAA,QACpB;AAAA,QACA,sBAAsB;AAAA,QACtB,aAAa;AAAA,UACX;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA;AAAA;;;AClBA,MAOO,eAAe,WAChB,oBAEA,SAEA,YA0JC;AAtKP;AAAA;AAAA;AACA;AACA;AACA;AAIA,OAAM,EAAC,eAAe,cAAa;AACnC,MAAM,qBAAqB,UAAU,MAAM,GAAG,UAAU,SAAS,CAAC;AAElE,MAAM,UAAU,CAAC,EAAE;AAEnB,MAAM,aAAN,MAAiB;AAAA,QACf,YAAYA,WAAU;AACpB,eAAK,OAAO,KAAK,KAAK,KAAK,IAAI;AAC/B,eAAK,WAAWA;AAChB,eAAK,gBAAgB,KAAK,SAAS;AACnC,eAAK,UAAU,IAAI,2BAAkB,IAAI;AACzC,eAAK,eAAe;AAAA,QACtB;AAAA,QAEA,KAAK,MAAM;AACT,cAAI,KAAK,OAAO,GAAG;AACjB,iBAAK,UAAU,KAAK,KAAK,UAAU,IAAI,CAAC;AACxC,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,QAEA,OAAO;AACL,cAAI,KAAK,SAAS,GAAG;AACnB,2BAAO,IAAI,uDAAuD,KAAK,SAAS,GAAG;AACnF,mBAAO;AAAA,UACT,OAAO;AACL,2BAAO,IAAI,uCAAuC,KAAK,SAAS,oBAAoB,WAAW;AAC/F,gBAAI,KAAK,WAAW;AAAE,mBAAK,uBAAuB;AAAA,YAAE;AACpD,iBAAK,YAAY,IAAI,iBAAS,UAAU,KAAK,SAAS,KAAK,SAAS;AACpE,iBAAK,qBAAqB;AAC1B,iBAAK,QAAQ,MAAM;AACnB,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,QAEA,MAAM,EAAC,eAAc,IAAI,EAAC,gBAAgB,KAAI,GAAG;AAC/C,cAAI,CAAC,gBAAgB;AAAE,iBAAK,QAAQ,KAAK;AAAA,UAAE;AAE3C,cAAI,KAAK,OAAO,GAAG;AACjB,mBAAO,KAAK,UAAU,MAAM;AAAA,UAC9B;AAAA,QACF;AAAA,QAEA,SAAS;AACP,yBAAO,IAAI,yCAAyC,KAAK,SAAS,GAAG;AACrE,cAAI,KAAK,SAAS,GAAG;AACnB,gBAAI;AACF,qBAAO,KAAK,MAAM;AAAA,YACpB,SAASC,QAAP;AACA,6BAAO,IAAI,8BAA8BA,MAAK;AAAA,YAChD,UACA;AACE,6BAAO,IAAI,0BAA0B,KAAK,YAAY,eAAe;AACrE,yBAAW,KAAK,MAAM,KAAK,YAAY,WAAW;AAAA,YACpD;AAAA,UACF,OAAO;AACL,mBAAO,KAAK,KAAK;AAAA,UACnB;AAAA,QACF;AAAA,QAEA,cAAc;AACZ,cAAI,KAAK,WAAW;AAClB,mBAAO,KAAK,UAAU;AAAA,UACxB;AAAA,QACF;AAAA,QAEA,SAAS;AACP,iBAAO,KAAK,QAAQ,MAAM;AAAA,QAC5B;AAAA,QAEA,WAAW;AACT,iBAAO,KAAK,QAAQ,QAAQ,YAAY;AAAA,QAC1C;AAAA;AAAA,QAIA,sBAAsB;AACpB,iBAAO,QAAQ,KAAK,oBAAoB,KAAK,YAAY,CAAC,KAAK;AAAA,QACjE;AAAA,QAEA,WAAW,QAAQ;AACjB,iBAAO,QAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC,KAAK;AAAA,QAClD;AAAA,QAEA,WAAW;AACT,cAAI,KAAK,WAAW;AAClB,qBAAS,SAAS,iBAAS,WAAW;AACpC,kBAAI,iBAAS,UAAU,KAAK,MAAM,KAAK,UAAU,YAAY;AAC3D,uBAAO,MAAM,YAAY;AAAA,cAC3B;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,uBAAuB;AACrB,mBAAS,aAAa,KAAK,QAAQ;AACjC,kBAAM,UAAU,KAAK,OAAO,SAAS,EAAE,KAAK,IAAI;AAChD,iBAAK,UAAU,KAAK,WAAW,IAAI;AAAA,UACrC;AAAA,QACF;AAAA,QAEA,yBAAyB;AACvB,mBAAS,aAAa,KAAK,QAAQ;AACjC,iBAAK,UAAU,KAAK,WAAW,IAAI,WAAW;AAAA,YAAC;AAAA,UACjD;AAAA,QACF;AAAA,MAEF;AAEA,iBAAW,cAAc;AAEzB,iBAAW,UAAU,SAAS;AAAA,QAC5B,QAAQ,OAAO;AACb,cAAI,CAAC,KAAK,oBAAoB,GAAG;AAAE;AAAA,UAAO;AAC1C,gBAAM,EAAC,YAAY,SAAS,QAAQ,WAAW,KAAI,IAAI,KAAK,MAAM,MAAM,IAAI;AAC5E,kBAAQ,MAAM;AAAA,YACZ,KAAK,cAAc;AACjB,mBAAK,QAAQ,cAAc;AAC3B,qBAAO,KAAK,cAAc,OAAO;AAAA,YACnC,KAAK,cAAc;AACjB,6BAAO,IAAI,0BAA0B,QAAQ;AAC7C,qBAAO,KAAK,MAAM,EAAC,gBAAgB,UAAS,CAAC;AAAA,YAC/C,KAAK,cAAc;AACjB,qBAAO,KAAK,QAAQ,WAAW;AAAA,YACjC,KAAK,cAAc;AACjB,mBAAK,cAAc,oBAAoB,UAAU;AACjD,qBAAO,KAAK,cAAc,OAAO,YAAY,WAAW;AAAA,YAC1D,KAAK,cAAc;AACjB,qBAAO,KAAK,cAAc,OAAO,UAAU;AAAA,YAC7C;AACE,qBAAO,KAAK,cAAc,OAAO,YAAY,YAAY,OAAO;AAAA,UACpE;AAAA,QACF;AAAA,QAEA,OAAO;AACL,yBAAO,IAAI,kCAAkC,KAAK,YAAY,gBAAgB;AAC9E,eAAK,eAAe;AACpB,cAAI,CAAC,KAAK,oBAAoB,GAAG;AAC/B,2BAAO,IAAI,8DAA8D;AACzE,mBAAO,KAAK,MAAM,EAAC,gBAAgB,MAAK,CAAC;AAAA,UAC3C;AAAA,QACF;AAAA,QAEA,MAAM,OAAO;AACX,yBAAO,IAAI,yBAAyB;AACpC,cAAI,KAAK,cAAc;AAAE;AAAA,UAAO;AAChC,eAAK,eAAe;AACpB,eAAK,QAAQ,iBAAiB;AAC9B,iBAAO,KAAK,cAAc,UAAU,gBAAgB,EAAC,sBAAsB,KAAK,QAAQ,UAAU,EAAC,CAAC;AAAA,QACtG;AAAA,QAEA,QAAQ;AACN,yBAAO,IAAI,yBAAyB;AAAA,QACtC;AAAA,MACF;AAEA,MAAO,qBAAQ;AAAA;AAAA;;;ACtKf,MA0DM,QAUe;AApErB;AAAA;AA0DA,MAAM,SAAS,SAAS,QAAQ,YAAY;AAC1C,YAAI,cAAc,MAAM;AACtB,mBAAS,OAAO,YAAY;AAC1B,kBAAM,QAAQ,WAAW,GAAG;AAC5B,mBAAO,GAAG,IAAI;AAAA,UAChB;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAEA,MAAqB,eAArB,MAAkC;AAAA,QAChC,YAAYC,WAAU,SAAS,CAAC,GAAG,OAAO;AACxC,eAAK,WAAWA;AAChB,eAAK,aAAa,KAAK,UAAU,MAAM;AACvC,iBAAO,MAAM,KAAK;AAAA,QACpB;AAAA;AAAA,QAGA,QAAQ,QAAQ,OAAO,CAAC,GAAG;AACzB,eAAK,SAAS;AACd,iBAAO,KAAK,KAAK,IAAI;AAAA,QACvB;AAAA,QAEA,KAAK,MAAM;AACT,iBAAO,KAAK,SAAS,KAAK,EAAC,SAAS,WAAW,YAAY,KAAK,YAAY,MAAM,KAAK,UAAU,IAAI,EAAC,CAAC;AAAA,QACzG;AAAA,QAEA,cAAc;AACZ,iBAAO,KAAK,SAAS,cAAc,OAAO,IAAI;AAAA,QAChD;AAAA,MACF;AAAA;AAAA;;;ACxFA,MAKM,uBA4CC;AAjDP;AAAA;AAAA;AAKA,MAAM,wBAAN,MAA4B;AAAA,QAC1B,YAAY,eAAe;AACzB,eAAK,gBAAgB;AACrB,eAAK,uBAAuB,CAAC;AAAA,QAC/B;AAAA,QAEA,UAAU,cAAc;AACtB,cAAG,KAAK,qBAAqB,QAAQ,YAAY,KAAK,IAAG;AACvD,2BAAO,IAAI,sCAAsC,aAAa,YAAY;AAC1E,iBAAK,qBAAqB,KAAK,YAAY;AAAA,UAC7C,OACK;AACH,2BAAO,IAAI,8CAA8C,aAAa,YAAY;AAAA,UACpF;AACA,eAAK,kBAAkB;AAAA,QACzB;AAAA,QAEA,OAAO,cAAc;AACnB,yBAAO,IAAI,oCAAoC,aAAa,YAAY;AACxE,eAAK,uBAAwB,KAAK,qBAAqB,OAAO,CAACC,OAAMA,OAAM,YAAY;AAAA,QACzF;AAAA,QAEA,oBAAoB;AAClB,eAAK,iBAAiB;AACtB,eAAK,iBAAiB;AAAA,QACxB;AAAA,QAEA,mBAAmB;AACjB,uBAAa,KAAK,YAAY;AAAA,QAChC;AAAA,QAEA,mBAAmB;AACjB,eAAK,eAAe;AAAA,YAAW,MAAM;AACnC,kBAAI,KAAK,iBAAiB,OAAO,KAAK,cAAc,cAAe,YAAY;AAC7E,qBAAK,qBAAqB,IAAI,CAAC,iBAAiB;AAC9C,iCAAO,IAAI,uCAAuC,aAAa,YAAY;AAC3E,uBAAK,cAAc,UAAU,YAAY;AAAA,gBAC3C,CAAC;AAAA,cACH;AAAA,YACF;AAAA,YACE;AAAA,UAAG;AAAA,QACP;AAAA,MACF;AAEA,MAAO,iCAAQ;AAAA;AAAA;;;ACjDf,MAcqB;AAdrB;AAAA;AAAA;AACA;AACA;AAYA,MAAqB,gBAArB,MAAmC;AAAA,QACjC,YAAYC,WAAU;AACpB,eAAK,WAAWA;AAChB,eAAK,YAAY,IAAI,+BAAsB,IAAI;AAC/C,eAAK,gBAAgB,CAAC;AAAA,QACxB;AAAA,QAEA,OAAO,aAAa,OAAO;AACzB,gBAAM,UAAU;AAChB,gBAAM,SAAS,OAAO,YAAY,WAAW,UAAU,EAAC,QAAO;AAC/D,gBAAM,eAAe,IAAI,aAAa,KAAK,UAAU,QAAQ,KAAK;AAClE,iBAAO,KAAK,IAAI,YAAY;AAAA,QAC9B;AAAA;AAAA,QAIA,IAAI,cAAc;AAChB,eAAK,cAAc,KAAK,YAAY;AACpC,eAAK,SAAS,uBAAuB;AACrC,eAAK,OAAO,cAAc,aAAa;AACvC,eAAK,UAAU,YAAY;AAC3B,iBAAO;AAAA,QACT;AAAA,QAEA,OAAO,cAAc;AACnB,eAAK,OAAO,YAAY;AACxB,cAAI,CAAC,KAAK,QAAQ,aAAa,UAAU,EAAE,QAAQ;AACjD,iBAAK,YAAY,cAAc,aAAa;AAAA,UAC9C;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,OAAO,YAAY;AACjB,iBAAO,KAAK,QAAQ,UAAU,EAAE,IAAI,CAAC,iBAAiB;AACpD,iBAAK,OAAO,YAAY;AACxB,iBAAK,OAAO,cAAc,UAAU;AACpC,mBAAO;AAAA,UACT,CAAC;AAAA,QACH;AAAA,QAEA,OAAO,cAAc;AACnB,eAAK,UAAU,OAAO,YAAY;AAClC,eAAK,gBAAiB,KAAK,cAAc,OAAO,CAACC,OAAMA,OAAM,YAAY;AACzE,iBAAO;AAAA,QACT;AAAA,QAEA,QAAQ,YAAY;AAClB,iBAAO,KAAK,cAAc,OAAO,CAACA,OAAMA,GAAE,eAAe,UAAU;AAAA,QACrE;AAAA,QAEA,SAAS;AACP,iBAAO,KAAK,cAAc,IAAI,CAAC,iBAC7B,KAAK,UAAU,YAAY,CAAC;AAAA,QAChC;AAAA,QAEA,UAAU,iBAAiB,MAAM;AAC/B,iBAAO,KAAK,cAAc,IAAI,CAAC,iBAC7B,KAAK,OAAO,cAAc,cAAc,GAAG,IAAI,CAAC;AAAA,QACpD;AAAA,QAEA,OAAO,cAAc,iBAAiB,MAAM;AAC1C,cAAI;AACJ,cAAI,OAAO,iBAAiB,UAAU;AACpC,4BAAgB,KAAK,QAAQ,YAAY;AAAA,UAC3C,OAAO;AACL,4BAAgB,CAAC,YAAY;AAAA,UAC/B;AAEA,iBAAO,cAAc,IAAI,CAACC,kBACvB,OAAOA,cAAa,YAAY,MAAM,aAAaA,cAAa,YAAY,EAAE,GAAG,IAAI,IAAI,MAAU;AAAA,QACxG;AAAA,QAEA,UAAU,cAAc;AACtB,cAAI,KAAK,YAAY,cAAc,WAAW,GAAG;AAC/C,iBAAK,UAAU,UAAU,YAAY;AAAA,UACvC;AAAA,QACF;AAAA,QAEA,oBAAoB,YAAY;AAC9B,yBAAO,IAAI,0BAA0B,YAAY;AACjD,eAAK,QAAQ,UAAU,EAAE,IAAI,CAAC,iBAC5B,KAAK,UAAU,OAAO,YAAY,CAAC;AAAA,QACvC;AAAA,QAEA,YAAY,cAAc,SAAS;AACjC,gBAAM,EAAC,WAAU,IAAI;AACrB,iBAAO,KAAK,SAAS,KAAK,EAAC,SAAS,WAAU,CAAC;AAAA,QACjD;AAAA,MACF;AAAA;AAAA;;;AC3CO,WAAS,mBAAmB,KAAK;AACtC,QAAI,OAAO,QAAQ,YAAY;AAC7B,YAAM,IAAI;AAAA,IACZ;AAEA,QAAI,OAAO,CAAC,UAAU,KAAK,GAAG,GAAG;AAC/B,YAAMC,KAAI,SAAS,cAAc,GAAG;AACpC,MAAAA,GAAE,OAAO;AAET,MAAAA,GAAE,OAAOA,GAAE;AACX,MAAAA,GAAE,WAAWA,GAAE,SAAS,QAAQ,QAAQ,IAAI;AAC5C,aAAOA,GAAE;AAAA,IACX,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AA1EA,MA6BqB;AA7BrB;AAAA;AAAA;AACA;AA4BA,MAAqB,WAArB,MAA8B;AAAA,QAC5B,YAAY,KAAK;AACf,eAAK,OAAO;AACZ,eAAK,gBAAgB,IAAI,cAAc,IAAI;AAC3C,eAAK,aAAa,IAAI,mBAAW,IAAI;AAAA,QACvC;AAAA,QAEA,IAAI,MAAM;AACR,iBAAO,mBAAmB,KAAK,IAAI;AAAA,QACrC;AAAA,QAEA,KAAK,MAAM;AACT,iBAAO,KAAK,WAAW,KAAK,IAAI;AAAA,QAClC;AAAA,QAEA,UAAU;AACR,iBAAO,KAAK,WAAW,KAAK;AAAA,QAC9B;AAAA,QAEA,aAAa;AACX,iBAAO,KAAK,WAAW,MAAM,EAAC,gBAAgB,MAAK,CAAC;AAAA,QACtD;AAAA,QAEA,yBAAyB;AACvB,cAAI,CAAC,KAAK,WAAW,SAAS,GAAG;AAC/B,mBAAO,KAAK,WAAW,KAAK;AAAA,UAC9B;AAAA,QACF;AAAA,MACF;AAAA;AAAA;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBO,WAAS,eAAe,MAAM,UAAU,KAAK,KAAK,iBAAS,oBAAoB;AACpF,WAAO,IAAI,SAAS,GAAG;AAAA,EACzB;AAEO,WAAS,UAAU,MAAM;AAC9B,UAAM,UAAU,SAAS,KAAK,cAAc,2BAA2B,QAAQ;AAC/E,QAAI,SAAS;AACX,aAAO,QAAQ,aAAa,SAAS;AAAA,IACvC;AAAA,EACF;AAhCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;ACRA;AAAA;AAyBA,eAASC,UAAS,OAAO;AACvB,YAAI,OAAO,OAAO;AAClB,eAAO,SAAS,SAAS,QAAQ,YAAY,QAAQ;AAAA,MACvD;AAEA,aAAO,UAAUA;AAAA;AAAA;;;AC9BjB;AAAA;AACA,UAAI,aAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU;AAEpF,aAAO,UAAU;AAAA;AAAA;;;ACHjB;AAAA;AAAA,UAAI,aAAa;AAGjB,UAAI,WAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU;AAG5E,UAAI,OAAO,cAAc,YAAY,SAAS,aAAa,EAAE;AAE7D,aAAO,UAAU;AAAA;AAAA;;;ACRjB;AAAA;AAAA,UAAI,OAAO;AAkBX,UAAIC,OAAM,WAAW;AACnB,eAAO,KAAK,KAAK,IAAI;AAAA,MACvB;AAEA,aAAO,UAAUA;AAAA;AAAA;;;ACtBjB;AAAA;AACA,UAAI,eAAe;AAUnB,eAAS,gBAAgB,QAAQ;AAC/B,YAAI,QAAQ,OAAO;AAEnB,eAAO,WAAW,aAAa,KAAK,OAAO,OAAO,KAAK,CAAC,GAAG;AAAA,QAAC;AAC5D,eAAO;AAAA,MACT;AAEA,aAAO,UAAU;AAAA;AAAA;;;AClBjB;AAAA;AAAA,UAAI,kBAAkB;AAGtB,UAAI,cAAc;AASlB,eAAS,SAAS,QAAQ;AACxB,eAAO,SACH,OAAO,MAAM,GAAG,gBAAgB,MAAM,IAAI,CAAC,EAAE,QAAQ,aAAa,EAAE,IACpE;AAAA,MACN;AAEA,aAAO,UAAU;AAAA;AAAA;;;AClBjB;AAAA;AAAA,UAAI,OAAO;AAGX,UAAIC,UAAS,KAAK;AAElB,aAAO,UAAUA;AAAA;AAAA;;;ACLjB;AAAA;AAAA,UAAIC,UAAS;AAGb,UAAI,cAAc,OAAO;AAGzB,UAAI,iBAAiB,YAAY;AAOjC,UAAI,uBAAuB,YAAY;AAGvC,UAAI,iBAAiBA,UAASA,QAAO,cAAc;AASnD,eAAS,UAAU,OAAO;AACxB,YAAI,QAAQ,eAAe,KAAK,OAAO,cAAc,GACjD,MAAM,MAAM,cAAc;AAE9B,YAAI;AACF,gBAAM,cAAc,IAAI;AACxB,cAAI,WAAW;AAAA,QACjB,SAASC,IAAP;AAAA,QAAW;AAEb,YAAI,SAAS,qBAAqB,KAAK,KAAK;AAC5C,YAAI,UAAU;AACZ,cAAI,OAAO;AACT,kBAAM,cAAc,IAAI;AAAA,UAC1B,OAAO;AACL,mBAAO,MAAM,cAAc;AAAA,UAC7B;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAEA,aAAO,UAAU;AAAA;AAAA;;;AC7CjB;AAAA;AACA,UAAI,cAAc,OAAO;AAOzB,UAAI,uBAAuB,YAAY;AASvC,eAAS,eAAe,OAAO;AAC7B,eAAO,qBAAqB,KAAK,KAAK;AAAA,MACxC;AAEA,aAAO,UAAU;AAAA;AAAA;;;ACrBjB;AAAA;AAAA,UAAIC,UAAS;AAAb,UACI,YAAY;AADhB,UAEI,iBAAiB;AAGrB,UAAI,UAAU;AAAd,UACI,eAAe;AAGnB,UAAI,iBAAiBA,UAASA,QAAO,cAAc;AASnD,eAAS,WAAW,OAAO;AACzB,YAAI,SAAS,MAAM;AACjB,iBAAO,UAAU,SAAY,eAAe;AAAA,QAC9C;AACA,eAAQ,kBAAkB,kBAAkB,OAAO,KAAK,IACpD,UAAU,KAAK,IACf,eAAe,KAAK;AAAA,MAC1B;AAEA,aAAO,UAAU;AAAA;AAAA;;;AC3BjB;AAAA;AAwBA,eAAS,aAAa,OAAO;AAC3B,eAAO,SAAS,QAAQ,OAAO,SAAS;AAAA,MAC1C;AAEA,aAAO,UAAU;AAAA;AAAA;;;AC5BjB;AAAA;AAAA,UAAI,aAAa;AAAjB,UACI,eAAe;AAGnB,UAAI,YAAY;AAmBhB,eAAS,SAAS,OAAO;AACvB,eAAO,OAAO,SAAS,YACpB,aAAa,KAAK,KAAK,WAAW,KAAK,KAAK;AAAA,MACjD;AAEA,aAAO,UAAU;AAAA;AAAA;;;AC5BjB;AAAA;AAAA,UAAI,WAAW;AAAf,UACIC,YAAW;AADf,UAEI,WAAW;AAGf,UAAI,MAAM,IAAI;AAGd,UAAI,aAAa;AAGjB,UAAI,aAAa;AAGjB,UAAI,YAAY;AAGhB,UAAI,eAAe;AAyBnB,eAAS,SAAS,OAAO;AACvB,YAAI,OAAO,SAAS,UAAU;AAC5B,iBAAO;AAAA,QACT;AACA,YAAI,SAAS,KAAK,GAAG;AACnB,iBAAO;AAAA,QACT;AACA,YAAIA,UAAS,KAAK,GAAG;AACnB,cAAI,QAAQ,OAAO,MAAM,WAAW,aAAa,MAAM,QAAQ,IAAI;AACnE,kBAAQA,UAAS,KAAK,IAAK,QAAQ,KAAM;AAAA,QAC3C;AACA,YAAI,OAAO,SAAS,UAAU;AAC5B,iBAAO,UAAU,IAAI,QAAQ,CAAC;AAAA,QAChC;AACA,gBAAQ,SAAS,KAAK;AACtB,YAAI,WAAW,WAAW,KAAK,KAAK;AACpC,eAAQ,YAAY,UAAU,KAAK,KAAK,IACpC,aAAa,MAAM,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,IAC5C,WAAW,KAAK,KAAK,IAAI,MAAM,CAAC;AAAA,MACvC;AAEA,aAAO,UAAU;AAAA;AAAA;;;AC/DjB;AAAA;AAAA,UAAIC,YAAW;AAAf,UACIC,OAAM;AADV,UAEI,WAAW;AAGf,UAAI,kBAAkB;AAGtB,UAAI,YAAY,KAAK;AAArB,UACI,YAAY,KAAK;AAwDrB,eAASC,UAAS,MAAM,MAAM,SAAS;AACrC,YAAI,UACA,UACA,SACA,QACA,SACA,cACA,iBAAiB,GACjB,UAAU,OACV,SAAS,OACT,WAAW;AAEf,YAAI,OAAO,QAAQ,YAAY;AAC7B,gBAAM,IAAI,UAAU,eAAe;AAAA,QACrC;AACA,eAAO,SAAS,IAAI,KAAK;AACzB,YAAIF,UAAS,OAAO,GAAG;AACrB,oBAAU,CAAC,CAAC,QAAQ;AACpB,mBAAS,aAAa;AACtB,oBAAU,SAAS,UAAU,SAAS,QAAQ,OAAO,KAAK,GAAG,IAAI,IAAI;AACrE,qBAAW,cAAc,UAAU,CAAC,CAAC,QAAQ,WAAW;AAAA,QAC1D;AAEA,iBAAS,WAAW,MAAM;AACxB,cAAI,OAAO,UACP,UAAU;AAEd,qBAAW,WAAW;AACtB,2BAAiB;AACjB,mBAAS,KAAK,MAAM,SAAS,IAAI;AACjC,iBAAO;AAAA,QACT;AAEA,iBAAS,YAAY,MAAM;AAEzB,2BAAiB;AAEjB,oBAAU,WAAW,cAAc,IAAI;AAEvC,iBAAO,UAAU,WAAW,IAAI,IAAI;AAAA,QACtC;AAEA,iBAAS,cAAc,MAAM;AAC3B,cAAI,oBAAoB,OAAO,cAC3B,sBAAsB,OAAO,gBAC7B,cAAc,OAAO;AAEzB,iBAAO,SACH,UAAU,aAAa,UAAU,mBAAmB,IACpD;AAAA,QACN;AAEA,iBAAS,aAAa,MAAM;AAC1B,cAAI,oBAAoB,OAAO,cAC3B,sBAAsB,OAAO;AAKjC,iBAAQ,iBAAiB,UAAc,qBAAqB,QACzD,oBAAoB,KAAO,UAAU,uBAAuB;AAAA,QACjE;AAEA,iBAAS,eAAe;AACtB,cAAI,OAAOC,KAAI;AACf,cAAI,aAAa,IAAI,GAAG;AACtB,mBAAO,aAAa,IAAI;AAAA,UAC1B;AAEA,oBAAU,WAAW,cAAc,cAAc,IAAI,CAAC;AAAA,QACxD;AAEA,iBAAS,aAAa,MAAM;AAC1B,oBAAU;AAIV,cAAI,YAAY,UAAU;AACxB,mBAAO,WAAW,IAAI;AAAA,UACxB;AACA,qBAAW,WAAW;AACtB,iBAAO;AAAA,QACT;AAEA,iBAAS,SAAS;AAChB,cAAI,YAAY,QAAW;AACzB,yBAAa,OAAO;AAAA,UACtB;AACA,2BAAiB;AACjB,qBAAW,eAAe,WAAW,UAAU;AAAA,QACjD;AAEA,iBAAS,QAAQ;AACf,iBAAO,YAAY,SAAY,SAAS,aAAaA,KAAI,CAAC;AAAA,QAC5D;AAEA,iBAAS,YAAY;AACnB,cAAI,OAAOA,KAAI,GACX,aAAa,aAAa,IAAI;AAElC,qBAAW;AACX,qBAAW;AACX,yBAAe;AAEf,cAAI,YAAY;AACd,gBAAI,YAAY,QAAW;AACzB,qBAAO,YAAY,YAAY;AAAA,YACjC;AACA,gBAAI,QAAQ;AAEV,2BAAa,OAAO;AACpB,wBAAU,WAAW,cAAc,IAAI;AACvC,qBAAO,WAAW,YAAY;AAAA,YAChC;AAAA,UACF;AACA,cAAI,YAAY,QAAW;AACzB,sBAAU,WAAW,cAAc,IAAI;AAAA,UACzC;AACA,iBAAO;AAAA,QACT;AACA,kBAAU,SAAS;AACnB,kBAAU,QAAQ;AAClB,eAAO;AAAA,MACT;AAEA,aAAO,UAAUC;AAAA;AAAA;;;AC9LjB;AAAA;AAQA,OAAC,WAAU;AAAC,iBAASC,GAAEA,IAAEC,IAAEC,IAAE;AAAC,kBAAOA,GAAE,QAAO;AAAA,YAAC,KAAK;AAAE,qBAAOF,GAAE,KAAKC,EAAC;AAAA,YAAE,KAAK;AAAE,qBAAOD,GAAE,KAAKC,IAAEC,GAAE,CAAC,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAE,KAAKC,IAAEC,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAE,KAAKC,IAAEC,GAAE,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,UAAC;AAAC,iBAAOF,GAAE,MAAMC,IAAEC,EAAC;AAAA,QAAC;AAAC,iBAASD,GAAED,IAAEC,IAAEC,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAML,KAAE,IAAEA,GAAE,QAAO,EAAEI,KAAEC,MAAG;AAAC,gBAAIC,KAAEN,GAAEI,EAAC;AAAE,YAAAH,GAAEE,IAAEG,IAAEJ,GAAEI,EAAC,GAAEN,EAAC;AAAA,UAAC;AAAC,iBAAOG;AAAA,QAAC;AAAC,iBAASD,GAAEF,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAMH,KAAE,IAAEA,GAAE,QAAO,EAAEE,KAAEC,MAAGF,GAAED,GAAEE,EAAC,GAAEA,IAAEF,EAAC,MAAI;AAAI;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASG,GAAEH,IAAEC,IAAE;AAAC,mBAAQC,KAAE,QAAMF,KAAE,IAAEA,GAAE,QAAOE,QAAKD,GAAED,GAAEE,EAAC,GAAEA,IAAEF,EAAC,MAAI;AAAI;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASI,GAAEJ,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAMH,KAAE,IAAEA,GAAE,QAAO,EAAEE,KAAEC;AAAG,gBAAG,CAACF,GAAED,GAAEE,EAAC,GAAEA,IAAEF,EAAC;AAAE,qBAAM;AACnhB,iBAAM;AAAA,QAAE;AAAC,iBAASK,GAAEL,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAMH,KAAE,IAAEA,GAAE,QAAOI,KAAE,GAAEC,KAAE,CAAC,GAAE,EAAEH,KAAEC,MAAG;AAAC,gBAAIG,KAAEN,GAAEE,EAAC;AAAE,YAAAD,GAAEK,IAAEJ,IAAEF,EAAC,MAAIK,GAAED,IAAG,IAAEE;AAAA,UAAE;AAAC,iBAAOD;AAAA,QAAC;AAAC,iBAASC,GAAEN,IAAEC,IAAE;AAAC,iBAAM,CAAC,EAAE,QAAMD,KAAE,IAAEA,GAAE,WAASO,GAAEP,IAAEC,IAAE,CAAC,IAAE;AAAA,QAAE;AAAC,iBAASO,GAAER,IAAEC,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAMJ,KAAE,IAAEA,GAAE,QAAO,EAAEG,KAAEC;AAAG,gBAAGF,GAAED,IAAED,GAAEG,EAAC,CAAC;AAAE,qBAAM;AAAG,iBAAM;AAAA,QAAE;AAAC,iBAASM,GAAET,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAMH,KAAE,IAAEA,GAAE,QAAOI,KAAE,MAAMD,EAAC,GAAE,EAAED,KAAEC;AAAG,YAAAC,GAAEF,EAAC,IAAED,GAAED,GAAEE,EAAC,GAAEA,IAAEF,EAAC;AAAE,iBAAOI;AAAA,QAAC;AAAC,iBAASM,GAAEV,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAEF,GAAE,QAAOG,KAAEJ,GAAE,QAAO,EAAEE,KAAEC;AAAG,YAAAH,GAAEI,KAAEF,EAAC,IAAED,GAAEC,EAAC;AAAE,iBAAOF;AAAA,QAAC;AAAC,iBAASW,GAAEX,IAAEC,IAAEC,IAAEC,IAAE;AAAC,cAAIC,KAAE,IAAGC,KAAE,QAAML,KAAE,IAAEA,GAAE;AAAO,eAAIG,MAAGE,OAAIH,KAAEF,GAAE,EAAEI,EAAC,IAAG,EAAEA,KAAEC;AAAG,YAAAH,KAAED,GAAEC,IAAEF,GAAEI,EAAC,GAAEA,IAAEJ,EAAC;AAClhB,iBAAOE;AAAA,QAAC;AAAC,iBAASU,GAAEZ,IAAEC,IAAEC,IAAEC,IAAE;AAAC,cAAIC,KAAE,QAAMJ,KAAE,IAAEA,GAAE;AAAO,eAAIG,MAAGC,OAAIF,KAAEF,GAAE,EAAEI,EAAC,IAAGA;AAAK,YAAAF,KAAED,GAAEC,IAAEF,GAAEI,EAAC,GAAEA,IAAEJ,EAAC;AAAE,iBAAOE;AAAA,QAAC;AAAC,iBAASW,GAAEb,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,QAAMH,KAAE,IAAEA,GAAE,QAAO,EAAEE,KAAEC;AAAG,gBAAGF,GAAED,GAAEE,EAAC,GAAEA,IAAEF,EAAC;AAAE,qBAAM;AAAG,iBAAM;AAAA,QAAE;AAAC,iBAASc,GAAEd,IAAE;AAAC,iBAAOA,GAAE,MAAM,EAAE;AAAA,QAAC;AAAC,iBAASe,GAAEf,IAAE;AAAC,iBAAOA,GAAE,MAAMgB,GAAE,KAAG,CAAC;AAAA,QAAC;AAAC,iBAASC,GAAEjB,IAAEC,IAAEC,IAAE;AAAC,cAAIC;AAAE,iBAAOD,GAAEF,IAAE,SAASA,IAAEE,IAAEE,IAAE;AAAC,gBAAGH,GAAED,IAAEE,IAAEE,EAAC;AAAE,qBAAOD,KAAED,IAAE;AAAA,UAAE,CAAC,GAAEC;AAAA,QAAC;AAAC,iBAASe,GAAElB,IAAEC,IAAEC,IAAEC,IAAE;AAAC,mBAAQC,KAAEJ,GAAE,QAAOK,KAAEH,MAAGC,KAAE,IAAE,KAAIA,KAAEE,OAAI,EAAEA,KAAED;AAAG,gBAAGH,GAAED,GAAEK,EAAC,GAAEA,IAAEL,EAAC;AAAE,qBAAOK;AAAE,iBAAM;AAAA,QAAE;AAAC,iBAASE,GAAEP,IAAEC,IAAEC,IAAE;AAAC,iBAAOD,OAAIA,KAAEkB,GAAEnB,IAAEC,IAAEC,EAAC,IAAEgB,GAAElB,IAAEoB,IAAElB,EAAC;AAAA,QAAC;AAAC,iBAASmB,GAAErB,IAAEC,IAAEC,IAAEC,IAAE;AAChgB,mBAAQC,KAAEF,KAAE,GAAEG,KAAEL,GAAE,QAAO,EAAEI,KAAEC;AAAG,gBAAGF,GAAEH,GAAEI,EAAC,GAAEH,EAAC;AAAE,qBAAOG;AAAE,iBAAM;AAAA,QAAE;AAAC,iBAASgB,GAAEpB,IAAE;AAAC,iBAAOA,OAAIA;AAAA,QAAC;AAAC,iBAASsB,GAAEtB,IAAEC,IAAE;AAAC,cAAIC,KAAE,QAAMF,KAAE,IAAEA,GAAE;AAAO,iBAAOE,KAAEqB,GAAEvB,IAAEC,EAAC,IAAEC,KAAEsB;AAAA,QAAE;AAAC,iBAASC,GAAEzB,IAAE;AAAC,iBAAO,SAASC,IAAE;AAAC,mBAAO,QAAMA,KAAEyB,KAAEzB,GAAED,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,iBAAS2B,GAAE3B,IAAE;AAAC,iBAAO,SAASC,IAAE;AAAC,mBAAO,QAAMD,KAAE0B,KAAE1B,GAAEC,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,iBAAS2B,GAAE5B,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,iBAAOA,GAAEJ,IAAE,SAASA,IAAEI,IAAEC,IAAE;AAAC,YAAAH,KAAEC,MAAGA,KAAE,OAAGH,MAAGC,GAAEC,IAAEF,IAAEI,IAAEC,EAAC;AAAA,UAAC,CAAC,GAAEH;AAAA,QAAC;AAAC,iBAAS2B,GAAE7B,IAAEC,IAAE;AAAC,cAAIC,KAAEF,GAAE;AAAO,eAAIA,GAAE,KAAKC,EAAC,GAAEC;AAAK,YAAAF,GAAEE,EAAC,IAAEF,GAAEE,EAAC,EAAE;AAAM,iBAAOF;AAAA,QAAC;AAAC,iBAASuB,GAAEvB,IAAEC,IAAE;AAAC,mBAAQC,IAAEC,KAAE,IAAGC,KAAEJ,GAAE,QAAO,EAAEG,KAAEC,MAAG;AAAC,gBAAIC,KAAEJ,GAAED,GAAEG,EAAC,CAAC;AAAE,YAAAE,OAAIqB,OAAIxB,KAAEA,OAAIwB,KAAErB,KAAEH,KAAEG;AAAA,UACpf;AAAC,iBAAOH;AAAA,QAAC;AAAC,iBAAS4B,GAAE9B,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAE,MAAMH,EAAC,GAAE,EAAEE,KAAEF;AAAG,YAAAG,GAAED,EAAC,IAAED,GAAEC,EAAC;AAAE,iBAAOC;AAAA,QAAC;AAAC,iBAAS4B,GAAE/B,IAAEC,IAAE;AAAC,iBAAOQ,GAAER,IAAE,SAASA,IAAE;AAAC,mBAAM,CAACA,IAAED,GAAEC,EAAC,CAAC;AAAA,UAAC,CAAC;AAAA,QAAC;AAAC,iBAAS+B,GAAEhC,IAAE;AAAC,iBAAOA,KAAEA,GAAE,MAAM,GAAEiC,GAAEjC,EAAC,IAAE,CAAC,EAAE,QAAQkC,KAAG,EAAE,IAAElC;AAAA,QAAC;AAAC,iBAASmC,GAAEnC,IAAE;AAAC,iBAAO,SAASC,IAAE;AAAC,mBAAOD,GAAEC,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,iBAASmC,GAAEpC,IAAEC,IAAE;AAAC,iBAAOQ,GAAER,IAAE,SAASA,IAAE;AAAC,mBAAOD,GAAEC,EAAC;AAAA,UAAC,CAAC;AAAA,QAAC;AAAC,iBAASoC,GAAErC,IAAEC,IAAE;AAAC,iBAAOD,GAAE,IAAIC,EAAC;AAAA,QAAC;AAAC,iBAASqC,GAAEtC,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAEH,GAAE,QAAO,EAAEE,KAAEC,MAAGI,GAAEN,IAAED,GAAEE,EAAC,GAAE,CAAC,IAAE;AAAI;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASqC,GAAEvC,IAAEC,IAAE;AAAC,mBAAQC,KAAEF,GAAE,QAAOE,QAAKK,GAAEN,IAAED,GAAEE,EAAC,GAAE,CAAC,IAAE;AAAI;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASsC,GAAExC,IAAEC,IAAE;AAAC,mBAAQC,KAAEF,GAAE,QAAOG,KAAE,GAAED;AAAK,YAAAF,GAAEE,EAAC,MAAID,MAAG,EAAEE;AACpgB,iBAAOA;AAAA,QAAC;AAAC,iBAASsC,GAAEzC,IAAE;AAAC,iBAAM,OAAK,GAAGA,EAAC;AAAA,QAAC;AAAC,iBAAS0C,GAAE1C,IAAEC,IAAE;AAAC,iBAAO,QAAMD,KAAE0B,KAAE1B,GAAEC,EAAC;AAAA,QAAC;AAAC,iBAAS0C,GAAE3C,IAAE;AAAC,iBAAO,GAAG,KAAKA,EAAC;AAAA,QAAC;AAAC,iBAAS4C,GAAE5C,IAAE;AAAC,iBAAO,GAAG,KAAKA,EAAC;AAAA,QAAC;AAAC,iBAAS6C,GAAE7C,IAAE;AAAC,mBAAQC,IAAEC,KAAE,CAAC,GAAE,EAAED,KAAED,GAAE,KAAK,GAAG;AAAM,YAAAE,GAAE,KAAKD,GAAE,KAAK;AAAE,iBAAOC;AAAA,QAAC;AAAC,iBAAS4C,GAAE9C,IAAE;AAAC,cAAIC,KAAE,IAAGC,KAAE,MAAMF,GAAE,IAAI;AAAE,iBAAOA,GAAE,QAAQ,SAASA,IAAEG,IAAE;AAAC,YAAAD,GAAE,EAAED,EAAC,IAAE,CAACE,IAAEH,EAAC;AAAA,UAAC,CAAC,GAAEE;AAAA,QAAC;AAAC,iBAAS6C,GAAE/C,IAAEC,IAAE;AAAC,iBAAO,SAASC,IAAE;AAAC,mBAAOF,GAAEC,GAAEC,EAAC,CAAC;AAAA,UAAC;AAAA,QAAC;AAAC,iBAAS8C,GAAEhD,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAGC,KAAEH,GAAE,QAAOI,KAAE,GAAEC,KAAE,CAAC,GAAE,EAAEH,KAAEC,MAAG;AAAC,gBAAIG,KAAEN,GAAEE,EAAC;AAAE,YAAAI,OAAIL,MAAGK,OAAI2C,QAAKjD,GAAEE,EAAC,IAAE+C,KAAG5C,GAAED,IAAG,IAAEF;AAAA,UAAE;AAAC,iBAAOG;AAAA,QAAC;AAAC,iBAAS6C,GAAElD,IAAE;AAAC,cAAIC,KAAE,IAAGC,KAAE,MAAMF,GAAE,IAAI;AACtf,iBAAOA,GAAE,QAAQ,SAASA,IAAE;AAAC,YAAAE,GAAE,EAAED,EAAC,IAAED;AAAA,UAAC,CAAC,GAAEE;AAAA,QAAC;AAAC,iBAASiD,GAAEnD,IAAE;AAAC,cAAIC,KAAE,IAAGC,KAAE,MAAMF,GAAE,IAAI;AAAE,iBAAOA,GAAE,QAAQ,SAASA,IAAE;AAAC,YAAAE,GAAE,EAAED,EAAC,IAAE,CAACD,IAAEA,EAAC;AAAA,UAAC,CAAC,GAAEE;AAAA,QAAC;AAAC,iBAASiB,GAAEnB,IAAEC,IAAEC,IAAE;AAAC,mBAAQC,KAAED,KAAE,GAAEE,KAAEJ,GAAE,QAAO,EAAEG,KAAEC;AAAG,gBAAGJ,GAAEG,EAAC,MAAIF;AAAE,qBAAOE;AAAE,iBAAM;AAAA,QAAE;AAAC,iBAASiD,GAAEpD,IAAEC,IAAEC,IAAE;AAAC,mBAAQC,KAAED,KAAE,GAAEC;AAAK,gBAAGH,GAAEG,EAAC,MAAIF;AAAE,qBAAOE;AAAE,iBAAOA;AAAA,QAAC;AAAC,iBAASkD,GAAErD,IAAE;AAAC,iBAAO2C,GAAE3C,EAAC,IAAEsD,GAAEtD,EAAC,IAAEuD,IAAGvD,EAAC;AAAA,QAAC;AAAC,iBAASwD,GAAExD,IAAE;AAAC,iBAAO2C,GAAE3C,EAAC,IAAEyD,GAAEzD,EAAC,IAAEc,GAAEd,EAAC;AAAA,QAAC;AAAC,iBAASiC,GAAEjC,IAAE;AAAC,mBAAQC,KAAED,GAAE,QAAOC,QAAKyD,IAAG,KAAK1D,GAAE,OAAOC,EAAC,CAAC;AAAG;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASqD,GAAEtD,IAAE;AAAC,mBAAQC,KAAE,GAAG,YAAU,GAAE,GAAG,KAAKD,EAAC;AAAG,cAAEC;AAAE,iBAAOA;AAAA,QAAC;AAAC,iBAASwD,GAAEzD,IAAE;AAAC,iBAAOA,GAAE,MAAM,EAAE,KAAG,CAAC;AAAA,QACpgB;AAAC,iBAAS2D,GAAE3D,IAAE;AAAC,iBAAOA,GAAE,MAAM,EAAE,KAAG,CAAC;AAAA,QAAC;AAAC,YAAI0B,IAAEkC,MAAG,WAAUC,MAAG,KAAIC,MAAG,mEAAkEC,MAAG,uBAAsBC,MAAG,sDAAqDC,MAAG,6BAA4BC,MAAG,KAAIjB,MAAG,0BAAyBkB,MAAG,GAAEC,MAAG,GAAEC,MAAG,GAAEC,MAAG,GAAEC,MAAG,GAAE,KAAG,GAAEC,MAAG,GAAEC,MAAG,GAAEC,MAAG,GAAEC,MAAG,IAAGC,MAAG,IAAG,KAAG,IAAGC,MAAG,KAAIC,MAAG,KAAI,KAAG,KAAIC,MAAG,IAAGC,MAAG,OAAM,KAAG,KAAI,KAAG,IAAGC,MAAG,GAAE,KAAG,GAAEC,MAAG,GAAEC,MAAG,IAAE,GAAE,KAAG,kBAAiB,KAAG,uBAAuB3D,MAAG,KAAI,KAAG,YAAW,KAAG,KAAG,GAAE,KAAG,OAAK,GAAE,KAAG,CAAC,CAAC,OAAMqD,GAAE,GAAE,CAAC,QAAO,EAAE,GAAE,CAAC,WAAUL,GAAE,GAAE,CAAC,SAAQE,GAAE,GAAE,CAAC,cAAaC,GAAE,GAAE,CAAC,QAAO,EAAE,GAAE,CAAC,WAAUC,GAAE,GAAE,CAAC,gBAAe,EAAE,GAAE,CAAC,SAAQE,GAAE,CAAC,GAAE,KAAG,sBAAqB,KAAG,kBAAiB,KAAG,0BAAyB,KAAG,oBAAmB,KAAG,iBAAgB,KAAG,yBAAwB,KAAG,kBAAiB,KAAG,qBAAoB,KAAG,8BAA6B,KAAG,gBAAe,KAAG,mBAAkB,KAAG,iBAAgB,KAAG,mBAAkB,KAAG,oBAAmB,KAAG,kBAAiBM,MAAG,mBAAkBC,MAAG,gBAAeC,MAAG,mBAAkBC,MAAG,mBAAkBC,MAAG,sBAAqBC,MAAG,oBAAmBC,MAAG,oBAAmBC,MAAG,wBAAuBC,MAAG,qBAAoBC,MAAG,yBAAwBC,MAAG,yBAAwBC,MAAG,sBAAqBC,MAAG,uBAAsBC,MAAG,uBAAsBC,MAAG,uBAAsBC,MAAG,8BAA6BC,MAAG,wBAAuBC,MAAG,wBAAuBC,MAAG,kBAAiBC,MAAG,sBAAqBC,MAAG,iCAAgCC,MAAG,6BAA4BC,MAAG,YAAWC,MAAG,OAAOF,IAAG,MAAM,GAAEG,MAAG,OAAOF,IAAG,MAAM,GAAEG,MAAG,oBAAmBC,MAAG,mBAAkBC,MAAG,oBAAmBC,MAAG,oDAAmDC,MAAG,SAAQC,MAAG,oGAAmGC,MAAG,uBAAsBC,MAAG,OAAOD,IAAG,MAAM,GAAEjF,MAAG,QAAOwB,MAAG,MAAK2D,MAAG,6CAA4CC,MAAG,qCAAoCC,MAAG,SAAQvG,MAAG,6CAA4CwG,MAAG,oBAAmBC,MAAG,YAAWC,MAAG,mCAAkCC,MAAG,QAAOC,MAAG,sBAAqBC,MAAG,cAAaC,MAAG,+BAA8BC,MAAG,eAAcC,MAAG,oBAAmBC,MAAG,+CAA8CC,MAAG,QAAOC,MAAG,0BAAyBC,MAAG,mBAAkBC,MAAG,mBAAkBC,MAAG,mBAAkB,KAAG,mBAAkB,KAAGD,MAAGC,MAAG,IAAG,KAAG,mBAAkB,KAAG,6BAA4B,KAAG,wBAAuB,KAAG,gDAA+C,KAAG,mBAAkB,KAAG,gKAA+J,KAAG,6BAA4B,KAAG,kBAAiB,KAAG,KAAG,KAAG,KAAG,IAAG,KAAG,aAAY,KAAG,MAAIF,MAAG,KAAI,KAAG,MAAI,KAAG,KAAI,KAAG,MAAI,KAAG,KAAI,KAAG,QAAO,KAAG,MAAI,KAAG,KAAI,KAAG,MAAI,KAAG,KAAI,KAAG,OAAKA,MAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAI,KAAG,4BAA2B,KAAG,QAAM,KAAG,MAAI,KAAG,KAAI,KAAG,OAAKA,MAAG,KAAI,KAAG,mCAAkC,KAAG,sCAAqC,KAAG,MAAI,KAAG,KAAI,KAAG,WAAU,KAAG,QAAM,KAAG,MAAI,KAAG,KAAI,KAAG,QAAM,KAAG,MAAI,KAAG,KAAI,KAAG,QAAM,KAAG,0BAAyB,KAAG,QAAM,KAAG,0BAAyB,KAAG,KAAG,KAAI,KAAG,MAAI,KAAG,MAAK,KAAG,QAAM,KAAG,QAAM,CAAC,IAAG,IAAG,EAAE,EAAE,KAAK,GAAG,IAAE,MAAI,KAAG,KAAG,MAAK,KAAG,oDAAmD,KAAG,oDAAmD,KAAG,KAAG,KAAG,IAAG,KAAG,QAAM,CAAC,IAAG,IAAG,EAAE,EAAE,KAAK,GAAG,IAAE,MAAI,IAAG,KAAG,QAAM,CAAC,KAAG,KAAG,KAAI,IAAG,IAAG,IAAG,EAAE,EAAE,KAAK,GAAG,IAAE,KAAI,KAAG,OAAO,IAAG,GAAG,GAAE,KAAG,OAAO,IAAG,GAAG,GAAE,KAAG,OAAO,KAAG,QAAM,KAAG,OAAK,KAAG,IAAG,GAAG,GAAE,KAAG,OAAO,CAAC,KAAG,MAAI,KAAG,MAAI,KAAG,QAAM,CAAC,IAAG,IAAG,GAAG,EAAE,KAAK,GAAG,IAAE,KAAI,KAAG,MAAI,KAAG,QAAM,CAAC,IAAG,KAAG,IAAG,GAAG,EAAE,KAAK,GAAG,IAAE,KAAI,KAAG,MAAI,KAAG,MAAI,IAAG,KAAG,MAAI,IAAG,IAAG,IAAG,IAAG,EAAE,EAAE,KAAK,GAAG,GAAE,GAAG,GAAE,KAAG,OAAO,MAAI,KAAGA,MAAG,KAAG,KAAG,GAAG,GAAE,KAAG,sEAAqE,KAAG,CAAC,SAAQ,UAAS,YAAW,QAAO,SAAQ,gBAAe,gBAAe,YAAW,aAAY,cAAa,cAAa,OAAM,QAAO,UAAS,WAAU,UAAS,OAAM,UAAS,UAAS,aAAY,cAAa,qBAAoB,eAAc,eAAc,WAAU,KAAI,gBAAe,YAAW,YAAW,YAAY,GAAE,KAAG,IAAG,KAAG,CAAC;AAC7iI,WAAGvC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,MAAG,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAGV,GAAE,IAAE,GAAG,EAAE,IAAE,GAAGC,GAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAGR,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGG,GAAE,IAAE;AAAG,YAAI,KAAG,CAAC;AAAE,WAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAGE,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAGb,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGW,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,GAAGC,GAAE,IAAE,MAAG,GAAG,EAAE,IAAE,GAAG,EAAE,IAAE,GAAGZ,GAAE,IAAE;AAAG,YAAI,KAAG;AAAA,UAAC,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UACrf,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UAAI,QAAO;AAAA,UACtf,QAAO;AAAA,UAAK,QAAO;AAAA,UAAK,QAAO;AAAA,UAAK,QAAO;AAAA,UAAK,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UACnf,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UACvf,UAAS;AAAA,UAAI,UAAS;AAAA,U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AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,QAAQ,OAAO;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,aAAa,OAAO;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,gBAAgB,OAAO;AAAA,UACzB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,WAAW,OAAO;AAAA,UACpB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,mBAAmB,OAAO;AAAA,UAC5B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,YAAI,OAAO,OAAO;AAAA,UAChB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AACD,YAAI,MAAM,OAAO;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA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",
  "names": ["consumer", "error", "consumer", "s", "consumer", "s", "subscription", "a", "isObject", "now", "Symbol", "Symbol", "e", "Symbol", "isObject", "isObject", "now", "debounce", "n", "t", "r", "e", "u", "i", "o", "y", "f", "c", "a", "l", "s", "h", "p", "_", "$t", "v", "g", "Z", "b", "d", "w", "k", "Cn", "m", "X", "x", "j", "A", "O", "I", "R", "H", "Lt", "z", "E", "S", "W", "L", "C", "U", "B", "T", "$", "D", "M", "F", "N", "cn", "P", "q", "K", "V", "J", "_e", "G", "Y", "Ct", "Q", "nn", "tn", "rn", "en", "un", "on", "fn", "an", "ln", "sn", "hn", "pn", "vn", "gn", "yn", "dn", "bn", "mn", "xn", "An", "kn", "Rn", "En", "Sn", "nt", "tt", "rt", "et", "ut", "it", "ot", "ft", "ct", "at", "lt", "st", "ht", "pt", "_t", "vt", "gt", "yt", "dt", "bt", "wt", "mt", "xt", "jt", "At", "kt", "Ot", "It", "Rt", "zt", "Et", "St", "Wt", "Ut", "Bt", "Tt", "Dt", "Mt", "Ft", "Nt", "Pt", "qt", "Zt", "Kt", "Vt", "Gt", "Ht", "Jt", "Yt", "Qt", "Xt", "ne", "te", "re", "ee", "ue", "ie", "oe", "fe", "ce", "ae", "le", "se", "he", "pe", "ve", "ge", "ye", "de", "Oi", "nr", "tr", "rr", "er", "ur", "ir", "or", "fr", "Wr", "cr", "ar", "lr", "sr", "hr", "pr", "xi", "_r", "vr", "gr", "yr", "dr", "br", "wr", "mr", "xr", "jr", "Ar", "kr", "Or", "Ci", "Ir", "Rr", "Xi", "Mr", "zr", "Er", "Br", "Sr", "Lr", "Cr", "Ur", "Tr", "Fr", "zi", "Ei", "Si", "di", "yi", "Nr", "Pr", "Gr", "Hr", "Jr", "Yr", "Li", "we", "ki", "Ki", "me", "xe", "je", "Ae", "ke", "Oe", "Ie", "Gi", "Re", "ze", "Ee", "Se", "We", "pi", "_i", "vi", "Le", "Ce", "Ue", "Di", "to", "Be", "Te", "$e", "De", "Ze", "qe", "Me", "Mi", "Fe", "Zi", "Ne", "Pe", "ji", "Ni", "Bi", "Fi", "Ke", "Ve", "Ji", "Ge", "He", "mi", "Je", "Ye", "Qe", "Xe", "Vi", "Ui", "wi", "oi", "gi", "bi", "$i", "Hi", "ni", "ti", "ri", "ei", "ui", "ii", "Yi", "fi", "ci", "ai", "qi", "li", "si", "hi", "Ti", "Ai", "Ii", "Ri", "Wi", "Pi", "Qi", "be", "n", "a", "b", "start", "clone", "each", "isArray", "isFunction", "func", "pairs", "rearg", "name", "options", "_", "_", "x", "t", "clone", "f", "y", "i", "q", "v", "o", "type", "value", "a", "isObject", "isFunction", "isNumber", "noop", "b", "fn", "all", "binder", "r", "copy", "from", "k", "name", "eq", "isArray", "l", "s", "n", "map$1", "callback", "indexOf", "os", "browser", "userAgent", "mediaMatch", "isTouch", "isTablet", "isPhone", "browsers", "version", "oses", "start", "end", "count", "ie", "deviceType", "map", "d", "left", "e", "dom", "nu", "html", "text", "contains", "isRoot", "stop", "p", "isShadowRoot", "reflow", "sibling", "parent", "children", "set", "owner", "filter", "top", "translate", "scrollLeft", "viewport", "to", "is", "ancestor", "descend", "child", "selector", "shallow", "names", "values", "hasAttribute", "get", "getOption", "lookup", "lastChild", "before", "range", "c", "transparent", "isBlock", "parentBlock", "scope", "parents", "elm", "resolve", "prev", "next", "add", "ni", "option", "ei", "ai", "customElements", "isValid", "self", "right", "bottom", "decode", "str", "match", "data", "ci", "getContext", "deep", "setStyle", "getStyle", "getSize", "w", "h", "getParents", "node", "select", "context", "create", "parentElm", "createFragment", "remove", "head", "toggleClass", "hasClass", "hide", "uniqueId", "insertAfter", "reference", "nextSibling", "pe", "isNonEmptyElement", "isNamedAnchor", "isEmpty", "firstChild", "split", "bind", "unbind", "dispatch", "destroy", "_", "error", "$2", "clear", "on", "annotation", "an", "closest", "uid", "descendants$1", "descendant", "m", "registry", "initData", "addListener", "removeDirectAnnotation", "register", "isBoundary", "walk", "offset", "process", "r2", "min", "max", "container", "getClientRects", "isVisible", "isEqual", "getNode", "index", "trim", "getPoint", "point", "after", "adt", "format", "hasFocus", "reposition", "leanRight", "location", "HDirection", "hex", "rgbaColour", "alpha", "g", "color", "cell", "action", "field", "siblings", "isSpan", "isImage", "isMedia", "width", "height", "selectedElmX", "selectedElmY", "handle", "split$1", "normalize", "getOuter", "last", "_e", "isBogus", "indent", "empty", "validate", "removeNode", "pos", "moveCaret", "isInlineTarget", "moveSelection", "table", "getTable", "cells", "tableSelection", "emptyBlock", "first", "li", "isContentEditable", "merge", "isInline", "rng", "parentNode", "hooks", "blocks", "prevSibling", "unwrap", "applyStyles", "formatList", "isZwsp$1", "hasContentEditableState", "obj", "_setPrototypeOf", "_construct", "Parent", "args", "Class", "instance", "apply", "freeze", "seal", "construct", "getGlobal", "_createTrustedTypesPolicy", "document", "window", "DOMPurify", "HTMLTemplateElement", "Node", "Element", "NodeFilter", "HTMLFormElement", "DOMParser", "getChildNodes", "getParentNode", "createDocumentFragment", "importNode", "isRegexOrFunction", "_parseConfig", "_checkValidNamespace", "_forceRemove", "_removeAttribute", "_initDocument", "_createIterator", "_isClobbered", "_isNode", "_executeHook", "_sanitizeElements", "_isValidAttribute", "_basicCustomElementTest", "_sanitizeAttributes", "_sanitizeShadowDOM", "preprocess", "purify", "isInlineElement", "addRootBlocks", "parse", "exports", "fireEvent", "y2", "x2", "start2", "end2", "script", "j", "diff", "write", "cls", "init", "setup", "collapse", "getContent", "setContent", "getStart$1", "getEnd", "getBookmark", "moveToBookmark", "getNode$1", "normRng", "getBoundingClientRect", "isBr", "removedOptions", "removedPlugins", "has", "registerEvents", "editor", "alert", "confirm", "console", "findAll", "now", "uuid", "cache", "openNotification", "search", "get$2", "getComputedStyle", "formats", "firstElement", "blockBoundary", "blockPosition", "blockPos", "el", "deleteRange", "deleteAction", "read", "getElement", "fromLocation", "BreakType", "flip", "positions", "VDirection", "isElement", "caretPosition", "toPosition", "forward", "insertBlock", "execute", "getPositionsUntil", "SimpleResultType", "fallback", "partition", "api", "overrides", "getAction", "currentNode", "ui", "preProcess", "postProcess", "FakeCaretPosition", "prevScope", "calculatePosition", "state", "elementSelectionAttr", "showCaret", "showBlockCaretContainer", "isPasteBin", "spot", "event", "each", "DELETE", "setEditorCommandState", "selection", "focusBody", "applyAttributes", "normalizeSelection", "autoFocus", "focusEditor", "loadIcons", "render", "initEditor", "keys", "sectionResult", "defaults", "defaultOptions", "toggleFormat", "font", "command", "nativeEvents", "prepend", "extra", "editors", "pattern", "extend", "DOM", "preInit", "options", "execCallback", "round", "clamp", "localStorage", "tinymce", "global", "w", "window", "indexOf", "isFunction", "isWindow", "document", "i", "toType", "version", "jQuery", "callback", "j", "clone", "arr", "_i", "support", "tokenize", "contains", "a", "b", "hasOwn", "push", "slice", "whitespace", "rtrim", "rhtml", "rquickExpr", "escape", "e", "Sizzle", "m", "cache", "fn", "matches", "docElem", "node", "nodeName", "start", "dir", "hash", "skip", "map", "isXML", "n", "elem", "self", "l", "_", "add", "v", "resolve", "value", "deferred", "process", "error", "Data", "data", "hooks", "on", "t", "expectSync", "swap", "name", "end", "p", "Animation", "index", "length", "to", "max", "location", "s", "val", "ct", "completed", "calculatePosition", "offset", "top", "method", "type", "HTMLElement", "FrameLoadingStyle", "location", "left", "right", "resolve", "i", "_", "FetchMethod", "error", "FormSubmissionState", "FormEnctype", "cookie", "x", "y", "callback", "clone", "TimingMetric", "VisitState", "SystemStatusCode", "session", "visit", "PageStage", "e", "element", "document", "c", "createConsumer", "m", "x", "left", "right", "application", "map", "error", "_", "e", "callback", "fetch", "set", "callback", "match", "oldValue", "left", "right", "_", "error", "descriptors", "constructor", "extend", "a", "b", "application", "element", "c", "n", "k", "v", "resolve", "read", "write", "FetchResponse", "cookie", "FetchRequest", "error", "FetchResponse", "_", "e", "FetchRequest", "v", "l", "h", "v", "b", "a", "f", "h", "s", "l", "n", "k", "w", "i", "r", "g", "d", "max", "min", "c", "m", "j", "interpolate", "t", "color", "p", "noop", "uid", "id", "isNullOrUndef", "value", "undefined", "isArray", "Array", "type", "Object", "prototype", "toString", "call", "slice", "isObject", "isNumberFinite", "Number", "isFinite", "finiteOrDefault", "defaultValue", "valueOrDefault", "toPercentage", "dimension", "endsWith", "parseFloat", "toDimension", "callback", "fn", "args", "thisArg", "apply", "each", "loopable", "reverse", "i", "len", "keys", "length", "_elementsEqual", "a0", "a1", "ilen", "v0", "v1", "datasetIndex", "index", "clone", "source", "map", "target", "create", "klen", "k", "isValidKey", "key", "indexOf", "_merger", "options", "tval", "sval", "merge", "sources", "merger", "current", "mergeIf", "_mergerIf", "hasOwnProperty", "keyResolvers", "v", "x", "o", "y", "_splitKey", "key", "parts", "split", "keys", "tmp", "part", "endsWith", "slice", "push", "_getKeyResolver", "obj", "k", "resolveObjectKey", "resolver", "_capitalize", "str", "charAt", "toUpperCase", "defined", "value", "isFunction", "setsEqual", "a", "b", "size", "item", "has", "_isClickEvent", "e", "type", "PI", "Math", "TAU", "PITAU", "INFINITY", "Number", "POSITIVE_INFINITY", "RAD_PER_DEG", "HALF_PI", "QUARTER_PI", "TWO_THIRDS_PI", "log10", "sign", "almostEquals", "epsilon", "abs", "niceNum", "range", "roundedRange", "round", "niceRange", "pow", "floor", "fraction", "niceFraction", "_factorize", "result", "sqrt", "i", "sort", "pop", "isNonPrimitive", "n", "Symbol", "toPrimitive", "isNumber", "isNaN", "parseFloat", "isFinite", "almostWhole", "rounded", "_setMinAndMaxByKey", "array", "target", "property", "ilen", "length", "min", "max", "toRadians", "degrees", "toDegrees", "radians", "_decimalPlaces", "isFiniteNumber", "p", "getAngleFromPoint", "centrePoint", "anglePoint", "distanceFromXCenter", "distanceFromYCenter", "radialDistanceFromCenter", "angle", "atan2", "distance", "distanceBetweenPoints", "pt1", "pt2", "_angleDiff", "_normalizeAngle", "_angleBetween", "start", "end", "sameAngleIsFullCircle", "s", "angleToStart", "angleToEnd", "startToAngle", "endToAngle", "_limitValue", "_int16Range", "_isBetween", "_lookup", "table", "cmp", "index", "hi", "lo", "mid", "_lookupByKey", "last", "ti", "_rlookupByKey", "_filterBetween", "values", "arrayEvents", "listenArrayEvents", "listener", "_chartjs", "listeners", "Object", "defineProperty", "configurable", "enumerable", "forEach", "method", "base", "args", "res", "apply", "object", "unlistenArrayEvents", "stub", "indexOf", "splice", "_arrayUnique", "items", "set", "Set", "Array", "from", "requestAnimFrame", "window", "callback", "requestAnimationFrame", "throttled", "fn", "thisArg", "argsToUse", "ticking", "args", "call", "apply", "debounce", "delay", "timeout", "clearTimeout", "setTimeout", "_toLeftRightCenter", "align", "_alignStartEnd", "start", "end", "_textX", "left", "right", "rtl", "check", "_getStartAndCountOfVisiblePoints", "meta", "points", "animationsDisabled", "pointCount", "length", "count", "_sorted", "iScale", "vScale", "_parsed", "spanGaps", "dataset", "options", "axis", "min", "max", "minDefined", "maxDefined", "getUserBounds", "Math", "_lookupByKey", "lo", "getPixelForValue", "distanceToDefinedLo", "slice", "reverse", "findIndex", "point", "isNullOrUndef", "_limitValue", "hi", "distanceToDefinedHi", "_scaleRangesChanged", "xScale", "yScale", "_scaleRanges", "newRanges", "xmin", "xmax", "ymin", "ymax", "changed", "Object", "assign", "atEdge", "t", "elasticIn", "s", "p", "pow", "sin", "TAU", "elasticOut", "effects", "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "cos", "HALF_PI", "easeOutSine", "easeInOutSine", "PI", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "sqrt", "easeOutCirc", "easeInOutCirc", "easeInElastic", "easeOutElastic", "easeInOutElastic", "easeInBack", "easeOutBack", "easeInOutBack", "easeInBounce", "easeOutBounce", "m", "d", "easeInOutBounce", "isPatternOrGradient", "value", "type", "toString", "color", "Color", "getHoverColor", "saturate", "darken", "hexString", "numbers", "colors", "applyAnimationsDefaults", "defaults", "set", "undefined", "duration", "easing", "from", "loop", "to", "describe", "_fallback", "_indexable", "_scriptable", "name", "properties", "active", "animation", "resize", "show", "animations", "visible", "hide", "v", "applyLayoutsDefaults", "autoPadding", "padding", "top", "bottom", "intlCache", "Map", "getNumberFormat", "locale", "cacheKey", "JSON", "stringify", "formatter", "get", "Intl", "NumberFormat", "formatNumber", "num", "format", "formatters", "values", "isArray", "numeric", "tickValue", "index", "ticks", "chart", "notation", "delta", "maxTick", "abs", "calculateDelta", "logDelta", "log10", "numDecimal", "isNaN", "floor", "minimumFractionDigits", "maximumFractionDigits", "logarithmic", "remain", "significand", "includes", "applyScaleDefaults", "display", "offset", "beginAtZero", "bounds", "clip", "grace", "grid", "lineWidth", "drawOnChartArea", "drawTicks", "tickLength", "tickWidth", "_ctx", "tickColor", "border", "dash", "dashOffset", "width", "title", "text", "minRotation", "maxRotation", "mirror", "textStrokeWidth", "textStrokeColor", "autoSkip", "autoSkipPadding", "labelOffset", "Ticks", "minor", "major", "crossAlign", "showLabelBackdrop", "backdropColor", "backdropPadding", "route", "startsWith", "overrides", "create", "descriptors", "getScope", "node", "key", "keys", "split", "i", "n", "k", "root", "scope", "merge", "Defaults", "constructor", "_descriptors", "_appliers", "backgroundColor", "borderColor", "datasets", "devicePixelRatio", "context", "platform", "getDevicePixelRatio", "elements", "events", "font", "family", "size", "style", "lineHeight", "weight", "hover", "hoverBackgroundColor", "ctx", "hoverBorderColor", "hoverColor", "indexAxis", "interaction", "mode", "intersect", "includeInvisible", "maintainAspectRatio", "onHover", "onClick", "parsing", "plugins", "responsive", "scale", "scales", "showLine", "drawActiveElementsOnTop", "override", "targetScope", "targetName", "scopeObject", "targetScopeObject", "privateName", "defineProperties", "writable", "enumerable", "local", "target", "isObject", "valueOrDefault", "appliers", "forEach", "toFontString", "_measureText", "data", "gc", "longest", "string", "textWidth", "measureText", "push", "_longestText", "arrayOfThings", "cache", "garbageCollect", "save", "ilen", "j", "jlen", "thing", "nestedThing", "restore", "gcLen", "splice", "_alignPixel", "pixel", "currentDevicePixelRatio", "halfWidth", "round", "clearCanvas", "canvas", "getContext", "resetTransform", "clearRect", "height", "drawPoint", "x", "y", "drawPointLegend", "w", "xOffset", "yOffset", "cornerRadius", "xOffsetW", "yOffsetW", "pointStyle", "rotation", "radius", "rad", "RAD_PER_DEG", "translate", "rotate", "drawImage", "beginPath", "ellipse", "arc", "closePath", "moveTo", "TWO_THIRDS_PI", "lineTo", "QUARTER_PI", "SQRT1_2", "rect", "fill", "borderWidth", "stroke", "_isPointInArea", "area", "margin", "clipArea", "unclipArea", "_steppedLineTo", "previous", "flip", "midpoint", "_bezierCurveTo", "bezierCurveTo", "cp1x", "cp2x", "cp1y", "cp2y", "setRenderOpts", "opts", "translation", "fillStyle", "textAlign", "textBaseline", "decorateText", "line", "strikethrough", "underline", "metrics", "actualBoundingBoxLeft", "actualBoundingBoxRight", "actualBoundingBoxAscent", "actualBoundingBoxDescent", "yDecoration", "strokeStyle", "decorationWidth", "drawBackdrop", "oldColor", "fillRect", "renderText", "lines", "strokeWidth", "strokeColor", "backdrop", "strokeText", "maxWidth", "fillText", "Number", "addRoundedRectPath", "h", "topLeft", "bottomLeft", "bottomRight", "topRight", "LINE_HEIGHT", "FONT_STYLE", "toLineHeight", "matches", "match", "numberOrZero", "_readValueToProps", "props", "ret", "objProps", "read", "prop", "toTRBL", "toTRBLCorners", "toPadding", "obj", "toFont", "fallback", "parseInt", "console", "warn", "resolve", "inputs", "info", "cacheable", "_addGrace", "minmax", "change", "toDimension", "keepZero", "add", "createContext", "parentContext", "_createResolver", "scopes", "prefixes", "rootScopes", "getTarget", "finalRootScopes", "_resolve", "Symbol", "toStringTag", "_cacheable", "_scopes", "_rootScopes", "_getTarget", "Proxy", "deleteProperty", "_keys", "_cached", "_resolveWithPrefixes", "getOwnPropertyDescriptor", "Reflect", "getPrototypeOf", "has", "getKeysFromAllScopes", "ownKeys", "storage", "_storage", "_attachContext", "proxy", "subProxy", "descriptorDefaults", "_proxy", "_context", "_subProxy", "_stack", "Set", "setContext", "receiver", "_resolveWithContext", "allKeys", "configurable", "scriptable", "indexable", "_allKeys", "isScriptable", "isFunction", "isIndexable", "readKey", "prefix", "_capitalize", "needsSubResolver", "prototype", "hasOwnProperty", "_resolveScriptable", "_resolveArray", "getValue", "Error", "Array", "join", "delete", "createSubResolver", "arr", "filter", "item", "resolver", "resolveFallback", "parent", "resolveObjectKey", "addScopes", "parentScopes", "parentFallback", "allScopes", "addScopesFromKey", "subGetTarget", "resolveKeysFromAllScopes", "EPSILON", "Number", "getPoint", "points", "i", "length", "skip", "getValueAxis", "indexAxis", "splineCurve", "firstPoint", "middlePoint", "afterPoint", "t", "previous", "current", "next", "d01", "distanceBetweenPoints", "d12", "s01", "s12", "isNaN", "fa", "fb", "x", "y", "monotoneAdjust", "deltaK", "mK", "pointsLen", "alphaK", "betaK", "tauK", "squaredMagnitude", "pointCurrent", "pointAfter", "almostEquals", "Math", "pow", "sqrt", "monotoneCompute", "valueAxis", "delta", "pointBefore", "iPixel", "vPixel", "splineCurveMonotone", "Array", "fill", "slopeDelta", "sign", "capControlPoint", "pt", "min", "max", "capBezierPoints", "area", "ilen", "point", "inArea", "inAreaPrev", "inAreaNext", "_isPointInArea", "cp1x", "left", "right", "cp1y", "top", "bottom", "cp2x", "cp2y", "_updateBezierControlPoints", "options", "loop", "controlPoints", "spanGaps", "filter", "cubicInterpolationMode", "prev", "tension", "_isDomSupported", "window", "document", "_getParentNode", "domNode", "parent", "parentNode", "toString", "host", "parseMaxStyle", "styleValue", "node", "parentProperty", "valueInPixels", "parseInt", "indexOf", "getComputedStyle", "element", "ownerDocument", "defaultView", "getStyle", "el", "property", "getPropertyValue", "positions", "getPositionedStyle", "styles", "style", "suffix", "result", "pos", "parseFloat", "width", "height", "useOffsetPos", "target", "shadowRoot", "getCanvasPosition", "e", "canvas", "touches", "source", "offsetX", "offsetY", "box", "rect", "getBoundingClientRect", "clientX", "clientY", "getRelativePosition", "event", "chart", "currentDevicePixelRatio", "borderBox", "boxSizing", "paddings", "borders", "xOffset", "yOffset", "round", "getContainerSize", "maxWidth", "maxHeight", "undefined", "container", "clientWidth", "clientHeight", "containerStyle", "containerBorder", "containerPadding", "INFINITY", "round1", "v", "getMaximumSize", "bbWidth", "bbHeight", "aspectRatio", "margins", "containerSize", "maintainHeight", "floor", "retinaScale", "forceRatio", "forceStyle", "pixelRatio", "deviceHeight", "deviceWidth", "ctx", "setTransform", "supportsEventListenerOptions", "passiveSupported", "passive", "addEventListener", "removeEventListener", "readUsedSize", "value", "matches", "match", "_pointInLine", "p1", "p2", "mode", "_steppedInterpolation", "_bezierInterpolation", "cp1", "cp2", "a", "b", "c", "d", "getRightToLeftAdapter", "rectX", "setWidth", "w", "textAlign", "align", "xPlus", "leftForLtr", "itemWidth", "getLeftToRightAdapter", "_itemWidth", "getRtlAdapter", "rtl", "overrideTextDirection", "direction", "original", "getPropertyPriority", "setProperty", "prevTextDirection", "restoreTextDirection", "propertyFn", "between", "_angleBetween", "compare", "_angleDiff", "normalize", "_normalizeAngle", "_isBetween", "normalizeSegment", "start", "end", "count", "getSegment", "segment", "bounds", "startBound", "endBound", "_boundSegment", "inside", "subStart", "prevValue", "startIsBefore", "endIsBefore", "shouldStart", "shouldStop", "push", "_boundSegments", "line", "segments", "sub", "findStartAndEnd", "solidSegments", "last", "cur", "stop", "_computeSegments", "segmentOptions", "_loop", "splitByStyles", "completeLoop", "_fullLoop", "setContext", "doSplitByStyles", "chartContext", "_chart", "getContext", "baseStyle", "readStyle", "_datasetIndex", "datasetIndex", "prevStyle", "addStyle", "s", "l", "st", "dir", "createContext", "type", "p0", "p0DataIndex", "p1DataIndex", "styleChanged", "backgroundColor", "borderCapStyle", "borderDash", "borderDashOffset", "borderJoinStyle", "borderWidth", "borderColor", "cache", "replacer", "key", "isPatternOrGradient", "includes", "JSON", "stringify", "getSizeForArea", "scale", "chartArea", "field", "clip", "getDatasetArea", "meta", "xScale", "yScale", "getDatasetClipArea", "_clip", "disabled", "Animator", "constructor", "_request", "_charts", "Map", "_running", "_lastDate", "undefined", "_notify", "chart", "anims", "date", "type", "callbacks", "listeners", "numSteps", "duration", "forEach", "fn", "initial", "currentStep", "Math", "min", "start", "_refresh", "requestAnimFrame", "call", "window", "_update", "Date", "now", "remaining", "running", "items", "length", "i", "draw", "item", "_active", "_total", "tick", "pop", "_getAnims", "charts", "get", "complete", "progress", "set", "listen", "event", "cb", "push", "add", "has", "reduce", "acc", "cur", "max", "_duration", "stop", "cancel", "remove", "delete", "transparent", "interpolators", "boolean", "from", "to", "factor", "color", "c0", "helpersColor", "c1", "valid", "mix", "hexString", "number", "Animation", "cfg", "target", "prop", "currentValue", "resolve", "_fn", "_easing", "effects", "easing", "linear", "_start", "floor", "delay", "_loop", "loop", "_target", "_prop", "_from", "_to", "_promises", "active", "update", "elapsed", "remain", "wait", "promises", "Promise", "res", "rej", "resolved", "method", "Animations", "config", "_chart", "_properties", "configure", "isObject", "animationOptions", "Object", "keys", "defaults", "animation", "animatedProps", "getOwnPropertyNames", "key", "option", "isArray", "properties", "_animateOptions", "values", "newOptions", "options", "resolveTargetOptions", "animations", "_createAnimations", "$shared", "awaitAll", "$animations", "then", "props", "charAt", "value", "size", "assign", "animator", "anim", "all", "scaleClip", "scale", "allowedOverflow", "opts", "reverse", "end", "defaultClip", "xScale", "yScale", "x", "y", "top", "right", "bottom", "left", "toClip", "t", "r", "b", "l", "disabled", "getSortedDatasetIndices", "filterVisible", "metasets", "_getSortedDatasetMetas", "ilen", "index", "applyStack", "stack", "dsIndex", "singleMode", "mode", "datasetIndex", "otherValue", "found", "isFinite", "sign", "convertObjectDataToArray", "data", "meta", "iScale", "vScale", "iAxisKey", "axis", "vAxisKey", "adata", "Array", "isStacked", "stacked", "getStackKey", "indexScale", "valueScale", "id", "getUserBounds", "minDefined", "maxDefined", "Number", "NEGATIVE_INFINITY", "POSITIVE_INFINITY", "getOrCreateStack", "stacks", "stackKey", "indexValue", "subStack", "getLastIndexInStack", "positive", "getMatchingVisibleMetas", "updateStacks", "controller", "parsed", "_cachedMeta", "_stacks", "iAxis", "vAxis", "itemStacks", "_top", "_bottom", "visualValues", "_visualValues", "getFirstScaleId", "scales", "filter", "shift", "createDatasetContext", "parent", "createContext", "dataset", "createDataContext", "element", "dataIndex", "raw", "clearStacks", "_parsed", "isDirectUpdateMode", "cloneIfNotShared", "cached", "shared", "createStack", "canStack", "hidden", "_stacked", "DatasetController", "_ctx", "ctx", "_cachedDataOpts", "getMeta", "_type", "_parsing", "_data", "_objectData", "_sharedOptions", "_drawStart", "_drawCount", "enableOptionSharing", "supportsDecimation", "$context", "_syncList", "datasetElementType", "dataElementType", "initialize", "linkScales", "addElements", "fill", "isPluginEnabled", "console", "warn", "updateIndex", "getDataset", "chooseId", "xid", "xAxisID", "valueOrDefault", "yid", "yAxisID", "rid", "rAxisID", "indexAxis", "iid", "iAxisID", "vid", "vAxisID", "getScaleForId", "rScale", "datasets", "getDatasetMeta", "scaleID", "_getOtherScale", "reset", "_destroy", "unlistenArrayEvents", "_dataCheck", "isExtensible", "listenArrayEvents", "buildOrUpdateElements", "resetNewElements", "stackChanged", "oldStacked", "_resyncElements", "scopeKeys", "datasetScopeKeys", "scopes", "getOptionScopes", "createResolver", "getContext", "parsing", "parse", "count", "sorted", "_sorted", "prev", "parseArrayData", "parseObjectData", "parsePrimitiveData", "isNotInOrderComparedToPrev", "labels", "getLabels", "singleScale", "xAxisKey", "yAxisKey", "resolveObjectKey", "getParsed", "getDataElement", "updateRangeFromParsed", "range", "parsedValue", "NaN", "getMinMax", "otherScale", "otherMin", "otherMax", "_skip", "getAllParsedValues", "getMaxOverflow", "getLabelAndValue", "label", "getLabelForValue", "_clip", "clip", "elements", "area", "chartArea", "drawActiveElementsOnTop", "getStyle", "resolveDatasetElementOptions", "resolveDataElementOptions", "context", "_resolveElementOptions", "elementType", "cache", "cacheKey", "sharing", "defined", "datasetElementScopeKeys", "prefixes", "names", "resolveNamedOptions", "freeze", "_resolveAnimations", "transition", "datasetAnimationScopeKeys", "_cacheable", "getSharedOptions", "includeOptions", "sharedOptions", "_animationsDisabled", "_getSharedOptions", "firstOpts", "previouslySharedOptions", "updateSharedOptions", "updateElement", "_setStyle", "removeHoverStyle", "setHoverStyle", "_removeDatasetHoverStyle", "_setDatasetHoverStyle", "arg1", "arg2", "numMeta", "numData", "_insertElements", "_removeElements", "move", "arr", "updateElements", "removed", "splice", "_sync", "args", "_dataChanges", "_onDataPush", "arguments", "_onDataPop", "_onDataShift", "_onDataSplice", "newCount", "_onDataUnshift", "getAllScaleValues", "_cache", "$bar", "visibleMetas", "concat", "_arrayUnique", "sort", "a", "computeMinSampleSize", "_length", "curr", "updateMinAndPrev", "abs", "getPixelForValue", "ticks", "getPixelForTick", "computeFitCategoryTraits", "ruler", "stackCount", "thickness", "barThickness", "ratio", "isNullOrUndef", "categoryPercentage", "barPercentage", "chunk", "pixels", "computeFlexCategoryTraits", "next", "percent", "parseFloatBar", "entry", "startValue", "endValue", "barStart", "barEnd", "_custom", "parseValue", "parseArrayOrPrimitive", "isFloatBar", "custom", "barSign", "actualBase", "isHorizontal", "borderProps", "horizontal", "base", "setBorderSkipped", "edge", "borderSkipped", "enableBorderRadius", "parseEdge", "swap", "startEnd", "orig", "v1", "v2", "v", "setInflateAmount", "inflateAmount", "BarController", "obj", "bars", "getBasePixel", "_getRuler", "vpixels", "head", "_calculateBarValuePixels", "ipixels", "_calculateBarIndexPixels", "center", "height", "width", "_getStacks", "last", "grouped", "currentParsed", "iScaleValue", "skipNull", "find", "val", "isNaN", "indexOf", "_getStackCount", "_getAxisCount", "_getAxis", "getFirstScaleIdForIndexAxis", "indexScaleId", "firstScaleAxisId", "_getStackIndex", "name", "_startPixel", "_endPixel", "baseValue", "minBarLength", "floating", "getDataVisibility", "startPixel", "getPixelForDecimal", "endPixel", "getValueForPixel", "halfGrid", "getLineWidthForValue", "maxBarThickness", "Infinity", "axisCount", "axisID", "axisNumber", "stackIndex", "rects", "numbers", "overrides", "_index_", "offset", "grid", "_value_", "beginAtZero", "getRatioAndOffset", "rotation", "circumference", "cutout", "ratioX", "ratioY", "offsetX", "offsetY", "TAU", "startAngle", "endAngle", "startX", "Math", "cos", "startY", "sin", "endX", "endY", "calcMax", "angle", "a", "b", "_angleBetween", "max", "calcMin", "min", "maxX", "maxY", "HALF_PI", "minX", "PI", "minY", "DoughnutController", "DatasetController", "constructor", "chart", "datasetIndex", "enableOptionSharing", "innerRadius", "undefined", "outerRadius", "linkScales", "parse", "start", "count", "data", "getDataset", "meta", "_cachedMeta", "_parsing", "_parsed", "getter", "i", "isObject", "key", "resolveObjectKey", "ilen", "_getRotation", "toRadians", "options", "_getCircumference", "_getRotationExtents", "datasets", "length", "isDatasetVisible", "getDatasetMeta", "type", "_type", "controller", "update", "mode", "chartArea", "arcs", "spacing", "getMaxBorderWidth", "getMaxOffset", "maxSize", "width", "height", "toPercentage", "chartWeight", "_getRingWeight", "index", "maxWidth", "maxHeight", "maxRadius", "toDimension", "radius", "radiusLength", "_getVisibleDatasetWeightTotal", "total", "calculateTotal", "_getRingWeightOffset", "updateElements", "_circumference", "reset", "opts", "animation", "animateRotate", "getDataVisibility", "hidden", "calculateCircumference", "animationOpts", "centerX", "left", "right", "centerY", "top", "bottom", "animateScale", "sharedOptions", "includeOptions", "_getSharedOptions", "arc", "properties", "x", "y", "resolveDataElementOptions", "active", "updateElement", "metaData", "value", "isNaN", "abs", "getLabelAndValue", "labels", "formatNumber", "locale", "label", "borderAlign", "borderWidth", "hoverBorderWidth", "offset", "hoverOffset", "ringWeightOffset", "valueOrDefault", "weight", "id", "defaults", "datasetElementType", "dataElementType", "animations", "numbers", "indexAxis", "descriptors", "_scriptable", "name", "_indexable", "startsWith", "overrides", "aspectRatio", "plugins", "legend", "generateLabels", "pointStyle", "textAlign", "color", "useBorderRadius", "borderRadius", "map", "style", "getStyle", "text", "fillStyle", "backgroundColor", "fontColor", "lineDash", "borderDash", "lineDashOffset", "borderDashOffset", "lineJoin", "borderJoinStyle", "lineWidth", "strokeStyle", "borderColor", "onClick", "e", "legendItem", "toggleDataVisibility", "LineController", "initialize", "supportsDecimation", "dataset", "line", "points", "_dataset", "animationsDisabled", "_animationsDisabled", "_getStartAndCountOfVisiblePoints", "_drawStart", "_drawCount", "_scaleRangesChanged", "_chart", "_datasetIndex", "_decimated", "resolveDatasetElementOptions", "showLine", "segment", "animated", "iScale", "vScale", "_stacked", "iAxis", "axis", "vAxis", "spanGaps", "maxGapLength", "isNumber", "Number", "POSITIVE_INFINITY", "directUpdate", "end", "pointsCount", "prevParsed", "getParsed", "point", "skip", "parsed", "nullData", "isNullOrUndef", "iPixel", "getPixelForValue", "vPixel", "getBasePixel", "applyStack", "stop", "raw", "getMaxOverflow", "border", "firstPoint", "size", "lastPoint", "draw", "updateControlPoints", "scales", "_index_", "_value_", "PieController", "DoughnutController", "id", "defaults", "cutout", "rotation", "circumference", "radius", "abstract", "Error", "DateAdapterBase", "override", "members", "Object", "assign", "prototype", "options", "constructor", "init", "formats", "parse", "format", "add", "diff", "startOf", "endOf", "_date", "binarySearch", "metaset", "axis", "value", "intersect", "controller", "data", "_sorted", "iScale", "_cachedMeta", "spanGaps", "dataset", "length", "lookupMethod", "_reversePixels", "_rlookupByKey", "_lookupByKey", "result", "vScale", "_parsed", "distanceToDefinedLo", "slice", "lo", "reverse", "findIndex", "point", "isNullOrUndef", "Math", "max", "distanceToDefinedHi", "hi", "_sharedOptions", "el", "range", "getRange", "start", "end", "evaluateInteractionItems", "chart", "position", "handler", "metasets", "getSortedVisibleDatasetMetas", "i", "ilen", "index", "j", "element", "skip", "getDistanceMetricForAxis", "useX", "indexOf", "useY", "pt1", "pt2", "deltaX", "abs", "x", "deltaY", "y", "sqrt", "pow", "getIntersectItems", "useFinalPosition", "includeInvisible", "items", "isPointInArea", "evaluationFunc", "datasetIndex", "_isPointInArea", "chartArea", "inRange", "push", "getNearestRadialItems", "startAngle", "endAngle", "getProps", "angle", "getAngleFromPoint", "_angleBetween", "getNearestCartesianItems", "distanceMetric", "minDistance", "Number", "POSITIVE_INFINITY", "center", "getCenterPoint", "pointInArea", "distance", "getNearestItems", "getAxisItems", "rangeMethod", "intersectsItem", "modes", "e", "getRelativePosition", "elements", "forEach", "meta", "getDatasetMeta", "nearest", "STATIC_POSITIONS", "filterByPosition", "array", "filter", "v", "pos", "filterDynamicPositionByAxis", "box", "sortByWeight", "sort", "a", "b", "v0", "v1", "weight", "wrapBoxes", "boxes", "layoutBoxes", "stack", "stackWeight", "horizontal", "isHorizontal", "buildStacks", "layouts", "stacks", "wrap", "includes", "_stack", "count", "placed", "size", "setLayoutDims", "params", "vBoxMaxWidth", "hBoxMaxHeight", "layout", "fullSize", "factor", "width", "availableWidth", "height", "availableHeight", "buildLayoutBoxes", "left", "right", "top", "bottom", "centerHorizontal", "centerVertical", "leftAndTop", "concat", "rightAndBottom", "vertical", "getCombinedMax", "maxPadding", "updateMaxPadding", "boxPadding", "updateDims", "isObject", "getPadding", "newWidth", "outerWidth", "newHeight", "outerHeight", "widthChanged", "w", "heightChanged", "h", "same", "other", "handleMaxPadding", "updatePos", "change", "getMargins", "marginForPositions", "positions", "margin", "fitBoxes", "refitBoxes", "refit", "changed", "update", "setBoxDims", "placeBoxes", "userPadding", "padding", "defined", "addBox", "item", "_layers", "z", "draw", "removeBox", "layoutItem", "splice", "configure", "minPadding", "toPadding", "verticalBoxes", "horizontalBoxes", "each", "beforeLayout", "visibleVerticalBoxCount", "reduce", "total", "display", "freeze", "BasePlatform", "acquireContext", "canvas", "aspectRatio", "releaseContext", "context", "addEventListener", "type", "listener", "removeEventListener", "getDevicePixelRatio", "getMaximumSize", "floor", "isAttached", "updateConfig", "config", "BasicPlatform", "getContext", "animation", "EXPANDO_KEY", "EVENT_TYPES", "touchstart", "touchmove", "touchend", "pointerenter", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointerout", "isNullOrEmpty", "initCanvas", "style", "renderHeight", "getAttribute", "renderWidth", "initial", "boxSizing", "displayWidth", "readUsedSize", "undefined", "displayHeight", "eventListenerOptions", "supportsEventListenerOptions", "passive", "addListener", "node", "removeListener", "fromNativeEvent", "event", "native", "nodeListContains", "nodeList", "contains", "createAttachObserver", "observer", "MutationObserver", "entries", "trigger", "entry", "addedNodes", "removedNodes", "observe", "document", "childList", "subtree", "createDetachObserver", "drpListeningCharts", "Map", "oldDevicePixelRatio", "onWindowResize", "dpr", "window", "devicePixelRatio", "resize", "currentDevicePixelRatio", "listenDevicePixelRatioChanges", "set", "unlistenDevicePixelRatioChanges", "delete", "createResizeObserver", "container", "_getParentNode", "throttled", "clientWidth", "ResizeObserver", "contentRect", "releaseObserver", "disconnect", "createProxyAndListen", "proxy", "ctx", "DomPlatform", "prop", "removeAttribute", "setAttribute", "keys", "key", "proxies", "$proxies", "handlers", "attach", "detach", "isConnected", "_detectPlatform", "_isDomSupported", "OffscreenCanvas", "Element", "active", "$animations", "tooltipPosition", "hasValue", "isNumber", "props", "final", "anims", "ret", "_to", "defaults", "defaultRoutes", "autoSkip", "scale", "ticks", "tickOpts", "determinedMaxTicks", "determineMaxTicks", "ticksLimit", "min", "maxTicksLimit", "majorIndices", "major", "enabled", "getMajorIndices", "numMajorIndices", "first", "last", "newTicks", "skipMajors", "spacing", "calculateSpacing", "avgMajorSpacing", "round", "offset", "tickLength", "_tickSize", "maxScale", "_length", "maxChart", "_maxLength", "evenMajorSpacing", "getEvenSpacing", "factors", "_factorize", "next", "ceil", "majorStart", "majorEnd", "valueOrDefault", "arr", "len", "reverseAlign", "align", "offsetFromEdge", "edge", "getTicksLimit", "ticksLength", "sample", "numItems", "increment", "getPixelForGridLine", "offsetGridLines", "validIndex", "_startPixel", "_endPixel", "epsilon", "lineValue", "getPixelForTick", "garbageCollect", "caches", "cache", "gc", "gcLen", "getTickMarkLength", "drawTicks", "getTitleHeight", "fallback", "font", "toFont", "lines", "isArray", "text", "lineHeight", "createScaleContext", "parent", "createContext", "createTickContext", "tick", "titleAlign", "_toLeftRightCenter", "titleArgs", "scales", "rotation", "maxWidth", "titleX", "titleY", "_alignStartEnd", "positionAxisID", "getPixelForValue", "HALF_PI", "Scale", "cfg", "id", "_margins", "maxHeight", "paddingTop", "paddingBottom", "paddingLeft", "paddingRight", "labelRotation", "_range", "_gridLineItems", "_labelItems", "_labelSizes", "_longestTextCache", "_userMax", "_userMin", "_suggestedMax", "_suggestedMin", "_ticksLength", "_borderValue", "_cache", "_dataLimitsCached", "$context", "setContext", "suggestedMin", "suggestedMax", "raw", "getUserBounds", "finiteOrDefault", "NEGATIVE_INFINITY", "minDefined", "isFinite", "maxDefined", "getMinMax", "canStack", "metas", "getMatchingVisibleMetas", "getTicks", "getLabels", "labels", "xLabels", "yLabels", "getLabelItems", "_computeLabelItems", "beforeUpdate", "call", "margins", "beginAtZero", "grace", "sampleSize", "beforeSetDimensions", "setDimensions", "afterSetDimensions", "beforeDataLimits", "determineDataLimits", "afterDataLimits", "_addGrace", "beforeBuildTicks", "buildTicks", "afterBuildTicks", "samplingEnabled", "_convertTicksToLabels", "beforeCalculateLabelRotation", "calculateLabelRotation", "afterCalculateLabelRotation", "source", "afterAutoSkip", "beforeFit", "fit", "afterFit", "afterUpdate", "reversePixels", "startPixel", "endPixel", "_alignToPixels", "alignToPixels", "_callHooks", "name", "notifyPlugins", "beforeTickToLabelConversion", "generateTickLabels", "label", "callback", "afterTickToLabelConversion", "numTicks", "minRotation", "maxRotation", "tickWidth", "maxLabelDiagonal", "_isVisible", "labelSizes", "_getLabelSizes", "maxLabelWidth", "widest", "maxLabelHeight", "highest", "_limitValue", "grid", "title", "toDegrees", "asin", "minSize", "titleOpts", "gridOpts", "titleHeight", "tickPadding", "angleRadians", "toRadians", "cos", "sin", "labelHeight", "mirror", "labelWidth", "_calculatePadding", "_handleMargins", "isRotated", "labelsBelowTicks", "offsetLeft", "offsetRight", "isFullSize", "_computeLabelSizes", "widths", "heights", "widestLabelSize", "highestLabelSize", "jlen", "tickFont", "fontString", "nestedLabel", "_resolveTickFontOptions", "string", "_measureText", "valueAt", "idx", "getLabelForValue", "NaN", "getValueForPixel", "pixel", "getPixelForDecimal", "decimal", "_int16Range", "_alignPixel", "getDecimalForPixel", "getBasePixel", "getBaseValue", "optionTicks", "rot", "autoSkipPadding", "_computeGridLineItems", "border", "tl", "borderOpts", "axisWidth", "axisHalfWidth", "alignBorderValue", "borderValue", "alignedLineValue", "tx1", "ty1", "tx2", "ty2", "x1", "y1", "x2", "y2", "limit", "step", "optsAtIndex", "optsAtIndexBorder", "lineWidth", "lineColor", "color", "borderDash", "dash", "borderDashOffset", "dashOffset", "tickColor", "tickBorderDash", "tickBorderDashOffset", "crossAlign", "tickAndPadding", "hTickAndPadding", "textAlign", "lineCount", "textOffset", "textBaseline", "_getXAxisLabelAlignment", "_getYAxisLabelAlignment", "labelOffset", "halfCount", "strokeColor", "textStrokeColor", "strokeWidth", "textStrokeWidth", "tickTextAlign", "showLabelBackdrop", "backdrop", "labelPadding", "backdropPadding", "backdropColor", "translation", "_computeLabelArea", "drawBackground", "backgroundColor", "save", "fillStyle", "fillRect", "restore", "getLineWidthForValue", "t", "opts", "drawGrid", "drawLine", "p1", "p2", "strokeStyle", "setLineDash", "lineDashOffset", "beginPath", "moveTo", "lineTo", "stroke", "drawOnChartArea", "drawBorder", "lastLineWidth", "drawLabels", "area", "clipArea", "renderTextOptions", "renderText", "unclipArea", "drawTitle", "tz", "gz", "bz", "axisID", "_maxDigits", "fontSize", "TypedRegistry", "scope", "create", "isForType", "isPrototypeOf", "register", "proto", "getPrototypeOf", "parentScope", "isIChartComponent", "registerDefaults", "overrides", "get", "unregister", "itemDefaults", "merge", "routeDefaults", "descriptors", "describe", "routes", "property", "propertyParts", "split", "sourceName", "pop", "sourceScope", "join", "parts", "targetName", "targetScope", "route", "Registry", "controllers", "DatasetController", "plugins", "_typedRegistries", "args", "_each", "remove", "addControllers", "addElements", "addPlugins", "addScales", "getController", "_get", "getElement", "getPlugin", "getScale", "removeControllers", "removeElements", "removePlugins", "removeScales", "method", "typedRegistry", "arg", "reg", "_getRegistryForType", "_exec", "itemReg", "registry", "component", "camelMethod", "_capitalize", "PluginService", "_init", "notify", "hook", "_createDescriptors", "_notify", "_descriptors", "descriptor", "plugin", "callCallback", "cancelable", "invalidate", "_oldCache", "_notifyStateChanges", "all", "allPlugins", "createDescriptors", "previousDescriptors", "some", "localIds", "local", "getOpts", "pluginOpts", "pluginScopeKeys", "scopes", "getOptionScopes", "createResolver", "scriptable", "indexable", "allKeys", "getIndexAxis", "datasetDefaults", "datasets", "datasetOptions", "indexAxis", "getAxisFromDefaultScaleID", "getDefaultScaleIDFromAxis", "idMatchesAxis", "axisFromPosition", "determineAxis", "scaleOptions", "toLowerCase", "getAxisFromDataset", "retrieveAxisFromDatasets", "boundDs", "d", "xAxisID", "yAxisID", "mergeScaleConfig", "chartDefaults", "configScales", "chartIndexAxis", "scaleConf", "console", "error", "_proxy", "warn", "defaultId", "defaultScaleOptions", "mergeIf", "defaultID", "initOptions", "initData", "initConfig", "keyCache", "keysCached", "Set", "cachedKeys", "cacheKey", "generate", "addIfFound", "obj", "resolveObjectKey", "Config", "_config", "_scopeCache", "_resolverCache", "platform", "clearCache", "clear", "datasetScopeKeys", "datasetType", "datasetAnimationScopeKeys", "transition", "datasetElementScopeKeys", "elementType", "additionalOptionScopes", "_cachedScopes", "mainScope", "resetCache", "keyLists", "cached", "Array", "from", "has", "chartOptionScopes", "resolveNamedOptions", "names", "prefixes", "$shared", "resolver", "subPrefixes", "getResolver", "needContext", "isFunction", "subResolver", "_attachContext", "descriptorDefaults", "resolverCache", "_createResolver", "p", "hasFunction", "getOwnPropertyNames", "isScriptable", "isIndexable", "KNOWN_POSITIONS", "positionIsHorizontal", "compare2Level", "l1", "l2", "onAnimationsComplete", "animationOptions", "onComplete", "onAnimationProgress", "onProgress", "getCanvas", "getElementById", "instances", "getChart", "values", "c", "moveNumericKeys", "move", "intKey", "determineLastEvent", "lastEvent", "inChartArea", "isClick", "Chart", "invalidatePlugins", "userConfig", "initialCanvas", "existingChart", "uid", "_options", "_aspectRatio", "_metasets", "_stacks", "_active", "_lastEvent", "_listeners", "_responsiveListeners", "_sortedMetasets", "_plugins", "_hiddenIndices", "attached", "_animationsDisabled", "_doResize", "debounce", "mode", "resizeDelay", "_dataChanges", "animator", "listen", "_initialize", "maintainAspectRatio", "responsive", "retinaScale", "bindEvents", "clearCanvas", "stop", "running", "_resize", "_resizeBeforeDraw", "newSize", "newRatio", "onResize", "render", "ensureScalesHaveIDs", "scalesOptions", "axisOptions", "buildOrUpdateScales", "scaleOpts", "updated", "map", "isRadial", "dposition", "dtype", "scaleType", "scaleClass", "hasUpdated", "_updateMetasets", "numData", "numMeta", "_destroyDatasetMeta", "_removeUnreferencedMetasets", "_dataset", "buildOrUpdateControllers", "newControllers", "order", "visible", "isDatasetVisible", "updateIndex", "linkScales", "ControllerClass", "datasetElementType", "dataElementType", "_resetElements", "reset", "animsDisabled", "_updateScales", "_checkEventBindings", "_updateHiddenIndices", "buildOrUpdateElements", "getMaxOverflow", "_minPadding", "autoPadding", "_updateLayout", "_updateDatasets", "_eventHandler", "_updateHoverStyles", "existingEvents", "newEvents", "events", "setsEqual", "unbindEvents", "changes", "_getUniformDataChanges", "datasetCount", "makeSet", "changeSet", "noArea", "_idx", "_updateDataset", "_update", "layers", "_drawDatasets", "_getSortedDatasetMetas", "filterVisible", "_drawDataset", "clip", "getDatasetClipArea", "getElementsAtEventForMode", "Interaction", "hidden", "getVisibleDatasetCount", "setDatasetVisibility", "toggleDataVisibility", "getDataVisibility", "_updateVisibility", "dataIndex", "_resolveAnimations", "hide", "show", "_destroy", "_stop", "destroy", "toBase64Image", "toDataURL", "bindUserEvents", "bindResponsiveEvents", "listeners", "_add", "offsetX", "offsetY", "_remove", "detached", "updateHoverStyle", "prefix", "getActiveElements", "setActiveElements", "activeElements", "lastActive", "_elementsEqual", "isPluginEnabled", "pluginId", "replay", "hoverOptions", "hover", "deactivated", "activated", "eventFilter", "_handleEvent", "_getActiveElements", "_isClickEvent", "onHover", "onClick", "version", "clipSelf", "outerRadius", "innerRadius", "borderWidth", "borderJoinStyle", "outerAngleClip", "_normalizeAngle", "arc", "innerAngleClip", "clipWidth", "PI", "r", "endX", "endY", "startX", "startY", "closePath", "rect", "clipArc", "pixelMargin", "angleMargin", "toRadiusCorners", "_readValueToProps", "parseBorderRadius", "angleDelta", "o", "borderRadius", "halfThickness", "innerLimit", "computeOuterLimit", "val", "outerArcLimit", "outerStart", "outerEnd", "innerStart", "innerEnd", "rThetaToXY", "theta", "pathArc", "circular", "innerR", "spacingOffset", "alpha", "noSpacingInnerRadius", "noSpacingOuterRadius", "avNogSpacingRadius", "adjustedAngle", "beta", "angleOffset", "outerStartAdjustedRadius", "outerEndAdjustedRadius", "outerStartAdjustedAngle", "outerEndAdjustedAngle", "innerStartAdjustedRadius", "innerEndAdjustedRadius", "innerStartAdjustedAngle", "innerEndAdjustedAngle", "outerMidAdjustedAngle", "pCenter", "p4", "innerMidAdjustedAngle", "p8", "outerStartX", "outerStartY", "outerEndX", "outerEndY", "drawArc", "fullCircles", "circumference", "fill", "isNaN", "TAU", "inner", "borderAlign", "lineJoin", "selfJoin", "ArcElement", "chartX", "chartY", "rAdjust", "_circumference", "nonZeroBetween", "betweenAngles", "withinRadius", "_isBetween", "halfAngle", "halfRadius", "translate", "fix", "radiusOffset", "borderColor", "_scriptable", "_indexable", "setStyle", "lineCap", "borderCapStyle", "previous", "target", "getLineMethod", "stepped", "_steppedLineTo", "tension", "cubicInterpolationMode", "_bezierCurveTo", "pathVars", "points", "segment", "paramsStart", "paramsEnd", "segmentStart", "segmentEnd", "outside", "loop", "pathSegment", "line", "lineMethod", "prev", "fastPathSegment", "avgX", "countX", "prevX", "minY", "maxY", "lastY", "pointIndex", "drawX", "truncX", "_getSegmentMethod", "useFastPath", "_decimated", "_loop", "_getInterpolationMethod", "_steppedInterpolation", "_bezierInterpolation", "_pointInLine", "strokePathWithCache", "path", "_path", "Path2D", "strokePathDirect", "segments", "segmentMethod", "usePath2D", "LineElement", "animated", "_chart", "_fullLoop", "_points", "_segments", "_pointsUpdated", "_datasetIndex", "updateControlPoints", "_updateBezierControlPoints", "_computeSegments", "interpolate", "_boundSegments", "_interpolate", "interpolated", "capBezierPoints", "radius", "hitRadius", "PointElement", "parsed", "mouseX", "mouseY", "inXRange", "inYRange", "hoverRadius", "drawPoint", "hoverBorderWidth", "pointStyle", "getBarBounds", "bar", "base", "half", "skipOrLimit", "parseBorderWidth", "maxW", "maxH", "borderSkipped", "toTRBL", "l", "enableBorderRadius", "toTRBLCorners", "maxR", "enableBorder", "topLeft", "topRight", "bottomLeft", "bottomRight", "boundingRects", "bounds", "outer", "skipX", "skipY", "skipBoth", "hasRadius", "addNormalRectPath", "inflateRect", "amount", "refRect", "BarElement", "inflateAmount", "addRectPath", "addRoundedRectPath", "getBoxSize", "labelOpts", "fontSize", "boxHeight", "boxWidth", "usePointStyle", "Math", "min", "pointStyleWidth", "itemHeight", "max", "itemsEqual", "a", "b", "datasetIndex", "index", "Legend", "Element", "constructor", "config", "_added", "legendHitBoxes", "_hoveredItem", "doughnutMode", "chart", "options", "ctx", "legendItems", "undefined", "columnSizes", "lineWidths", "maxHeight", "maxWidth", "top", "bottom", "left", "right", "height", "width", "_margins", "position", "weight", "fullSize", "update", "margins", "setDimensions", "buildLabels", "fit", "isHorizontal", "labels", "call", "generateLabels", "filter", "item", "data", "sort", "reverse", "display", "labelFont", "toFont", "font", "size", "titleHeight", "_computeTitleHeight", "string", "_fitRows", "_fitCols", "padding", "hitboxes", "lineHeight", "totalHeight", "textAlign", "textBaseline", "row", "forEach", "legendItem", "i", "itemWidth", "measureText", "text", "length", "_itemHeight", "heightLimit", "totalWidth", "currentColWidth", "currentColHeight", "col", "calculateItemSize", "push", "adjustHitBoxes", "align", "rtl", "rtlHelper", "getRtlAdapter", "_alignStartEnd", "hitbox", "leftForLtr", "x", "draw", "clipArea", "_draw", "unclipArea", "opts", "defaultColor", "defaults", "color", "halfFontSize", "cursor", "drawTitle", "lineWidth", "drawLegendBox", "y", "isNaN", "save", "valueOrDefault", "fillStyle", "lineCap", "lineDashOffset", "lineJoin", "strokeStyle", "setLineDash", "lineDash", "drawOptions", "radius", "SQRT2", "pointStyle", "rotation", "borderWidth", "centerX", "xPlus", "centerY", "drawPointLegend", "yBoxTop", "xBoxLeft", "borderRadius", "toTRBLCorners", "beginPath", "Object", "values", "some", "v", "addRoundedRectPath", "w", "h", "rect", "fill", "stroke", "restore", "fillText", "renderText", "strikethrough", "hidden", "line", "overrideTextDirection", "textDirection", "fontColor", "textWidth", "setWidth", "realX", "_textX", "fontLineHeight", "calculateLegendItemHeight", "restoreTextDirection", "titleOpts", "title", "titleFont", "titlePadding", "toPadding", "topPaddingPlusHalfFontSize", "reduce", "acc", "_toLeftRightCenter", "_getLegendItemAt", "hitBox", "lh", "_isBetween", "handleEvent", "e", "isListened", "type", "hoveredItem", "previous", "sameItem", "onLeave", "onHover", "onClick", "calculateItemWidth", "calculateItemHeight", "legendItemText", "labelHeight", "id", "_element", "start", "_args", "legend", "layouts", "configure", "addBox", "stop", "removeBox", "beforeUpdate", "afterUpdate", "afterEvent", "args", "replay", "event", "ci", "isDatasetVisible", "hide", "show", "datasets", "useBorderRadius", "_getSortedDatasetMetas", "map", "meta", "style", "controller", "getStyle", "label", "backgroundColor", "visible", "borderCapStyle", "borderDash", "borderDashOffset", "borderJoinStyle", "borderColor", "descriptors", "_scriptable", "name", "startsWith", "includes", "positioners", "average", "items", "length", "i", "len", "xSet", "Set", "y", "count", "el", "element", "hasValue", "pos", "tooltipPosition", "add", "x", "size", "xAverage", "reduce", "a", "b", "nearest", "eventPosition", "minDistance", "Number", "POSITIVE_INFINITY", "nearestElement", "center", "getCenterPoint", "d", "distanceBetweenPoints", "tp", "pushOrConcat", "base", "toPush", "isArray", "Array", "prototype", "push", "apply", "splitNewlines", "str", "String", "indexOf", "split", "createTooltipItem", "chart", "item", "datasetIndex", "index", "controller", "getDatasetMeta", "label", "value", "getLabelAndValue", "parsed", "getParsed", "raw", "data", "datasets", "formattedValue", "dataset", "getDataset", "dataIndex", "getTooltipSize", "tooltip", "options", "ctx", "body", "footer", "title", "boxWidth", "boxHeight", "bodyFont", "toFont", "titleFont", "footerFont", "titleLineCount", "footerLineCount", "bodyLineItemCount", "padding", "toPadding", "height", "width", "combinedBodyLength", "bodyItem", "before", "lines", "after", "beforeBody", "afterBody", "lineHeight", "titleSpacing", "titleMarginBottom", "bodyLineHeight", "displayColors", "Math", "max", "bodySpacing", "footerMarginTop", "footerSpacing", "widthPadding", "maxLineWidth", "line", "measureText", "save", "font", "string", "each", "concat", "boxPadding", "restore", "determineYAlign", "doesNotFitWithAlign", "xAlign", "caret", "caretSize", "caretPadding", "determineXAlign", "yAlign", "chartWidth", "chartArea", "left", "right", "determineAlignment", "alignX", "alignY", "paddingAndSize", "getBackgroundPoint", "alignment", "cornerRadius", "topLeft", "topRight", "bottomLeft", "bottomRight", "toTRBLCorners", "_limitValue", "getAlignedX", "align", "getBeforeAfterBodyLines", "callback", "createTooltipContext", "parent", "tooltipItems", "createContext", "type", "overrideCallbacks", "callbacks", "context", "override", "defaultCallbacks", "beforeTitle", "noop", "labels", "labelCount", "mode", "afterTitle", "beforeLabel", "tooltipItem", "isNullOrUndef", "labelColor", "meta", "getStyle", "borderColor", "backgroundColor", "borderWidth", "borderDash", "borderDashOffset", "borderRadius", "labelTextColor", "bodyColor", "labelPointStyle", "pointStyle", "rotation", "afterLabel", "beforeFooter", "afterFooter", "invokeCallbackWithFallback", "name", "arg", "result", "call", "Tooltip", "Element", "constructor", "config", "opacity", "_active", "_eventPosition", "undefined", "_size", "_cachedAnimations", "_tooltipItems", "$animations", "$context", "dataPoints", "caretX", "caretY", "labelColors", "labelPointStyles", "labelTextColors", "initialize", "_resolveAnimations", "cached", "setContext", "getContext", "opts", "enabled", "animation", "animations", "Animations", "_cacheable", "Object", "freeze", "getTitle", "getBeforeBody", "getBody", "bodyItems", "scoped", "getAfterBody", "getFooter", "_createItems", "active", "filter", "array", "itemSort", "sort", "update", "changed", "replay", "properties", "position", "positionAndSize", "assign", "backgroundPoint", "external", "drawCaret", "tooltipPoint", "caretPosition", "getCaretPosition", "lineTo", "x1", "y1", "x2", "y2", "x3", "y3", "ptX", "ptY", "drawTitle", "pt", "rtlHelper", "getRtlAdapter", "rtl", "titleAlign", "textAlign", "textBaseline", "fillStyle", "titleColor", "fillText", "_drawColorBox", "colorX", "rtlColorX", "yOffSet", "colorY", "usePointStyle", "drawOptions", "radius", "min", "centerX", "leftForLtr", "centerY", "strokeStyle", "multiKeyBackground", "drawPoint", "lineWidth", "isObject", "values", "setLineDash", "lineDashOffset", "outerX", "innerX", "xPlus", "some", "v", "beginPath", "addRoundedRectPath", "w", "h", "fill", "stroke", "fillRect", "strokeRect", "drawBody", "bodyAlign", "xLinePadding", "fillLineOfText", "bodyAlignForCalculation", "textColor", "j", "ilen", "jlen", "drawFooter", "footerAlign", "footerColor", "drawBackground", "tooltipSize", "moveTo", "quadraticCurveTo", "closePath", "_updateAnimationTarget", "anims", "animX", "animY", "point", "_to", "_willRender", "draw", "abs", "hasTooltipContent", "globalAlpha", "overrideTextDirection", "textDirection", "top", "restoreTextDirection", "getActiveElements", "setActiveElements", "activeElements", "lastActive", "map", "Error", "_elementsEqual", "positionChanged", "_positionChanged", "_ignoreReplayEvents", "handleEvent", "e", "inChartArea", "_getActiveElements", "getElementsAtEventForMode", "reverse", "id", "_element", "afterInit", "_args", "beforeUpdate", "reset", "afterDraw", "args", "notifyPlugins", "cancelable", "afterEvent", "useFinalPosition", "event", "defaults", "weight", "duration", "easing", "numbers", "defaultRoutes", "descriptors", "_scriptable", "_indexable", "_fallback", "additionalOptionScopes", "addIfString", "labels", "raw", "index", "addedLabels", "push", "unshift", "label", "isNaN", "findOrAddLabel", "first", "indexOf", "last", "lastIndexOf", "validIndex", "max", "_limitValue", "Math", "round", "_getLabelForValue", "value", "getLabels", "length", "CategoryScale", "Scale", "constructor", "cfg", "_startValue", "undefined", "_valueRange", "_addedLabels", "init", "scaleOptions", "added", "splice", "parse", "isNullOrUndef", "isFinite", "valueOrDefault", "determineDataLimits", "minDefined", "maxDefined", "getUserBounds", "min", "getMinMax", "options", "bounds", "buildTicks", "offset", "ticks", "slice", "getLabelForValue", "call", "configure", "isHorizontal", "_reversePixels", "getPixelForValue", "NaN", "getPixelForDecimal", "getPixelForTick", "getValueForPixel", "pixel", "getDecimalForPixel", "getBasePixel", "bottom", "id", "defaults", "callback", "generateTicks", "generationOptions", "dataRange", "MIN_SPACING", "step", "precision", "count", "maxTicks", "maxDigits", "includeBounds", "unit", "maxSpaces", "rmin", "rmax", "countDefined", "minSpacing", "spacing", "niceNum", "factor", "niceMin", "niceMax", "numSpaces", "ceil", "floor", "pow", "almostWhole", "almostEquals", "decimalPlaces", "_decimalPlaces", "j", "relativeLabelSize", "tickValue", "horizontal", "minRotation", "rad", "toRadians", "ratio", "sin", "cos", "LinearScaleBase", "start", "end", "_endValue", "Number", "handleTickRangeOptions", "beginAtZero", "setMin", "v", "setMax", "minSign", "sign", "maxSign", "abs", "getTickLimit", "tickOpts", "maxTicksLimit", "stepSize", "console", "warn", "computeTickLimit", "POSITIVE_INFINITY", "opts", "numericGeneratorOptions", "_maxDigits", "_range", "_setMinAndMaxByKey", "reverse", "formatNumber", "chart", "locale", "format", "LinearScale", "width", "height", "tickFont", "_resolveTickFontOptions", "lineHeight", "Ticks", "formatters", "numeric", "log10Floor", "log10", "changeExponent", "m", "isMajor", "tickVal", "remain", "steps", "rangeExp", "rangeStep", "startExp", "range", "finiteOrDefault", "minExp", "exp", "base", "significand", "major", "lastTick", "LogarithmicScale", "prototype", "apply", "_zero", "_suggestedMin", "_userMin", "_userMax", "decimal", "logarithmic", "enabled", "getTickBackdropHeight", "display", "padding", "toPadding", "backdropPadding", "font", "size", "measureLabelSize", "ctx", "isArray", "w", "_longestText", "string", "h", "determineLimits", "angle", "pos", "fitWithPointLabels", "scale", "orig", "l", "left", "_padding", "r", "right", "t", "top", "b", "limits", "Object", "assign", "labelSizes", "valueCount", "_pointLabels", "pointLabelOpts", "pointLabels", "additionalAngle", "centerPointLabels", "PI", "i", "setContext", "getPointLabelContext", "pointPosition", "getPointPosition", "drawingArea", "plFont", "toFont", "textSize", "angleRadians", "_normalizeAngle", "getIndexAngle", "toDegrees", "hLimits", "x", "vLimits", "y", "updateLimits", "setCenterPoint", "_pointLabelItems", "buildPointLabelItems", "createPointLabelItem", "itemOpts", "outerDistance", "extra", "pointLabelPosition", "HALF_PI", "yForAngle", "textAlign", "getTextAlignForAngle", "leftForTextAlign", "visible", "isNotOverlapped", "item", "area", "apexesInArea", "_isPointInArea", "items", "align", "drawPointLabelBox", "backdropColor", "borderRadius", "toTRBLCorners", "fillStyle", "backdropLeft", "backdropTop", "backdropWidth", "backdropHeight", "values", "some", "beginPath", "addRoundedRectPath", "radius", "fill", "fillRect", "drawPointLabels", "labelCount", "optsAtIndex", "renderText", "color", "textBaseline", "pathRadiusLine", "circular", "arc", "xCenter", "yCenter", "TAU", "moveTo", "lineTo", "drawRadiusLine", "gridLineOpts", "borderOpts", "lineWidth", "save", "strokeStyle", "setLineDash", "dash", "lineDashOffset", "dashOffset", "closePath", "stroke", "restore", "createPointLabelContext", "parent", "createContext", "type", "RadialLinearScale", "setDimensions", "maxWidth", "maxHeight", "generateTickLabels", "map", "callCallback", "filter", "getDataVisibility", "fit", "leftMovement", "rightMovement", "topMovement", "bottomMovement", "angleMultiplier", "startAngle", "getDistanceFromCenterForValue", "scalingFactor", "getValueForDistanceFromCenter", "distance", "scaledDistance", "pointLabel", "getContext", "distanceFromCenter", "getPointPositionForValue", "getBasePosition", "getBaseValue", "getPointLabelPosition", "drawBackground", "backgroundColor", "grid", "drawGrid", "angleLines", "border", "position", "forEach", "tick", "context", "optsAtIndexBorder", "borderDash", "borderDashOffset", "drawBorder", "drawLabels", "translate", "rotate", "showLabelBackdrop", "measureText", "strokeColor", "textStrokeColor", "strokeWidth", "textStrokeWidth", "drawTitle", "animate", "defaultRoutes", "descriptors", "_fallback", "INTERVALS", "millisecond", "common", "second", "minute", "hour", "day", "week", "month", "quarter", "year", "UNITS", "keys", "sorter", "a", "input", "adapter", "_adapter", "parser", "isoWeekday", "_parseOpts", "isNumber", "startOf", "determineUnitForAutoTicks", "minUnit", "capacity", "ilen", "interval", "MAX_SAFE_INTEGER", "determineUnitForFormatting", "numTicks", "diff", "determineMajorUnit", "addTick", "time", "timestamps", "lo", "hi", "_lookup", "timestamp", "setMajorTicks", "majorUnit", "add", "ticksFromTimestamps", "TimeScale", "props", "_cache", "data", "all", "_unit", "_majorUnit", "_offsets", "_normalized", "scaleOpts", "adapters", "_date", "date", "mergeIf", "displayFormats", "formats", "normalized", "beforeLayout", "_applyBounds", "_getLabelBounds", "source", "Date", "now", "endOf", "arr", "getLabelTimestamps", "NEGATIVE_INFINITY", "timeOpts", "_generate", "_filterBetween", "autoSkip", "_getLabelCapacity", "initOffsets", "afterAutoSkip", "offsetAfterAutoskip", "getDecimalForValue", "limit", "minor", "weekday", "hasWeekday", "Error", "getDataTimestamps", "sort", "tooltipFormat", "datetime", "fmt", "_tickFormatFunction", "formatter", "minorFormat", "majorFormat", "offsets", "_getLabelSize", "ticksOpts", "tickLabelWidth", "maxRotation", "cosRotation", "sinRotation", "tickFontSize", "exampleTime", "exampleLabel", "metas", "getMatchingVisibleMetas", "controller", "getAllParsedValues", "concat", "normalize", "_arrayUnique", "interpolate", "table", "val", "prevSource", "nextSource", "prevTarget", "nextTarget", "_lookupByKey", "span", "TimeSeriesScale", "_table", "_minPos", "_tableRange", "_getTimestampsForTable", "buildLookupTable", "prev", "curr", "next", "includes", "a", "b", "EPSILON", "x", "from", "to", "y", "x2", "y2", "min", "i", "s", "getRelativePosition", "f", "start", "hooks", "measureLabelSize", "colors", "drawPoint", "l", "c", "positions", "end", "max", "dispatchEvent", "annotation", "updateLimits", "Element", "left", "top", "right", "bottom", "t", "v", "pt", "r", "offset", "pe", "p", "A", "B", "resolve", "add", "version", "draw", "todayIndex", "error", "e", "debounce", "error", "e", "$fp", "$modalBody", "e", "colors", "error", "error", "e", "FetchRequest", "resolve", "e", "tinymce", "e", "r", "jQuery", "t", "e", "i", "n", "r", "o", "s", "a", "l", "c", "u", "$", "h", "d", "g", "m", "p", "f", "b", "v", "A", "x", "global", "exports", "module", "x", "k", "a", "b", "c", "d", "s", "i", "n", "hi", "j", "hex", "clamp", "from", "to", "end", "SparkMD5", "hash", "callback", "start", "dispatchEvent", "error", "e", "i", "o", "n", "get", "fn", "w", "icons", "obj", "re", "g", "_", "p", "_setPrototypeOf", "_i", "_e", "noop", "_ref", "_ref2", "set", "d", "css", "styles", "s", "hooks", "listener", "bindInternal4", "a", "b", "c", "build", "lookup", "emptyCanonicalIcon", "defined", "v", "Library", "add", "k", "noAuto", "parse", "autoReplace", "bootstrap", "plugins", "shims", "main", "offset", "resolve", "begin", "end", "replace", "abstract", "callback", "style", "hclAdd", "hclRemove", "prefixes", "f", "render", "mask", "parseTransformString", "providers", "createPopper", "start", "start", "name", "style", "round", "round", "x", "y", "getComputedStyle", "getComputedStyle", "window", "min", "max", "v", "toPaddingObject", "popperOffsets", "min", "max", "offset", "effect", "x", "y", "round", "popper", "getComputedStyle", "effect", "window", "fn", "hash", "x", "y", "x", "y", "getComputedStyle", "getComputedStyle", "clippingParents", "getComputedStyle", "reference", "start", "popperOffsets", "offset", "placements", "placement", "a", "b", "placements", "placement", "i", "start", "_loop", "_i", "checks", "offset", "x", "y", "popperOffsets", "offset", "min", "max", "start", "round", "map", "debounce", "fn", "resolve", "p", "c", "self", "s", "fn", "merged", "defaultModifiers", "defaultOptions", "createPopper", "reference", "popper", "options", "m", "getComputedStyle", "fn", "debounce", "resolve", "destroy", "state", "effect", "noopFn", "createPopper", "defaultModifiers", "createPopper", "MAX_UID", "MILLISECONDS_MULTIPLIER", "TRANSITION_END", "toType", "object", "undefined", "Object", "prototype", "toString", "call", "match", "toLowerCase", "getUID", "prefix", "Math", "floor", "random", "document", "getElementById", "getSelector", "element", "selector", "getAttribute", "hrefAttribute", "includes", "startsWith", "split", "trim", "getSelectorFromElement", "querySelector", "getElementFromSelector", "getTransitionDurationFromElement", "transitionDuration", "transitionDelay", "window", "getComputedStyle", "floatTransitionDuration", "Number", "parseFloat", "floatTransitionDelay", "triggerTransitionEnd", "dispatchEvent", "Event", "isElement", "jquery", "nodeType", "getElement", "length", "isVisible", "getClientRects", "elementIsVisible", "getPropertyValue", "closedDetails", "closest", "summary", "parentNode", "isDisabled", "Node", "ELEMENT_NODE", "classList", "contains", "disabled", "hasAttribute", "findShadowRoot", "documentElement", "attachShadow", "getRootNode", "root", "ShadowRoot", "noop", "reflow", "offsetHeight", "getjQuery", "jQuery", "body", "DOMContentLoadedCallbacks", "onDOMContentLoaded", "callback", "readyState", "addEventListener", "push", "isRTL", "dir", "defineJQueryPlugin", "plugin", "$", "name", "NAME", "JQUERY_NO_CONFLICT", "fn", "jQueryInterface", "Constructor", "noConflict", "execute", "executeAfterTransition", "transitionElement", "waitForTransition", "durationPadding", "emulatedDuration", "called", "handler", "target", "removeEventListener", "setTimeout", "getNextActiveElement", "list", "activeElement", "shouldGetNext", "isCycleAllowed", "listLength", "index", "indexOf", "max", "min", "namespaceRegex", "stripNameRegex", "stripUidRegex", "eventRegistry", "uidEvent", "customEvents", "mouseenter", "mouseleave", "nativeEvents", "Set", "makeEventUid", "uid", "getElementEvents", "bootstrapHandler", "event", "hydrateObj", "delegateTarget", "oneOff", "EventHandler", "off", "type", "apply", "bootstrapDelegationHandler", "domElements", "querySelectorAll", "domElement", "findHandler", "events", "callable", "delegationSelector", "values", "find", "normalizeParameters", "originalTypeEvent", "delegationFunction", "isDelegated", "typeEvent", "getTypeEvent", "has", "addHandler", "wrapFunction", "relatedTarget", "handlers", "previousFunction", "replace", "removeHandler", "Boolean", "removeNamespacedHandlers", "namespace", "storeElementEvent", "handlerKey", "keys", "on", "one", "inNamespace", "isNamespace", "elementEvent", "slice", "keyHandlers", "trigger", "args", "jQueryEvent", "bubbles", "nativeDispatch", "defaultPrevented", "isPropagationStopped", "isImmediatePropagationStopped", "isDefaultPrevented", "evt", "cancelable", "preventDefault", "obj", "meta", "key", "value", "entries", "defineProperty", "configurable", "get", "elementMap", "Map", "set", "instance", "instanceMap", "size", "console", "error", "Array", "from", "remove", "delete", "normalizeData", "JSON", "parse", "decodeURIComponent", "normalizeDataKey", "chr", "Manipulator", "setDataAttribute", "setAttribute", "removeDataAttribute", "removeAttribute", "getDataAttributes", "attributes", "bsKeys", "dataset", "filter", "pureKey", "charAt", "getDataAttribute", "Config", "Default", "DefaultType", "Error", "_getConfig", "config", "_mergeConfigObj", "_configAfterMerge", "_typeCheckConfig", "jsonConfig", "constructor", "configTypes", "property", "expectedTypes", "valueType", "RegExp", "test", "TypeError", "toUpperCase", "VERSION", "BaseComponent", "_element", "_config", "Data", "DATA_KEY", "dispose", "EVENT_KEY", "propertyName", "getOwnPropertyNames", "_queueCallback", "isAnimated", "getInstance", "getOrCreateInstance", "eventName", "enableDismissTrigger", "component", "method", "clickEvent", "tagName", "EVENT_CLOSE", "EVENT_CLOSED", "CLASS_NAME_FADE", "CLASS_NAME_SHOW", "Alert", "close", "closeEvent", "_destroyElement", "each", "data", "DATA_API_KEY", "CLASS_NAME_ACTIVE", "SELECTOR_DATA_TOGGLE", "EVENT_CLICK_DATA_API", "Button", "toggle", "button", "SelectorEngine", "concat", "Element", "findOne", "children", "child", "matches", "parents", "ancestor", "prev", "previous", "previousElementSibling", "next", "nextElementSibling", "focusableChildren", "focusables", "map", "join", "el", "EVENT_TOUCHSTART", "EVENT_TOUCHMOVE", "EVENT_TOUCHEND", "EVENT_POINTERDOWN", "EVENT_POINTERUP", "POINTER_TYPE_TOUCH", "POINTER_TYPE_PEN", "CLASS_NAME_POINTER_EVENT", "SWIPE_THRESHOLD", "endCallback", "leftCallback", "rightCallback", "Swipe", "isSupported", "_deltaX", "_supportPointerEvents", "PointerEvent", "_initEvents", "_start", "touches", "clientX", "_eventIsPointerPenTouch", "_end", "_handleSwipe", "_move", "absDeltaX", "abs", "direction", "add", "pointerType", "navigator", "maxTouchPoints", "ARROW_LEFT_KEY", "ARROW_RIGHT_KEY", "TOUCHEVENT_COMPAT_WAIT", "ORDER_NEXT", "ORDER_PREV", "DIRECTION_LEFT", "DIRECTION_RIGHT", "EVENT_SLIDE", "EVENT_SLID", "EVENT_KEYDOWN", "EVENT_MOUSEENTER", "EVENT_MOUSELEAVE", "EVENT_DRAG_START", "EVENT_LOAD_DATA_API", "CLASS_NAME_CAROUSEL", "CLASS_NAME_SLIDE", "CLASS_NAME_END", "CLASS_NAME_START", "CLASS_NAME_NEXT", "CLASS_NAME_PREV", "SELECTOR_ACTIVE", "SELECTOR_ITEM", "SELECTOR_ACTIVE_ITEM", "SELECTOR_ITEM_IMG", "SELECTOR_INDICATORS", "SELECTOR_DATA_SLIDE", "SELECTOR_DATA_RIDE", "KEY_TO_DIRECTION", "interval", "keyboard", "pause", "ride", "touch", "wrap", "Carousel", "_interval", "_activeElement", "_isSliding", "touchTimeout", "_swipeHelper", "_indicatorsElement", "_addEventListeners", "cycle", "_slide", "nextWhenVisible", "hidden", "_clearInterval", "_updateInterval", "setInterval", "_maybeEnableCycle", "to", "items", "_getItems", "activeIndex", "_getItemIndex", "_getActive", "order", "defaultInterval", "_keydown", "_addTouchEventListeners", "img", "endCallBack", "clearTimeout", "swipeConfig", "_directionToOrder", "_setActiveIndicatorElement", "activeIndicator", "newActiveIndicator", "elementInterval", "parseInt", "isNext", "nextElement", "nextElementIndex", "triggerEvent", "_orderToDirection", "slideEvent", "isCycling", "directionalClassName", "orderClassName", "completeCallBack", "_isAnimated", "clearInterval", "carousel", "slideIndex", "carousels", "EVENT_SHOW", "EVENT_SHOWN", "EVENT_HIDE", "EVENT_HIDDEN", "CLASS_NAME_COLLAPSE", "CLASS_NAME_COLLAPSING", "CLASS_NAME_COLLAPSED", "CLASS_NAME_DEEPER_CHILDREN", "CLASS_NAME_HORIZONTAL", "WIDTH", "HEIGHT", "SELECTOR_ACTIVES", "parent", "Collapse", "_isTransitioning", "_triggerArray", "toggleList", "elem", "filterElement", "foundElement", "_initializeChildren", "_addAriaAndCollapsedClass", "_isShown", "hide", "show", "activeChildren", "_getFirstLevelChildren", "startEvent", "activeInstance", "dimension", "_getDimension", "style", "complete", "capitalizedDimension", "scrollSize", "getBoundingClientRect", "selected", "triggerArray", "isOpen", "selectorElements", "ESCAPE_KEY", "TAB_KEY", "ARROW_UP_KEY", "ARROW_DOWN_KEY", "RIGHT_MOUSE_BUTTON", "EVENT_KEYDOWN_DATA_API", "EVENT_KEYUP_DATA_API", "CLASS_NAME_DROPUP", "CLASS_NAME_DROPEND", "CLASS_NAME_DROPSTART", "CLASS_NAME_DROPUP_CENTER", "CLASS_NAME_DROPDOWN_CENTER", "SELECTOR_DATA_TOGGLE_SHOWN", "SELECTOR_MENU", "SELECTOR_NAVBAR", "SELECTOR_NAVBAR_NAV", "SELECTOR_VISIBLE_ITEMS", "PLACEMENT_TOP", "PLACEMENT_TOPEND", "PLACEMENT_BOTTOM", "PLACEMENT_BOTTOMEND", "PLACEMENT_RIGHT", "PLACEMENT_LEFT", "PLACEMENT_TOPCENTER", "PLACEMENT_BOTTOMCENTER", "autoClose", "boundary", "display", "offset", "popperConfig", "reference", "Dropdown", "_popper", "_parent", "_menu", "_inNavbar", "_detectNavbar", "showEvent", "_createPopper", "focus", "_completeHide", "destroy", "update", "hideEvent", "Popper", "referenceElement", "_getPopperConfig", "createPopper", "_getPlacement", "parentDropdown", "isEnd", "_getOffset", "popperData", "defaultBsPopperConfig", "placement", "modifiers", "options", "enabled", "_selectMenuItem", "clearMenus", "openToggles", "context", "composedPath", "isMenuTarget", "dataApiKeydownHandler", "isInput", "isEscapeEvent", "isUpOrDownEvent", "getToggleButton", "stopPropagation", "SELECTOR_FIXED_CONTENT", "SELECTOR_STICKY_CONTENT", "PROPERTY_PADDING", "PROPERTY_MARGIN", "ScrollBarHelper", "getWidth", "documentWidth", "clientWidth", "innerWidth", "width", "_disableOverFlow", "_setElementAttributes", "calculatedValue", "reset", "_resetElementAttributes", "isOverflowing", "_saveInitialAttribute", "overflow", "styleProperty", "scrollbarWidth", "manipulationCallBack", "setProperty", "_applyManipulationCallback", "actualValue", "removeProperty", "callBack", "sel", "EVENT_MOUSEDOWN", "className", "clickCallback", "rootElement", "Backdrop", "_isAppended", "_append", "_getElement", "_emulateAnimation", "backdrop", "createElement", "append", "EVENT_FOCUSIN", "EVENT_KEYDOWN_TAB", "TAB_NAV_FORWARD", "TAB_NAV_BACKWARD", "autofocus", "trapElement", "FocusTrap", "_isActive", "_lastTabNavDirection", "activate", "_handleFocusin", "_handleKeydown", "deactivate", "elements", "shiftKey", "EVENT_HIDE_PREVENTED", "EVENT_RESIZE", "EVENT_CLICK_DISMISS", "EVENT_MOUSEDOWN_DISMISS", "EVENT_KEYDOWN_DISMISS", "CLASS_NAME_OPEN", "CLASS_NAME_STATIC", "OPEN_SELECTOR", "SELECTOR_DIALOG", "SELECTOR_MODAL_BODY", "Modal", "_dialog", "_backdrop", "_initializeBackDrop", "_focustrap", "_initializeFocusTrap", "_scrollBar", "_adjustDialog", "_showElement", "_hideModal", "htmlElement", "handleUpdate", "scrollTop", "modalBody", "transitionComplete", "_triggerBackdropTransition", "event2", "_resetAdjustments", "isModalOverflowing", "scrollHeight", "clientHeight", "initialOverflowY", "overflowY", "isBodyOverflowing", "paddingLeft", "paddingRight", "alreadyOpen", "CLASS_NAME_SHOWING", "CLASS_NAME_HIDING", "CLASS_NAME_BACKDROP", "scroll", "Offcanvas", "blur", "completeCallback", "position", "uriAttributes", "ARIA_ATTRIBUTE_PATTERN", "SAFE_URL_PATTERN", "DATA_URL_PATTERN", "allowedAttribute", "attribute", "allowedAttributeList", "attributeName", "nodeName", "nodeValue", "attributeRegex", "some", "regex", "DefaultAllowlist", "a", "area", "b", "br", "col", "code", "div", "em", "hr", "h1", "h2", "h3", "h4", "h5", "h6", "i", "li", "ol", "p", "pre", "s", "small", "span", "sub", "sup", "strong", "u", "ul", "sanitizeHtml", "unsafeHtml", "allowList", "sanitizeFunction", "domParser", "DOMParser", "createdDocument", "parseFromString", "elementName", "attributeList", "allowedAttributes", "innerHTML", "content", "extraClass", "html", "sanitize", "sanitizeFn", "template", "DefaultContentType", "entry", "TemplateFactory", "getContent", "_resolvePossibleFunction", "hasContent", "changeContent", "_checkContent", "toHtml", "templateWrapper", "_maybeSanitize", "text", "_setContent", "arg", "templateElement", "_putElementInTemplate", "textContent", "DISALLOWED_ATTRIBUTES", "CLASS_NAME_MODAL", "SELECTOR_TOOLTIP_INNER", "SELECTOR_MODAL", "EVENT_MODAL_HIDE", "TRIGGER_HOVER", "TRIGGER_FOCUS", "TRIGGER_CLICK", "TRIGGER_MANUAL", "EVENT_INSERTED", "EVENT_CLICK", "EVENT_FOCUSOUT", "AttachmentMap", "AUTO", "TOP", "RIGHT", "BOTTOM", "LEFT", "animation", "container", "customClass", "delay", "fallbackPlacements", "title", "Tooltip", "_isEnabled", "_timeout", "_isHovered", "_activeTrigger", "_templateFactory", "_newContent", "tip", "_setListeners", "_fixTitle", "enable", "disable", "toggleEnabled", "click", "_leave", "_enter", "_hideModalHandler", "_disposePopper", "_isWithContent", "shadowRoot", "isInTheDom", "ownerDocument", "_getTipElement", "_isWithActiveTrigger", "_getTitle", "_createTipElement", "_getContentForTemplate", "_getTemplateFactory", "tipId", "setContent", "_initializeOnDelegatedTarget", "_getDelegateConfig", "attachment", "phase", "state", "triggers", "eventIn", "eventOut", "_setTimeout", "timeout", "dataAttributes", "dataAttribute", "SELECTOR_TITLE", "SELECTOR_CONTENT", "Popover", "_getContent", "EVENT_ACTIVATE", "CLASS_NAME_DROPDOWN_ITEM", "SELECTOR_DATA_SPY", "SELECTOR_TARGET_LINKS", "SELECTOR_NAV_LIST_GROUP", "SELECTOR_NAV_LINKS", "SELECTOR_NAV_ITEMS", "SELECTOR_LIST_ITEMS", "SELECTOR_LINK_ITEMS", "SELECTOR_DROPDOWN", "SELECTOR_DROPDOWN_TOGGLE", "rootMargin", "smoothScroll", "threshold", "ScrollSpy", "_targetLinks", "_observableSections", "_rootElement", "_activeTarget", "_observer", "_previousScrollData", "visibleEntryTop", "parentScrollTop", "refresh", "_initializeTargetsAndObservables", "_maybeEnableSmoothScroll", "disconnect", "_getNewObserver", "section", "observe", "observableSection", "hash", "height", "offsetTop", "scrollTo", "top", "behavior", "IntersectionObserver", "_observerCallback", "targetElement", "id", "_process", "userScrollsDown", "isIntersecting", "_clearActiveClass", "entryIsLowerThanPrevious", "targetLinks", "anchor", "_activateParents", "listGroup", "item", "activeNodes", "node", "spy", "CLASS_DROPDOWN", "SELECTOR_DROPDOWN_MENU", "NOT_SELECTOR_DROPDOWN_TOGGLE", "SELECTOR_TAB_PANEL", "SELECTOR_OUTER", "SELECTOR_INNER", "SELECTOR_INNER_ELEM", "SELECTOR_DATA_TOGGLE_ACTIVE", "Tab", "_setInitialAttributes", "_getChildren", "innerElem", "_elemIsActive", "active", "_getActiveElem", "_deactivate", "_activate", "relatedElem", "_toggleDropDown", "nextActiveElement", "preventScroll", "_setAttributeIfNotExists", "_setInitialAttributesOnChild", "_getInnerElement", "isActive", "outerElem", "_getOuterElement", "_setInitialAttributesOnTargetPanel", "open", "EVENT_MOUSEOVER", "EVENT_MOUSEOUT", "CLASS_NAME_HIDE", "autohide", "Toast", "_hasMouseInteraction", "_hasKeyboardInteraction", "_clearTimeout", "_maybeScheduleHide", "isShown", "_onInteraction", "isInteracting", "resolve", "Tooltip", "e"]
}
