{
  "version": 3,
  "sources": ["../../../node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@rails/actioncable/src/index.js", "../../../node_modules/namespace-emitter/index.js", "../../../node_modules/lodash/isObject.js", "../../../node_modules/lodash/_freeGlobal.js", "../../../node_modules/lodash/_root.js", "../../../node_modules/lodash/now.js", "../../../node_modules/lodash/_trimmedEndIndex.js", "../../../node_modules/lodash/_baseTrim.js", "../../../node_modules/lodash/_Symbol.js", "../../../node_modules/lodash/_getRawTag.js", "../../../node_modules/lodash/_objectToString.js", "../../../node_modules/lodash/_baseGetTag.js", "../../../node_modules/lodash/isObjectLike.js", "../../../node_modules/lodash/isSymbol.js", "../../../node_modules/lodash/toNumber.js", "../../../node_modules/lodash/debounce.js", "../../../node_modules/lodash/throttle.js", "../../../node_modules/@uppy/core/node_modules/@transloadit/prettier-bytes/prettierBytes.js", "../../../node_modules/wildcard/index.js", "../../../node_modules/mime-match/index.js", "../../../node_modules/classnames/index.js", "../../../node_modules/@transloadit/prettier-bytes/src/prettierBytes.ts", "../../../node_modules/eventemitter3/index.js", "../../../node_modules/is-shallow-equal/index.js", "../../../node_modules/retry/lib/retry_operation.js", "../../../node_modules/retry/lib/retry.js", "../../../node_modules/retry/index.js", "../../../node_modules/jquery/dist/jquery.js", "../../../node_modules/toastr/toastr.js", "../../../node_modules/intl-tel-input/build/js/intlTelInput.js", "../../../node_modules/intl-tel-input/build/js/utils.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/form_submissions.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../javascript/controllers/accordion_controller.js", "../../javascript/controllers/collapse_controller.js", "../../javascript/controllers/copy_to_clipboard_controller.js", "../../../node_modules/@uppy/utils/lib/Translator.js", "../../../node_modules/@uppy/core/lib/Uppy.js", "../../../node_modules/nanoid/non-secure/index.js", "../../../node_modules/@uppy/store-default/lib/index.js", "../../../node_modules/@uppy/utils/lib/getFileNameAndExtension.js", "../../../node_modules/@uppy/utils/lib/mimeTypes.js", "../../../node_modules/@uppy/utils/lib/getFileType.js", "../../../node_modules/@uppy/utils/lib/generateFileID.js", "../../../node_modules/@uppy/core/lib/supportsUploadProgress.js", "../../../node_modules/@uppy/core/lib/getFileName.js", "../../../node_modules/@uppy/utils/lib/getTimeStamp.js", "../../../node_modules/@uppy/core/lib/loggers.js", "../../../node_modules/@uppy/core/lib/Restricter.js", "../../../node_modules/@uppy/core/lib/locale.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/src/util.js", "../../../node_modules/preact/src/options.js", "../../../node_modules/preact/src/create-element.js", "../../../node_modules/preact/src/component.js", "../../../node_modules/preact/src/create-context.js", "../../../node_modules/preact/src/diff/children.js", "../../../node_modules/preact/src/diff/props.js", "../../../node_modules/preact/src/diff/index.js", "../../../node_modules/preact/src/render.js", "../../../node_modules/preact/src/clone-element.js", "../../../node_modules/preact/src/diff/catch-error.js", "../../../node_modules/@uppy/utils/lib/isDOMElement.js", "../../../node_modules/@uppy/utils/lib/findDOMElement.js", "../../../node_modules/@uppy/utils/lib/getTextDirection.js", "../../../node_modules/@uppy/core/lib/BasePlugin.js", "../../../node_modules/@uppy/core/lib/UIPlugin.js", "../../../node_modules/@uppy/utils/lib/emaFilter.js", "../../../node_modules/@uppy/status-bar/lib/StatusBarStates.js", "../../../node_modules/@uppy/status-bar/lib/StatusBarUI.js", "../../../node_modules/@uppy/status-bar/lib/calculateProcessingProgress.js", "../../../node_modules/@uppy/status-bar/lib/Components.js", "../../../node_modules/@uppy/utils/lib/secondsToTime.js", "../../../node_modules/@uppy/utils/lib/prettyETA.js", "../../../node_modules/@uppy/status-bar/lib/locale.js", "../../../node_modules/@uppy/status-bar/lib/StatusBar.js", "../../../node_modules/@uppy/informer/lib/FadeIn.js", "../../../node_modules/@uppy/informer/lib/TransitionGroup.js", "../../../node_modules/@uppy/informer/lib/Informer.js", "../../../node_modules/@uppy/utils/lib/dataURItoBlob.js", "../../../node_modules/@uppy/utils/lib/isObjectURL.js", "../../../node_modules/@uppy/utils/lib/isPreviewSupported.js", "../../../node_modules/exifr/dist/mini.esm.mjs", "../../../node_modules/@uppy/thumbnail-generator/lib/locale.js", "../../../node_modules/@uppy/thumbnail-generator/lib/index.js", "../../../node_modules/@uppy/utils/lib/findAllDOMElements.js", "../../../node_modules/@uppy/utils/lib/toArray.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/fallbackApi.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/index.js", "../../../node_modules/eventemitter3/index.mjs", "../../../node_modules/p-timeout/index.js", "../../../node_modules/p-queue/dist/lower-bound.js", "../../../node_modules/p-queue/dist/priority-queue.js", "../../../node_modules/p-queue/dist/index.js", "../../../node_modules/preact/hooks/src/index.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/AuthView.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/User.js", "../../../node_modules/@uppy/provider-views/lib/Breadcrumbs.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/Header.js", "../../../node_modules/@uppy/provider-views/lib/Browser.js", "../../../node_modules/@uppy/utils/lib/remoteFileObjToLocal.js", "../../../node_modules/@uppy/utils/lib/VirtualList.js", "../../../node_modules/@uppy/provider-views/lib/SearchFilterInput.js", "../../../node_modules/@uppy/provider-views/lib/FooterActions.js", "../../../node_modules/@uppy/provider-views/lib/Item/index.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/ItemIcon.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/GridLi.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/ListLi.js", "../../../node_modules/@uppy/provider-views/lib/CloseWrapper.js", "../../../node_modules/@uppy/provider-views/lib/View.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/ProviderView.js", "../../../node_modules/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js", "../../../node_modules/memoize-one/dist/memoize-one.esm.js", "../../../node_modules/@uppy/utils/lib/FOCUSABLE_ELEMENTS.js", "../../../node_modules/@uppy/dashboard/lib/utils/getActiveOverlayEl.js", "../../../node_modules/@uppy/dashboard/lib/utils/trapFocus.js", "../../../node_modules/@uppy/dashboard/lib/utils/createSuperFocus.js", "../../../node_modules/@uppy/dashboard/lib/components/Dashboard.js", "../../../node_modules/@uppy/utils/lib/isDragDropSupported.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/index.js", "../../../node_modules/@uppy/dashboard/lib/utils/getFileTypeIcon.js", "../../../node_modules/@uppy/dashboard/lib/components/FilePreview.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileProgress/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileInfo/index.js", "../../../node_modules/@uppy/utils/lib/truncateString.js", "../../../node_modules/@uppy/dashboard/lib/utils/copyToClipboard.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/Buttons/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileList.js", "../../../node_modules/@uppy/dashboard/lib/components/AddFiles.js", "../../../node_modules/@uppy/dashboard/lib/components/AddFilesPanel.js", "../../../node_modules/@uppy/dashboard/lib/components/PickerPanelContent.js", "../../../node_modules/@uppy/dashboard/lib/utils/ignoreEvent.js", "../../../node_modules/@uppy/dashboard/lib/components/EditorPanel.js", "../../../node_modules/@uppy/dashboard/lib/components/PickerPanelTopBar.js", "../../../node_modules/@uppy/dashboard/lib/components/FileCard/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileCard/RenderMetaFields.js", "../../../node_modules/@uppy/dashboard/lib/components/Slide.js", "../../../node_modules/@uppy/dashboard/lib/locale.js", "../../../node_modules/@uppy/dashboard/lib/Dashboard.js", "../../../node_modules/get-form-data/es/index.js", "../../../node_modules/@uppy/form/lib/index.js", "../../../node_modules/@uppy/file-input/lib/locale.js", "../../../node_modules/@uppy/file-input/lib/FileInput.js", "../../../node_modules/@uppy/utils/lib/UserFacingApiError.js", "../../../node_modules/p-retry/index.js", "../../../node_modules/is-network-error/index.js", "../../../node_modules/@uppy/utils/lib/NetworkError.js", "../../../node_modules/@uppy/utils/lib/fetchWithNetworkError.js", "../../../node_modules/@uppy/utils/lib/hasProperty.js", "../../../node_modules/@uppy/utils/lib/ErrorWithCause.js", "../../../node_modules/@uppy/utils/lib/emitSocketProgress.js", "../../../node_modules/@uppy/utils/lib/getSocketHost.js", "../../../node_modules/@uppy/companion-client/lib/AuthError.js", "../../../node_modules/@uppy/companion-client/lib/RequestClient.js", "../../../node_modules/@uppy/companion-client/lib/Socket.js", "../../../node_modules/@uppy/utils/lib/EventManager.js", "../../../node_modules/@uppy/utils/lib/RateLimitedQueue.js", "../../../node_modules/@uppy/utils/lib/fileFilters.js", "../../../node_modules/@uppy/utils/lib/AbortController.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/MultipartUploader.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/createSignedURL.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/index.js", "../../../node_modules/@uppy/locales/lib/fr_FR.js", "../../javascript/controllers/direct_upload_form_controller.js", "../../javascript/controllers/direct_upload_input_controller.js", "../../javascript/controllers/file_back_selection_menu_controller.js", "../../javascript/controllers/flash_controller.js", "../../javascript/controllers/form_controller.js", "../../javascript/controllers/hello_controller.js", "../../javascript/controllers/lemonway_iframe_controller.js", "../../javascript/controllers/mobile_sidebar_controller.js", "../../javascript/controllers/modal_controller.js", "../../../node_modules/@popperjs/core/lib/enums.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/math.js", "../../../node_modules/@popperjs/core/lib/utils/userAgent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../../../node_modules/@popperjs/core/lib/utils/within.js", "../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../../../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../../../node_modules/@popperjs/core/lib/utils/getVariation.js", "../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../../../node_modules/@popperjs/core/lib/modifiers/flip.js", "../../../node_modules/@popperjs/core/lib/modifiers/hide.js", "../../../node_modules/@popperjs/core/lib/modifiers/offset.js", "../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../../../node_modules/@popperjs/core/lib/utils/debounce.js", "../../../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../../../node_modules/@popperjs/core/lib/createPopper.js", "../../../node_modules/@popperjs/core/lib/popper.js", "../../javascript/controllers/popper_controller.js", "../../javascript/controllers/profile_switcher_controller.js", "../../javascript/controllers/sign_controller.js", "../../javascript/controllers/scrollspy_controller.js", "../../javascript/controllers/users/profiles/kyc_document_form_controller.js", "../../javascript/controllers/users/profiles/recovery_fee_collections/subscription_form_controller.js", "../../javascript/controllers/universign_controller.js", "../../javascript/controllers/phone_input_controller.js", "../../javascript/controllers/verification_code_controller.js", "../../javascript/controllers/index.js", "../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js", "../../javascript/channels/consumer.js", "../../javascript/channels/export_channel.js", "../../javascript/application.js"],
  "sourcesContent": ["export default {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\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    \"remote\": \"remote\"\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      const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n      if (this.webSocket) { this.uninstallEventHandlers() }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\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  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0\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        if (this.triedToReconnect()) {\n          this.reconnectAttempted = true\n        }\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        if (this.reconnectAttempted) {\n          this.reconnectAttempted = false\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n        } else {\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n        }\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    this.subprotocols = []\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  addSubProtocol(subprotocol) {\n    this.subprotocols = [...this.subprotocols, subprotocol]\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* Create an event emitter with namespaces\n* @name createNamespaceEmitter\n* @example\n* var emitter = require('./index')()\n*\n* emitter.on('*', function () {\n*   console.log('all events emitted', this.event)\n* })\n*\n* emitter.on('example', function () {\n*   console.log('example event emitted')\n* })\n*/\nmodule.exports = function createNamespaceEmitter () {\n  var emitter = {}\n  var _fns = emitter._fns = {}\n\n  /**\n  * Emit an event. Optionally namespace the event. Handlers are fired in the order in which they were added with exact matches taking precedence. Separate the namespace and event with a `:`\n  * @name emit\n  * @param {String} event \u2013 the name of the event, with optional namespace\n  * @param {...*} data \u2013 up to 6 arguments that are passed to the event listener\n  * @example\n  * emitter.emit('example')\n  * emitter.emit('demo:test')\n  * emitter.emit('data', { example: true}, 'a string', 1)\n  */\n  emitter.emit = function emit (event, arg1, arg2, arg3, arg4, arg5, arg6) {\n    var toEmit = getListeners(event)\n\n    if (toEmit.length) {\n      emitAll(event, toEmit, [arg1, arg2, arg3, arg4, arg5, arg6])\n    }\n  }\n\n  /**\n  * Create en event listener.\n  * @name on\n  * @param {String} event\n  * @param {Function} fn\n  * @example\n  * emitter.on('example', function () {})\n  * emitter.on('demo', function () {})\n  */\n  emitter.on = function on (event, fn) {\n    if (!_fns[event]) {\n      _fns[event] = []\n    }\n\n    _fns[event].push(fn)\n  }\n\n  /**\n  * Create en event listener that fires once.\n  * @name once\n  * @param {String} event\n  * @param {Function} fn\n  * @example\n  * emitter.once('example', function () {})\n  * emitter.once('demo', function () {})\n  */\n  emitter.once = function once (event, fn) {\n    function one () {\n      fn.apply(this, arguments)\n      emitter.off(event, one)\n    }\n    this.on(event, one)\n  }\n\n  /**\n  * Stop listening to an event. Stop all listeners on an event by only passing the event name. Stop a single listener by passing that event handler as a callback.\n  * You must be explicit about what will be unsubscribed: `emitter.off('demo')` will unsubscribe an `emitter.on('demo')` listener,\n  * `emitter.off('demo:example')` will unsubscribe an `emitter.on('demo:example')` listener\n  * @name off\n  * @param {String} event\n  * @param {Function} [fn] \u2013 the specific handler\n  * @example\n  * emitter.off('example')\n  * emitter.off('demo', function () {})\n  */\n  emitter.off = function off (event, fn) {\n    var keep = []\n\n    if (event && fn) {\n      var fns = this._fns[event]\n      var i = 0\n      var l = fns ? fns.length : 0\n\n      for (i; i < l; i++) {\n        if (fns[i] !== fn) {\n          keep.push(fns[i])\n        }\n      }\n    }\n\n    keep.length ? this._fns[event] = keep : delete this._fns[event]\n  }\n\n  function getListeners (e) {\n    var out = _fns[e] ? _fns[e] : []\n    var idx = e.indexOf(':')\n    var args = (idx === -1) ? [e] : [e.substring(0, idx), e.substring(idx + 1)]\n\n    var keys = Object.keys(_fns)\n    var i = 0\n    var l = keys.length\n\n    for (i; i < l; i++) {\n      var key = keys[i]\n      if (key === '*') {\n        out = out.concat(_fns[key])\n      }\n\n      if (args.length === 2 && args[0] === key) {\n        out = out.concat(_fns[key])\n        break\n      }\n    }\n\n    return out\n  }\n\n  function emitAll (e, fns, args) {\n    var i = 0\n    var l = fns.length\n\n    for (i; i < l; i++) {\n      if (!fns[i]) break\n      fns[i].event = e\n      fns[i].apply(fns[i], args)\n    }\n  }\n\n  return emitter\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", "var debounce = require('./debounce'),\n    isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nmodule.exports = throttle;\n", "// Adapted from https://github.com/Flet/prettier-bytes/\n// Changing 1000 bytes to 1024, so we can keep uppercase KB vs kB\n// ISC License (c) Dan Flettre https://github.com/Flet/prettier-bytes/blob/master/LICENSE\nmodule.exports = function prettierBytes (num) {\n  if (typeof num !== 'number' || isNaN(num)) {\n    throw new TypeError(`Expected a number, got ${typeof num}`)\n  }\n\n  const neg = num < 0\n  const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n  if (neg) {\n    num = -num\n  }\n\n  if (num < 1) {\n    return `${(neg ? '-' : '') + num} B`\n  }\n\n  const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n  num = Number(num / Math.pow(1024, exponent))\n  const unit = units[exponent]\n\n  if (num >= 10 || num % 1 === 0) {\n    // Do not show decimals when the number is two-digit, or if the number has no\n    // decimal component.\n    return `${(neg ? '-' : '') + num.toFixed(0)} ${unit}`\n  }\n  return `${(neg ? '-' : '') + num.toFixed(1)} ${unit}`\n}\n", "/* jshint node: true */\n'use strict';\n\n/**\n  # wildcard\n\n  Very simple wildcard matching, which is designed to provide the same\n  functionality that is found in the\n  [eve](https://github.com/adobe-webplatform/eve) eventing library.\n\n  ## Usage\n\n  It works with strings:\n\n  <<< examples/strings.js\n\n  Arrays:\n\n  <<< examples/arrays.js\n\n  Objects (matching against keys):\n\n  <<< examples/objects.js\n\n  While the library works in Node, if you are are looking for file-based\n  wildcard matching then you should have a look at:\n\n  <https://github.com/isaacs/node-glob>\n**/\n\nfunction WildcardMatcher(text, separator) {\n  this.text = text = text || '';\n  this.hasWild = ~text.indexOf('*');\n  this.separator = separator;\n  this.parts = text.split(separator);\n}\n\nWildcardMatcher.prototype.match = function(input) {\n  var matches = true;\n  var parts = this.parts;\n  var ii;\n  var partsCount = parts.length;\n  var testParts;\n\n  if (typeof input == 'string' || input instanceof String) {\n    if (!this.hasWild && this.text != input) {\n      matches = false;\n    } else {\n      testParts = (input || '').split(this.separator);\n      for (ii = 0; matches && ii < partsCount; ii++) {\n        if (parts[ii] === '*')  {\n          continue;\n        } else if (ii < testParts.length) {\n          matches = parts[ii] === testParts[ii];\n        } else {\n          matches = false;\n        }\n      }\n\n      // If matches, then return the component parts\n      matches = matches && testParts;\n    }\n  }\n  else if (typeof input.splice == 'function') {\n    matches = [];\n\n    for (ii = input.length; ii--; ) {\n      if (this.match(input[ii])) {\n        matches[matches.length] = input[ii];\n      }\n    }\n  }\n  else if (typeof input == 'object') {\n    matches = {};\n\n    for (var key in input) {\n      if (this.match(key)) {\n        matches[key] = input[key];\n      }\n    }\n  }\n\n  return matches;\n};\n\nmodule.exports = function(text, test, separator) {\n  var matcher = new WildcardMatcher(text, separator || /[\\/\\.]/);\n  if (typeof test != 'undefined') {\n    return matcher.match(test);\n  }\n\n  return matcher;\n};\n", "var wildcard = require('wildcard');\nvar reMimePartSplit = /[\\/\\+\\.]/;\n\n/**\n  # mime-match\n\n  A simple function to checker whether a target mime type matches a mime-type\n  pattern (e.g. image/jpeg matches image/jpeg OR image/*).\n\n  ## Example Usage\n\n  <<< example.js\n\n**/\nmodule.exports = function(target, pattern) {\n  function test(pattern) {\n    var result = wildcard(pattern, target, reMimePartSplit);\n\n    // ensure that we have a valid mime type (should have two parts)\n    return result && result.length >= 2;\n  }\n\n  return pattern ? test(pattern.split(';')[0]) : test;\n};\n", "/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n", "// Adapted from https://github.com/Flet/prettier-bytes/\n// Changing 1000 bytes to 1024, so we can keep uppercase KB vs kB\n// ISC License (c) Dan Flettre https://github.com/Flet/prettier-bytes/blob/master/LICENSE\nexport = function prettierBytes(num: number): string {\n  if (typeof num !== 'number' || Number.isNaN(num)) {\n    throw new TypeError(`Expected a number, got ${typeof num}`)\n  }\n\n  const neg = num < 0\n  const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n  if (neg) {\n    num = -num\n  }\n\n  if (num < 1) {\n    return `${(neg ? '-' : '') + num} B`\n  }\n\n  const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n  num = Number(num / 1024 ** exponent)\n  const unit = units[exponent]\n\n  if (num >= 10 || num % 1 === 0) {\n    // Do not show decimals when the number is two-digit, or if the number has no\n    // decimal component.\n    return `${(neg ? '-' : '') + num.toFixed(0)} ${unit}`\n  }\n\n  return `${(neg ? '-' : '') + num.toFixed(1)} ${unit}`\n}\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n", "module.exports = function isShallowEqual (a, b) {\n  if (a === b) return true\n  for (var i in a) if (!(i in b)) return false\n  for (var i in b) if (a[i] !== b[i]) return false\n  return true\n}\n", "function RetryOperation(timeouts, options) {\n  // Compatibility for the old (timeouts, retryForever) signature\n  if (typeof options === 'boolean') {\n    options = { forever: options };\n  }\n\n  this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n  this._timeouts = timeouts;\n  this._options = options || {};\n  this._maxRetryTime = options && options.maxRetryTime || Infinity;\n  this._fn = null;\n  this._errors = [];\n  this._attempts = 1;\n  this._operationTimeout = null;\n  this._operationTimeoutCb = null;\n  this._timeout = null;\n  this._operationStart = null;\n  this._timer = null;\n\n  if (this._options.forever) {\n    this._cachedTimeouts = this._timeouts.slice(0);\n  }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n  this._attempts = 1;\n  this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n  if (this._timeout) {\n    clearTimeout(this._timeout);\n  }\n  if (this._timer) {\n    clearTimeout(this._timer);\n  }\n\n  this._timeouts       = [];\n  this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n  if (this._timeout) {\n    clearTimeout(this._timeout);\n  }\n\n  if (!err) {\n    return false;\n  }\n  var currentTime = new Date().getTime();\n  if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n    this._errors.push(err);\n    this._errors.unshift(new Error('RetryOperation timeout occurred'));\n    return false;\n  }\n\n  this._errors.push(err);\n\n  var timeout = this._timeouts.shift();\n  if (timeout === undefined) {\n    if (this._cachedTimeouts) {\n      // retry forever, only keep last error\n      this._errors.splice(0, this._errors.length - 1);\n      timeout = this._cachedTimeouts.slice(-1);\n    } else {\n      return false;\n    }\n  }\n\n  var self = this;\n  this._timer = setTimeout(function() {\n    self._attempts++;\n\n    if (self._operationTimeoutCb) {\n      self._timeout = setTimeout(function() {\n        self._operationTimeoutCb(self._attempts);\n      }, self._operationTimeout);\n\n      if (self._options.unref) {\n          self._timeout.unref();\n      }\n    }\n\n    self._fn(self._attempts);\n  }, timeout);\n\n  if (this._options.unref) {\n      this._timer.unref();\n  }\n\n  return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n  this._fn = fn;\n\n  if (timeoutOps) {\n    if (timeoutOps.timeout) {\n      this._operationTimeout = timeoutOps.timeout;\n    }\n    if (timeoutOps.cb) {\n      this._operationTimeoutCb = timeoutOps.cb;\n    }\n  }\n\n  var self = this;\n  if (this._operationTimeoutCb) {\n    this._timeout = setTimeout(function() {\n      self._operationTimeoutCb();\n    }, self._operationTimeout);\n  }\n\n  this._operationStart = new Date().getTime();\n\n  this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n  console.log('Using RetryOperation.try() is deprecated');\n  this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n  console.log('Using RetryOperation.start() is deprecated');\n  this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n  return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n  return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n  if (this._errors.length === 0) {\n    return null;\n  }\n\n  var counts = {};\n  var mainError = null;\n  var mainErrorCount = 0;\n\n  for (var i = 0; i < this._errors.length; i++) {\n    var error = this._errors[i];\n    var message = error.message;\n    var count = (counts[message] || 0) + 1;\n\n    counts[message] = count;\n\n    if (count >= mainErrorCount) {\n      mainError = error;\n      mainErrorCount = count;\n    }\n  }\n\n  return mainError;\n};\n", "var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n  var timeouts = exports.timeouts(options);\n  return new RetryOperation(timeouts, {\n      forever: options && (options.forever || options.retries === Infinity),\n      unref: options && options.unref,\n      maxRetryTime: options && options.maxRetryTime\n  });\n};\n\nexports.timeouts = function(options) {\n  if (options instanceof Array) {\n    return [].concat(options);\n  }\n\n  var opts = {\n    retries: 10,\n    factor: 2,\n    minTimeout: 1 * 1000,\n    maxTimeout: Infinity,\n    randomize: false\n  };\n  for (var key in options) {\n    opts[key] = options[key];\n  }\n\n  if (opts.minTimeout > opts.maxTimeout) {\n    throw new Error('minTimeout is greater than maxTimeout');\n  }\n\n  var timeouts = [];\n  for (var i = 0; i < opts.retries; i++) {\n    timeouts.push(this.createTimeout(i, opts));\n  }\n\n  if (options && options.forever && !timeouts.length) {\n    timeouts.push(this.createTimeout(i, opts));\n  }\n\n  // sort the array numerically ascending\n  timeouts.sort(function(a,b) {\n    return a - b;\n  });\n\n  return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n  var random = (opts.randomize)\n    ? (Math.random() + 1)\n    : 1;\n\n  var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n  timeout = Math.min(timeout, opts.maxTimeout);\n\n  return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n  if (options instanceof Array) {\n    methods = options;\n    options = null;\n  }\n\n  if (!methods) {\n    methods = [];\n    for (var key in obj) {\n      if (typeof obj[key] === 'function') {\n        methods.push(key);\n      }\n    }\n  }\n\n  for (var i = 0; i < methods.length; i++) {\n    var method   = methods[i];\n    var original = obj[method];\n\n    obj[method] = function retryWrapper(original) {\n      var op       = exports.operation(options);\n      var args     = Array.prototype.slice.call(arguments, 1);\n      var callback = args.pop();\n\n      args.push(function(err) {\n        if (op.retry(err)) {\n          return;\n        }\n        if (err) {\n          arguments[0] = op.mainError();\n        }\n        callback.apply(this, arguments);\n      });\n\n      op.attempt(function() {\n        original.apply(obj, args);\n      });\n    }.bind(obj, original);\n    obj[method].options = options;\n  }\n};\n", "module.exports = require('./lib/retry');", "/*!\n * jQuery JavaScript Library v3.6.0\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: 2021-03-02T17:08Z\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 #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.0\",\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.6\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: 2021-02-16\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\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/* 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\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\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<8\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 (#9521)\n\t// Strict HTML recognition (#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 #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 (#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 #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 (#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 (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#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 (#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 (#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 (#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 (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #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 (#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 (#504, #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 as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\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\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 (#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\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 getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #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\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 (#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\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, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\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\trcustomProp = /^--/,\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 (#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 #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 (#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 )` (#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.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\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// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#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 classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\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\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\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\telem.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 classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\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\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\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\telem.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 type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\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\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\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = 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 (#14686, #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 (#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 (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#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 (#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// #7653, #8125, #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 (#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 #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 (#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 #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 (#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// #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 (#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// #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 #8605, #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// #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\nvar rtrim = /^[\\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, \"\" );\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// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n", "/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fj\u00E4llemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n    define(['jquery'], function ($) {\n        return (function () {\n            var $container;\n            var listener;\n            var toastId = 0;\n            var toastType = {\n                error: 'error',\n                info: 'info',\n                success: 'success',\n                warning: 'warning'\n            };\n\n            var toastr = {\n                clear: clear,\n                remove: remove,\n                error: error,\n                getContainer: getContainer,\n                info: info,\n                options: {},\n                subscribe: subscribe,\n                success: success,\n                version: '2.1.4',\n                warning: warning\n            };\n\n            var previousToast;\n\n            return toastr;\n\n            ////////////////\n\n            function error(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.error,\n                    iconClass: getOptions().iconClasses.error,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function getContainer(options, create) {\n                if (!options) { options = getOptions(); }\n                $container = $('#' + options.containerId);\n                if ($container.length) {\n                    return $container;\n                }\n                if (create) {\n                    $container = createContainer(options);\n                }\n                return $container;\n            }\n\n            function info(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.info,\n                    iconClass: getOptions().iconClasses.info,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function subscribe(callback) {\n                listener = callback;\n            }\n\n            function success(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.success,\n                    iconClass: getOptions().iconClasses.success,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function warning(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.warning,\n                    iconClass: getOptions().iconClasses.warning,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function clear($toastElement, clearOptions) {\n                var options = getOptions();\n                if (!$container) { getContainer(options); }\n                if (!clearToast($toastElement, options, clearOptions)) {\n                    clearContainer(options);\n                }\n            }\n\n            function remove($toastElement) {\n                var options = getOptions();\n                if (!$container) { getContainer(options); }\n                if ($toastElement && $(':focus', $toastElement).length === 0) {\n                    removeToast($toastElement);\n                    return;\n                }\n                if ($container.children().length) {\n                    $container.remove();\n                }\n            }\n\n            // internal functions\n\n            function clearContainer (options) {\n                var toastsToClear = $container.children();\n                for (var i = toastsToClear.length - 1; i >= 0; i--) {\n                    clearToast($(toastsToClear[i]), options);\n                }\n            }\n\n            function clearToast ($toastElement, options, clearOptions) {\n                var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n                if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n                    $toastElement[options.hideMethod]({\n                        duration: options.hideDuration,\n                        easing: options.hideEasing,\n                        complete: function () { removeToast($toastElement); }\n                    });\n                    return true;\n                }\n                return false;\n            }\n\n            function createContainer(options) {\n                $container = $('<div/>')\n                    .attr('id', options.containerId)\n                    .addClass(options.positionClass);\n\n                $container.appendTo($(options.target));\n                return $container;\n            }\n\n            function getDefaults() {\n                return {\n                    tapToDismiss: true,\n                    toastClass: 'toast',\n                    containerId: 'toast-container',\n                    debug: false,\n\n                    showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n                    showDuration: 300,\n                    showEasing: 'swing', //swing and linear are built into jQuery\n                    onShown: undefined,\n                    hideMethod: 'fadeOut',\n                    hideDuration: 1000,\n                    hideEasing: 'swing',\n                    onHidden: undefined,\n                    closeMethod: false,\n                    closeDuration: false,\n                    closeEasing: false,\n                    closeOnHover: true,\n\n                    extendedTimeOut: 1000,\n                    iconClasses: {\n                        error: 'toast-error',\n                        info: 'toast-info',\n                        success: 'toast-success',\n                        warning: 'toast-warning'\n                    },\n                    iconClass: 'toast-info',\n                    positionClass: 'toast-top-right',\n                    timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n                    titleClass: 'toast-title',\n                    messageClass: 'toast-message',\n                    escapeHtml: false,\n                    target: 'body',\n                    closeHtml: '<button type=\"button\">&times;</button>',\n                    closeClass: 'toast-close-button',\n                    newestOnTop: true,\n                    preventDuplicates: false,\n                    progressBar: false,\n                    progressClass: 'toast-progress',\n                    rtl: false\n                };\n            }\n\n            function publish(args) {\n                if (!listener) { return; }\n                listener(args);\n            }\n\n            function notify(map) {\n                var options = getOptions();\n                var iconClass = map.iconClass || options.iconClass;\n\n                if (typeof (map.optionsOverride) !== 'undefined') {\n                    options = $.extend(options, map.optionsOverride);\n                    iconClass = map.optionsOverride.iconClass || iconClass;\n                }\n\n                if (shouldExit(options, map)) { return; }\n\n                toastId++;\n\n                $container = getContainer(options, true);\n\n                var intervalId = null;\n                var $toastElement = $('<div/>');\n                var $titleElement = $('<div/>');\n                var $messageElement = $('<div/>');\n                var $progressElement = $('<div/>');\n                var $closeElement = $(options.closeHtml);\n                var progressBar = {\n                    intervalId: null,\n                    hideEta: null,\n                    maxHideTime: null\n                };\n                var response = {\n                    toastId: toastId,\n                    state: 'visible',\n                    startTime: new Date(),\n                    options: options,\n                    map: map\n                };\n\n                personalizeToast();\n\n                displayToast();\n\n                handleEvents();\n\n                publish(response);\n\n                if (options.debug && console) {\n                    console.log(response);\n                }\n\n                return $toastElement;\n\n                function escapeHtml(source) {\n                    if (source == null) {\n                        source = '';\n                    }\n\n                    return source\n                        .replace(/&/g, '&amp;')\n                        .replace(/\"/g, '&quot;')\n                        .replace(/'/g, '&#39;')\n                        .replace(/</g, '&lt;')\n                        .replace(/>/g, '&gt;');\n                }\n\n                function personalizeToast() {\n                    setIcon();\n                    setTitle();\n                    setMessage();\n                    setCloseButton();\n                    setProgressBar();\n                    setRTL();\n                    setSequence();\n                    setAria();\n                }\n\n                function setAria() {\n                    var ariaValue = '';\n                    switch (map.iconClass) {\n                        case 'toast-success':\n                        case 'toast-info':\n                            ariaValue =  'polite';\n                            break;\n                        default:\n                            ariaValue = 'assertive';\n                    }\n                    $toastElement.attr('aria-live', ariaValue);\n                }\n\n                function handleEvents() {\n                    if (options.closeOnHover) {\n                        $toastElement.hover(stickAround, delayedHideToast);\n                    }\n\n                    if (!options.onclick && options.tapToDismiss) {\n                        $toastElement.click(hideToast);\n                    }\n\n                    if (options.closeButton && $closeElement) {\n                        $closeElement.click(function (event) {\n                            if (event.stopPropagation) {\n                                event.stopPropagation();\n                            } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n                                event.cancelBubble = true;\n                            }\n\n                            if (options.onCloseClick) {\n                                options.onCloseClick(event);\n                            }\n\n                            hideToast(true);\n                        });\n                    }\n\n                    if (options.onclick) {\n                        $toastElement.click(function (event) {\n                            options.onclick(event);\n                            hideToast();\n                        });\n                    }\n                }\n\n                function displayToast() {\n                    $toastElement.hide();\n\n                    $toastElement[options.showMethod](\n                        {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n                    );\n\n                    if (options.timeOut > 0) {\n                        intervalId = setTimeout(hideToast, options.timeOut);\n                        progressBar.maxHideTime = parseFloat(options.timeOut);\n                        progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n                        if (options.progressBar) {\n                            progressBar.intervalId = setInterval(updateProgress, 10);\n                        }\n                    }\n                }\n\n                function setIcon() {\n                    if (map.iconClass) {\n                        $toastElement.addClass(options.toastClass).addClass(iconClass);\n                    }\n                }\n\n                function setSequence() {\n                    if (options.newestOnTop) {\n                        $container.prepend($toastElement);\n                    } else {\n                        $container.append($toastElement);\n                    }\n                }\n\n                function setTitle() {\n                    if (map.title) {\n                        var suffix = map.title;\n                        if (options.escapeHtml) {\n                            suffix = escapeHtml(map.title);\n                        }\n                        $titleElement.append(suffix).addClass(options.titleClass);\n                        $toastElement.append($titleElement);\n                    }\n                }\n\n                function setMessage() {\n                    if (map.message) {\n                        var suffix = map.message;\n                        if (options.escapeHtml) {\n                            suffix = escapeHtml(map.message);\n                        }\n                        $messageElement.append(suffix).addClass(options.messageClass);\n                        $toastElement.append($messageElement);\n                    }\n                }\n\n                function setCloseButton() {\n                    if (options.closeButton) {\n                        $closeElement.addClass(options.closeClass).attr('role', 'button');\n                        $toastElement.prepend($closeElement);\n                    }\n                }\n\n                function setProgressBar() {\n                    if (options.progressBar) {\n                        $progressElement.addClass(options.progressClass);\n                        $toastElement.prepend($progressElement);\n                    }\n                }\n\n                function setRTL() {\n                    if (options.rtl) {\n                        $toastElement.addClass('rtl');\n                    }\n                }\n\n                function shouldExit(options, map) {\n                    if (options.preventDuplicates) {\n                        if (map.message === previousToast) {\n                            return true;\n                        } else {\n                            previousToast = map.message;\n                        }\n                    }\n                    return false;\n                }\n\n                function hideToast(override) {\n                    var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n                    var duration = override && options.closeDuration !== false ?\n                        options.closeDuration : options.hideDuration;\n                    var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n                    if ($(':focus', $toastElement).length && !override) {\n                        return;\n                    }\n                    clearTimeout(progressBar.intervalId);\n                    return $toastElement[method]({\n                        duration: duration,\n                        easing: easing,\n                        complete: function () {\n                            removeToast($toastElement);\n                            clearTimeout(intervalId);\n                            if (options.onHidden && response.state !== 'hidden') {\n                                options.onHidden();\n                            }\n                            response.state = 'hidden';\n                            response.endTime = new Date();\n                            publish(response);\n                        }\n                    });\n                }\n\n                function delayedHideToast() {\n                    if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n                        intervalId = setTimeout(hideToast, options.extendedTimeOut);\n                        progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n                        progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n                    }\n                }\n\n                function stickAround() {\n                    clearTimeout(intervalId);\n                    progressBar.hideEta = 0;\n                    $toastElement.stop(true, true)[options.showMethod](\n                        {duration: options.showDuration, easing: options.showEasing}\n                    );\n                }\n\n                function updateProgress() {\n                    var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n                    $progressElement.width(percentage + '%');\n                }\n            }\n\n            function getOptions() {\n                return $.extend({}, getDefaults(), toastr.options);\n            }\n\n            function removeToast($toastElement) {\n                if (!$container) { $container = getContainer(); }\n                if ($toastElement.is(':visible')) {\n                    return;\n                }\n                $toastElement.remove();\n                $toastElement = null;\n                if ($container.children().length === 0) {\n                    $container.remove();\n                    previousToast = undefined;\n                }\n            }\n\n        })();\n    });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n    if (typeof module !== 'undefined' && module.exports) { //Node\n        module.exports = factory(require('jquery'));\n    } else {\n        window.toastr = factory(window.jQuery);\n    }\n}));\n", "/*\n * International Telephone Input v25.12.3\n * https://github.com/jackocnr/intl-tel-input.git\n * Licensed under the MIT license\n */\n\n// UMD\n(function(factory) {\n  if (typeof module === 'object' && module.exports) {\n    module.exports = factory();\n  } else {\n    window.intlTelInput = factory();\n  }\n}(() => {\n\nvar factoryOutput = (() => {\n  var __defProp = Object.defineProperty;\n  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n  var __getOwnPropNames = Object.getOwnPropertyNames;\n  var __hasOwnProp = Object.prototype.hasOwnProperty;\n  var __export = (target, all) => {\n    for (var name in all)\n      __defProp(target, name, { get: all[name], enumerable: true });\n  };\n  var __copyProps = (to, from, except, desc) => {\n    if (from && typeof from === \"object\" || typeof from === \"function\") {\n      for (let key of __getOwnPropNames(from))\n        if (!__hasOwnProp.call(to, key) && key !== except)\n          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n    }\n    return to;\n  };\n  var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n  // src/js/intl-tel-input.ts\n  var intl_tel_input_exports = {};\n  __export(intl_tel_input_exports, {\n    Iti: () => Iti,\n    default: () => intl_tel_input_default\n  });\n\n  // src/js/intl-tel-input/data.ts\n  var rawCountryData = [\n    [\n      \"af\",\n      // Afghanistan\n      \"93\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ax\",\n      // \u00C5land Islands\n      \"358\",\n      1,\n      [\"18\", \"4\"],\n      // (4 is a mobile range shared with FI)\n      \"0\"\n    ],\n    [\n      \"al\",\n      // Albania\n      \"355\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"dz\",\n      // Algeria\n      \"213\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"as\",\n      // American Samoa\n      \"1\",\n      5,\n      [\"684\"],\n      \"1\"\n    ],\n    [\n      \"ad\",\n      // Andorra\n      \"376\"\n    ],\n    [\n      \"ao\",\n      // Angola\n      \"244\"\n    ],\n    [\n      \"ai\",\n      // Anguilla\n      \"1\",\n      6,\n      [\"264\"],\n      \"1\"\n    ],\n    [\n      \"ag\",\n      // Antigua and Barbuda\n      \"1\",\n      7,\n      [\"268\"],\n      \"1\"\n    ],\n    [\n      \"ar\",\n      // Argentina\n      \"54\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"am\",\n      // Armenia\n      \"374\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"aw\",\n      // Aruba\n      \"297\"\n    ],\n    [\n      \"ac\",\n      // Ascension Island\n      \"247\"\n    ],\n    [\n      \"au\",\n      // Australia\n      \"61\",\n      0,\n      [\"4\"],\n      // (mobile range shared with CX and CC)\n      \"0\"\n    ],\n    [\n      \"at\",\n      // Austria\n      \"43\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"az\",\n      // Azerbaijan\n      \"994\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bs\",\n      // Bahamas\n      \"1\",\n      8,\n      [\"242\"],\n      \"1\"\n    ],\n    [\n      \"bh\",\n      // Bahrain\n      \"973\"\n    ],\n    [\n      \"bd\",\n      // Bangladesh\n      \"880\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bb\",\n      // Barbados\n      \"1\",\n      9,\n      [\"246\"],\n      \"1\"\n    ],\n    [\n      \"by\",\n      // Belarus\n      \"375\",\n      0,\n      null,\n      \"8\"\n    ],\n    [\n      \"be\",\n      // Belgium\n      \"32\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bz\",\n      // Belize\n      \"501\"\n    ],\n    [\n      \"bj\",\n      // Benin\n      \"229\"\n    ],\n    [\n      \"bm\",\n      // Bermuda\n      \"1\",\n      10,\n      [\"441\"],\n      \"1\"\n    ],\n    [\n      \"bt\",\n      // Bhutan\n      \"975\"\n    ],\n    [\n      \"bo\",\n      // Bolivia\n      \"591\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ba\",\n      // Bosnia and Herzegovina\n      \"387\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bw\",\n      // Botswana\n      \"267\"\n    ],\n    [\n      \"br\",\n      // Brazil\n      \"55\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"io\",\n      // British Indian Ocean Territory\n      \"246\"\n    ],\n    [\n      \"vg\",\n      // British Virgin Islands\n      \"1\",\n      11,\n      [\"284\"],\n      \"1\"\n    ],\n    [\n      \"bn\",\n      // Brunei\n      \"673\"\n    ],\n    [\n      \"bg\",\n      // Bulgaria\n      \"359\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bf\",\n      // Burkina Faso\n      \"226\"\n    ],\n    [\n      \"bi\",\n      // Burundi\n      \"257\"\n    ],\n    [\n      \"kh\",\n      // Cambodia\n      \"855\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cm\",\n      // Cameroon\n      \"237\"\n    ],\n    [\n      \"ca\",\n      // Canada\n      \"1\",\n      1,\n      [\"204\", \"226\", \"236\", \"249\", \"250\", \"257\", \"263\", \"289\", \"306\", \"343\", \"354\", \"365\", \"367\", \"368\", \"382\", \"403\", \"416\", \"418\", \"428\", \"431\", \"437\", \"438\", \"450\", \"468\", \"474\", \"506\", \"514\", \"519\", \"548\", \"579\", \"581\", \"584\", \"587\", \"604\", \"613\", \"639\", \"647\", \"672\", \"683\", \"705\", \"709\", \"742\", \"753\", \"778\", \"780\", \"782\", \"807\", \"819\", \"825\", \"867\", \"873\", \"879\", \"902\", \"905\", \"942\"],\n      \"1\"\n    ],\n    [\n      \"cv\",\n      // Cape Verde\n      \"238\"\n    ],\n    [\n      \"bq\",\n      // Caribbean Netherlands\n      \"599\",\n      1,\n      [\"3\", \"4\", \"7\"]\n    ],\n    [\n      \"ky\",\n      // Cayman Islands\n      \"1\",\n      12,\n      [\"345\"],\n      \"1\"\n    ],\n    [\n      \"cf\",\n      // Central African Republic\n      \"236\"\n    ],\n    [\n      \"td\",\n      // Chad\n      \"235\"\n    ],\n    [\n      \"cl\",\n      // Chile\n      \"56\"\n    ],\n    [\n      \"cn\",\n      // China\n      \"86\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cx\",\n      // Christmas Island\n      \"61\",\n      2,\n      [\"4\", \"89164\"],\n      // (4 is a mobile range shared with AU and CC)\n      \"0\"\n    ],\n    [\n      \"cc\",\n      // Cocos (Keeling) Islands\n      \"61\",\n      1,\n      [\"4\", \"89162\"],\n      // (4 is a mobile range shared with AU and CX)\n      \"0\"\n    ],\n    [\n      \"co\",\n      // Colombia\n      \"57\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"km\",\n      // Comoros\n      \"269\"\n    ],\n    [\n      \"cg\",\n      // Congo (Brazzaville)\n      \"242\"\n    ],\n    [\n      \"cd\",\n      // Congo (Kinshasa)\n      \"243\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ck\",\n      // Cook Islands\n      \"682\"\n    ],\n    [\n      \"cr\",\n      // Costa Rica\n      \"506\"\n    ],\n    [\n      \"ci\",\n      // C\u00F4te d'Ivoire\n      \"225\"\n    ],\n    [\n      \"hr\",\n      // Croatia\n      \"385\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cu\",\n      // Cuba\n      \"53\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cw\",\n      // Cura\u00E7ao\n      \"599\",\n      0\n    ],\n    [\n      \"cy\",\n      // Cyprus\n      \"357\"\n    ],\n    [\n      \"cz\",\n      // Czech Republic\n      \"420\"\n    ],\n    [\n      \"dk\",\n      // Denmark\n      \"45\"\n    ],\n    [\n      \"dj\",\n      // Djibouti\n      \"253\"\n    ],\n    [\n      \"dm\",\n      // Dominica\n      \"1\",\n      13,\n      [\"767\"],\n      \"1\"\n    ],\n    [\n      \"do\",\n      // Dominican Republic\n      \"1\",\n      2,\n      [\"809\", \"829\", \"849\"],\n      \"1\"\n    ],\n    [\n      \"ec\",\n      // Ecuador\n      \"593\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"eg\",\n      // Egypt\n      \"20\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sv\",\n      // El Salvador\n      \"503\"\n    ],\n    [\n      \"gq\",\n      // Equatorial Guinea\n      \"240\"\n    ],\n    [\n      \"er\",\n      // Eritrea\n      \"291\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ee\",\n      // Estonia\n      \"372\"\n    ],\n    [\n      \"sz\",\n      // Eswatini\n      \"268\"\n    ],\n    [\n      \"et\",\n      // Ethiopia\n      \"251\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"fk\",\n      // Falkland Islands (Malvinas)\n      \"500\"\n    ],\n    [\n      \"fo\",\n      // Faroe Islands\n      \"298\"\n    ],\n    [\n      \"fj\",\n      // Fiji\n      \"679\"\n    ],\n    [\n      \"fi\",\n      // Finland\n      \"358\",\n      0,\n      [\"4\"],\n      // (mobile range shared with AX)\n      \"0\"\n    ],\n    [\n      \"fr\",\n      // France\n      \"33\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gf\",\n      // French Guiana\n      \"594\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pf\",\n      // French Polynesia\n      \"689\"\n    ],\n    [\n      \"ga\",\n      // Gabon\n      \"241\"\n    ],\n    [\n      \"gm\",\n      // Gambia\n      \"220\"\n    ],\n    [\n      \"ge\",\n      // Georgia\n      \"995\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"de\",\n      // Germany\n      \"49\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gh\",\n      // Ghana\n      \"233\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gi\",\n      // Gibraltar\n      \"350\"\n    ],\n    [\n      \"gr\",\n      // Greece\n      \"30\"\n    ],\n    [\n      \"gl\",\n      // Greenland\n      \"299\"\n    ],\n    [\n      \"gd\",\n      // Grenada\n      \"1\",\n      14,\n      [\"473\"],\n      \"1\"\n    ],\n    [\n      \"gp\",\n      // Guadeloupe\n      \"590\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gu\",\n      // Guam\n      \"1\",\n      15,\n      [\"671\"],\n      \"1\"\n    ],\n    [\n      \"gt\",\n      // Guatemala\n      \"502\"\n    ],\n    [\n      \"gg\",\n      // Guernsey\n      \"44\",\n      1,\n      [\"1481\", \"7781\", \"7839\", \"7911\"],\n      \"0\"\n    ],\n    [\n      \"gn\",\n      // Guinea\n      \"224\"\n    ],\n    [\n      \"gw\",\n      // Guinea-Bissau\n      \"245\"\n    ],\n    [\n      \"gy\",\n      // Guyana\n      \"592\"\n    ],\n    [\n      \"ht\",\n      // Haiti\n      \"509\"\n    ],\n    [\n      \"hn\",\n      // Honduras\n      \"504\"\n    ],\n    [\n      \"hk\",\n      // Hong Kong SAR China\n      \"852\"\n    ],\n    [\n      \"hu\",\n      // Hungary\n      \"36\",\n      0,\n      null,\n      \"06\"\n    ],\n    [\n      \"is\",\n      // Iceland\n      \"354\"\n    ],\n    [\n      \"in\",\n      // India\n      \"91\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"id\",\n      // Indonesia\n      \"62\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ir\",\n      // Iran\n      \"98\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"iq\",\n      // Iraq\n      \"964\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ie\",\n      // Ireland\n      \"353\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"im\",\n      // Isle of Man\n      \"44\",\n      2,\n      [\"1624\", \"74576\", \"7524\", \"7624\", \"7924\"],\n      \"0\"\n    ],\n    [\n      \"il\",\n      // Israel\n      \"972\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"it\",\n      // Italy\n      \"39\",\n      0,\n      [\"3\"]\n      // (mobile range shared with VA)\n    ],\n    [\n      \"jm\",\n      // Jamaica\n      \"1\",\n      4,\n      [\"658\", \"876\"],\n      \"1\"\n    ],\n    [\n      \"jp\",\n      // Japan\n      \"81\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"je\",\n      // Jersey\n      \"44\",\n      3,\n      [\"1534\", \"7509\", \"7700\", \"7797\", \"7829\", \"7937\"],\n      \"0\"\n    ],\n    [\n      \"jo\",\n      // Jordan\n      \"962\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"kz\",\n      // Kazakhstan\n      \"7\",\n      1,\n      [\"33\", \"7\"],\n      // (33 is shared with RU)\n      \"8\"\n    ],\n    [\n      \"ke\",\n      // Kenya\n      \"254\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ki\",\n      // Kiribati\n      \"686\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"xk\",\n      // Kosovo\n      \"383\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"kw\",\n      // Kuwait\n      \"965\"\n    ],\n    [\n      \"kg\",\n      // Kyrgyzstan\n      \"996\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"la\",\n      // Laos\n      \"856\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"lv\",\n      // Latvia\n      \"371\"\n    ],\n    [\n      \"lb\",\n      // Lebanon\n      \"961\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ls\",\n      // Lesotho\n      \"266\"\n    ],\n    [\n      \"lr\",\n      // Liberia\n      \"231\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ly\",\n      // Libya\n      \"218\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"li\",\n      // Liechtenstein\n      \"423\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"lt\",\n      // Lithuania\n      \"370\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"lu\",\n      // Luxembourg\n      \"352\"\n    ],\n    [\n      \"mo\",\n      // Macao SAR China\n      \"853\"\n    ],\n    [\n      \"mg\",\n      // Madagascar\n      \"261\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mw\",\n      // Malawi\n      \"265\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"my\",\n      // Malaysia\n      \"60\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mv\",\n      // Maldives\n      \"960\"\n    ],\n    [\n      \"ml\",\n      // Mali\n      \"223\"\n    ],\n    [\n      \"mt\",\n      // Malta\n      \"356\"\n    ],\n    [\n      \"mh\",\n      // Marshall Islands\n      \"692\",\n      0,\n      null,\n      \"1\"\n    ],\n    [\n      \"mq\",\n      // Martinique\n      \"596\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mr\",\n      // Mauritania\n      \"222\"\n    ],\n    [\n      \"mu\",\n      // Mauritius\n      \"230\"\n    ],\n    [\n      \"yt\",\n      // Mayotte\n      \"262\",\n      1,\n      [\"269\", \"639\"],\n      \"0\"\n    ],\n    [\n      \"mx\",\n      // Mexico\n      \"52\"\n    ],\n    [\n      \"fm\",\n      // Micronesia\n      \"691\"\n    ],\n    [\n      \"md\",\n      // Moldova\n      \"373\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mc\",\n      // Monaco\n      \"377\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mn\",\n      // Mongolia\n      \"976\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"me\",\n      // Montenegro\n      \"382\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ms\",\n      // Montserrat\n      \"1\",\n      16,\n      [\"664\"],\n      \"1\"\n    ],\n    [\n      \"ma\",\n      // Morocco\n      \"212\",\n      0,\n      [\"6\", \"7\"],\n      // (mobile ranges shared with EH)\n      \"0\"\n    ],\n    [\n      \"mz\",\n      // Mozambique\n      \"258\"\n    ],\n    [\n      \"mm\",\n      // Myanmar (Burma)\n      \"95\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"na\",\n      // Namibia\n      \"264\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nr\",\n      // Nauru\n      \"674\"\n    ],\n    [\n      \"np\",\n      // Nepal\n      \"977\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nl\",\n      // Netherlands\n      \"31\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nc\",\n      // New Caledonia\n      \"687\"\n    ],\n    [\n      \"nz\",\n      // New Zealand\n      \"64\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ni\",\n      // Nicaragua\n      \"505\"\n    ],\n    [\n      \"ne\",\n      // Niger\n      \"227\"\n    ],\n    [\n      \"ng\",\n      // Nigeria\n      \"234\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nu\",\n      // Niue\n      \"683\"\n    ],\n    [\n      \"nf\",\n      // Norfolk Island\n      \"672\"\n    ],\n    [\n      \"kp\",\n      // North Korea\n      \"850\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mk\",\n      // North Macedonia\n      \"389\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mp\",\n      // Northern Mariana Islands\n      \"1\",\n      17,\n      [\"670\"],\n      \"1\"\n    ],\n    [\n      \"no\",\n      // Norway\n      \"47\",\n      0,\n      [\"4\", \"9\"]\n      // (mobile ranges shared with SJ)\n    ],\n    [\n      \"om\",\n      // Oman\n      \"968\"\n    ],\n    [\n      \"pk\",\n      // Pakistan\n      \"92\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pw\",\n      // Palau\n      \"680\"\n    ],\n    [\n      \"ps\",\n      // Palestinian Territories\n      \"970\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pa\",\n      // Panama\n      \"507\"\n    ],\n    [\n      \"pg\",\n      // Papua New Guinea\n      \"675\"\n    ],\n    [\n      \"py\",\n      // Paraguay\n      \"595\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pe\",\n      // Peru\n      \"51\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ph\",\n      // Philippines\n      \"63\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pl\",\n      // Poland\n      \"48\"\n    ],\n    [\n      \"pt\",\n      // Portugal\n      \"351\"\n    ],\n    [\n      \"pr\",\n      // Puerto Rico\n      \"1\",\n      3,\n      [\"787\", \"939\"],\n      \"1\"\n    ],\n    [\n      \"qa\",\n      // Qatar\n      \"974\"\n    ],\n    [\n      \"re\",\n      // R\u00E9union\n      \"262\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ro\",\n      // Romania\n      \"40\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ru\",\n      // Russia\n      \"7\",\n      0,\n      [\"33\"],\n      // (shared with KZ)\n      \"8\"\n    ],\n    [\n      \"rw\",\n      // Rwanda\n      \"250\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ws\",\n      // Samoa\n      \"685\"\n    ],\n    [\n      \"sm\",\n      // San Marino\n      \"378\"\n    ],\n    [\n      \"st\",\n      // S\u00E3o Tom\u00E9 & Pr\u00EDncipe\n      \"239\"\n    ],\n    [\n      \"sa\",\n      // Saudi Arabia\n      \"966\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sn\",\n      // Senegal\n      \"221\"\n    ],\n    [\n      \"rs\",\n      // Serbia\n      \"381\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sc\",\n      // Seychelles\n      \"248\"\n    ],\n    [\n      \"sl\",\n      // Sierra Leone\n      \"232\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sg\",\n      // Singapore\n      \"65\"\n    ],\n    [\n      \"sx\",\n      // Sint Maarten\n      \"1\",\n      21,\n      [\"721\"],\n      \"1\"\n    ],\n    [\n      \"sk\",\n      // Slovakia\n      \"421\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"si\",\n      // Slovenia\n      \"386\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sb\",\n      // Solomon Islands\n      \"677\"\n    ],\n    [\n      \"so\",\n      // Somalia\n      \"252\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"za\",\n      // South Africa\n      \"27\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"kr\",\n      // South Korea\n      \"82\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ss\",\n      // South Sudan\n      \"211\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"es\",\n      // Spain\n      \"34\"\n    ],\n    [\n      \"lk\",\n      // Sri Lanka\n      \"94\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bl\",\n      // St. Barth\u00E9lemy\n      \"590\",\n      1,\n      null,\n      \"0\"\n    ],\n    [\n      \"sh\",\n      // St. Helena\n      \"290\"\n    ],\n    [\n      \"kn\",\n      // St. Kitts & Nevis\n      \"1\",\n      18,\n      [\"869\"],\n      \"1\"\n    ],\n    [\n      \"lc\",\n      // St. Lucia\n      \"1\",\n      19,\n      [\"758\"],\n      \"1\"\n    ],\n    [\n      \"mf\",\n      // St. Martin\n      \"590\",\n      2,\n      null,\n      \"0\"\n    ],\n    [\n      \"pm\",\n      // St. Pierre & Miquelon\n      \"508\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"vc\",\n      // St. Vincent & Grenadines\n      \"1\",\n      20,\n      [\"784\"],\n      \"1\"\n    ],\n    [\n      \"sd\",\n      // Sudan\n      \"249\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sr\",\n      // Suriname\n      \"597\"\n    ],\n    [\n      \"sj\",\n      // Svalbard & Jan Mayen\n      \"47\",\n      1,\n      [\"4\", \"79\", \"9\"]\n      // (4 and 9 are mobile ranges shared with NO)\n    ],\n    [\n      \"se\",\n      // Sweden\n      \"46\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ch\",\n      // Switzerland\n      \"41\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sy\",\n      // Syria\n      \"963\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tw\",\n      // Taiwan\n      \"886\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tj\",\n      // Tajikistan\n      \"992\"\n    ],\n    [\n      \"tz\",\n      // Tanzania\n      \"255\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"th\",\n      // Thailand\n      \"66\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tl\",\n      // Timor-Leste\n      \"670\"\n    ],\n    [\n      \"tg\",\n      // Togo\n      \"228\"\n    ],\n    [\n      \"tk\",\n      // Tokelau\n      \"690\"\n    ],\n    [\n      \"to\",\n      // Tonga\n      \"676\"\n    ],\n    [\n      \"tt\",\n      // Trinidad & Tobago\n      \"1\",\n      22,\n      [\"868\"],\n      \"1\"\n    ],\n    [\n      \"tn\",\n      // Tunisia\n      \"216\"\n    ],\n    [\n      \"tr\",\n      // Turkey\n      \"90\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tm\",\n      // Turkmenistan\n      \"993\",\n      0,\n      null,\n      \"8\"\n    ],\n    [\n      \"tc\",\n      // Turks & Caicos Islands\n      \"1\",\n      23,\n      [\"649\"],\n      \"1\"\n    ],\n    [\n      \"tv\",\n      // Tuvalu\n      \"688\"\n    ],\n    [\n      \"vi\",\n      // U.S. Virgin Islands\n      \"1\",\n      24,\n      [\"340\"],\n      \"1\"\n    ],\n    [\n      \"ug\",\n      // Uganda\n      \"256\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ua\",\n      // Ukraine\n      \"380\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ae\",\n      // United Arab Emirates\n      \"971\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gb\",\n      // United Kingdom\n      \"44\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"us\",\n      // United States\n      \"1\",\n      0,\n      null,\n      \"1\"\n    ],\n    [\n      \"uy\",\n      // Uruguay\n      \"598\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"uz\",\n      // Uzbekistan\n      \"998\"\n    ],\n    [\n      \"vu\",\n      // Vanuatu\n      \"678\"\n    ],\n    [\n      \"va\",\n      // Vatican City\n      \"39\",\n      1,\n      [\"06698\", \"3\"]\n      // (3 is a mobile range shared with IT)\n    ],\n    [\n      \"ve\",\n      // Venezuela\n      \"58\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"vn\",\n      // Vietnam\n      \"84\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"wf\",\n      // Wallis & Futuna\n      \"681\"\n    ],\n    [\n      \"eh\",\n      // Western Sahara\n      \"212\",\n      1,\n      [\"5288\", \"5289\", \"6\", \"7\"],\n      // (6 and 7 are mobile ranges shared with MA)\n      \"0\"\n    ],\n    [\n      \"ye\",\n      // Yemen\n      \"967\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"zm\",\n      // Zambia\n      \"260\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"zw\",\n      // Zimbabwe\n      \"263\",\n      0,\n      null,\n      \"0\"\n    ]\n  ];\n  var allCountries = [];\n  for (const c of rawCountryData) {\n    allCountries.push({\n      name: \"\",\n      // populated in the plugin\n      iso2: c[0],\n      dialCode: c[1],\n      priority: c[2] || 0,\n      areaCodes: c[3] || null,\n      nodeById: {},\n      // populated by the plugin\n      nationalPrefix: c[4] || null,\n      normalisedName: \"\",\n      // populated in the plugin\n      initials: \"\",\n      // populated in the plugin\n      dialCodePlus: \"\"\n      // populated in the plugin\n    });\n  }\n  var data_default = allCountries;\n\n  // src/js/intl-tel-input/i18n/en/countries.ts\n  var countryTranslations = {\n    ad: \"Andorra\",\n    ae: \"United Arab Emirates\",\n    af: \"Afghanistan\",\n    ag: \"Antigua & Barbuda\",\n    ai: \"Anguilla\",\n    al: \"Albania\",\n    am: \"Armenia\",\n    ao: \"Angola\",\n    ar: \"Argentina\",\n    as: \"American Samoa\",\n    at: \"Austria\",\n    au: \"Australia\",\n    aw: \"Aruba\",\n    ax: \"\\xC5land Islands\",\n    az: \"Azerbaijan\",\n    ba: \"Bosnia & Herzegovina\",\n    bb: \"Barbados\",\n    bd: \"Bangladesh\",\n    be: \"Belgium\",\n    bf: \"Burkina Faso\",\n    bg: \"Bulgaria\",\n    bh: \"Bahrain\",\n    bi: \"Burundi\",\n    bj: \"Benin\",\n    bl: \"St. Barth\\xE9lemy\",\n    bm: \"Bermuda\",\n    bn: \"Brunei\",\n    bo: \"Bolivia\",\n    bq: \"Caribbean Netherlands\",\n    br: \"Brazil\",\n    bs: \"Bahamas\",\n    bt: \"Bhutan\",\n    bw: \"Botswana\",\n    by: \"Belarus\",\n    bz: \"Belize\",\n    ca: \"Canada\",\n    cc: \"Cocos (Keeling) Islands\",\n    cd: \"Congo - Kinshasa\",\n    cf: \"Central African Republic\",\n    cg: \"Congo - Brazzaville\",\n    ch: \"Switzerland\",\n    ci: \"C\\xF4te d\\u2019Ivoire\",\n    ck: \"Cook Islands\",\n    cl: \"Chile\",\n    cm: \"Cameroon\",\n    cn: \"China\",\n    co: \"Colombia\",\n    cr: \"Costa Rica\",\n    cu: \"Cuba\",\n    cv: \"Cape Verde\",\n    cw: \"Cura\\xE7ao\",\n    cx: \"Christmas Island\",\n    cy: \"Cyprus\",\n    cz: \"Czechia\",\n    de: \"Germany\",\n    dj: \"Djibouti\",\n    dk: \"Denmark\",\n    dm: \"Dominica\",\n    do: \"Dominican Republic\",\n    dz: \"Algeria\",\n    ec: \"Ecuador\",\n    ee: \"Estonia\",\n    eg: \"Egypt\",\n    eh: \"Western Sahara\",\n    er: \"Eritrea\",\n    es: \"Spain\",\n    et: \"Ethiopia\",\n    fi: \"Finland\",\n    fj: \"Fiji\",\n    fk: \"Falkland Islands\",\n    fm: \"Micronesia\",\n    fo: \"Faroe Islands\",\n    fr: \"France\",\n    ga: \"Gabon\",\n    gb: \"United Kingdom\",\n    gd: \"Grenada\",\n    ge: \"Georgia\",\n    gf: \"French Guiana\",\n    gg: \"Guernsey\",\n    gh: \"Ghana\",\n    gi: \"Gibraltar\",\n    gl: \"Greenland\",\n    gm: \"Gambia\",\n    gn: \"Guinea\",\n    gp: \"Guadeloupe\",\n    gq: \"Equatorial Guinea\",\n    gr: \"Greece\",\n    gt: \"Guatemala\",\n    gu: \"Guam\",\n    gw: \"Guinea-Bissau\",\n    gy: \"Guyana\",\n    hk: \"Hong Kong SAR China\",\n    hn: \"Honduras\",\n    hr: \"Croatia\",\n    ht: \"Haiti\",\n    hu: \"Hungary\",\n    id: \"Indonesia\",\n    ie: \"Ireland\",\n    il: \"Israel\",\n    im: \"Isle of Man\",\n    in: \"India\",\n    io: \"British Indian Ocean Territory\",\n    iq: \"Iraq\",\n    ir: \"Iran\",\n    is: \"Iceland\",\n    it: \"Italy\",\n    je: \"Jersey\",\n    jm: \"Jamaica\",\n    jo: \"Jordan\",\n    jp: \"Japan\",\n    ke: \"Kenya\",\n    kg: \"Kyrgyzstan\",\n    kh: \"Cambodia\",\n    ki: \"Kiribati\",\n    km: \"Comoros\",\n    kn: \"St. Kitts & Nevis\",\n    kp: \"North Korea\",\n    kr: \"South Korea\",\n    kw: \"Kuwait\",\n    ky: \"Cayman Islands\",\n    kz: \"Kazakhstan\",\n    la: \"Laos\",\n    lb: \"Lebanon\",\n    lc: \"St. Lucia\",\n    li: \"Liechtenstein\",\n    lk: \"Sri Lanka\",\n    lr: \"Liberia\",\n    ls: \"Lesotho\",\n    lt: \"Lithuania\",\n    lu: \"Luxembourg\",\n    lv: \"Latvia\",\n    ly: \"Libya\",\n    ma: \"Morocco\",\n    mc: \"Monaco\",\n    md: \"Moldova\",\n    me: \"Montenegro\",\n    mf: \"St. Martin\",\n    mg: \"Madagascar\",\n    mh: \"Marshall Islands\",\n    mk: \"North Macedonia\",\n    ml: \"Mali\",\n    mm: \"Myanmar (Burma)\",\n    mn: \"Mongolia\",\n    mo: \"Macao SAR China\",\n    mp: \"Northern Mariana Islands\",\n    mq: \"Martinique\",\n    mr: \"Mauritania\",\n    ms: \"Montserrat\",\n    mt: \"Malta\",\n    mu: \"Mauritius\",\n    mv: \"Maldives\",\n    mw: \"Malawi\",\n    mx: \"Mexico\",\n    my: \"Malaysia\",\n    mz: \"Mozambique\",\n    na: \"Namibia\",\n    nc: \"New Caledonia\",\n    ne: \"Niger\",\n    nf: \"Norfolk Island\",\n    ng: \"Nigeria\",\n    ni: \"Nicaragua\",\n    nl: \"Netherlands\",\n    no: \"Norway\",\n    np: \"Nepal\",\n    nr: \"Nauru\",\n    nu: \"Niue\",\n    nz: \"New Zealand\",\n    om: \"Oman\",\n    pa: \"Panama\",\n    pe: \"Peru\",\n    pf: \"French Polynesia\",\n    pg: \"Papua New Guinea\",\n    ph: \"Philippines\",\n    pk: \"Pakistan\",\n    pl: \"Poland\",\n    pm: \"St. Pierre & Miquelon\",\n    pr: \"Puerto Rico\",\n    ps: \"Palestinian Territories\",\n    pt: \"Portugal\",\n    pw: \"Palau\",\n    py: \"Paraguay\",\n    qa: \"Qatar\",\n    re: \"R\\xE9union\",\n    ro: \"Romania\",\n    rs: \"Serbia\",\n    ru: \"Russia\",\n    rw: \"Rwanda\",\n    sa: \"Saudi Arabia\",\n    sb: \"Solomon Islands\",\n    sc: \"Seychelles\",\n    sd: \"Sudan\",\n    se: \"Sweden\",\n    sg: \"Singapore\",\n    sh: \"St. Helena\",\n    si: \"Slovenia\",\n    sj: \"Svalbard & Jan Mayen\",\n    sk: \"Slovakia\",\n    sl: \"Sierra Leone\",\n    sm: \"San Marino\",\n    sn: \"Senegal\",\n    so: \"Somalia\",\n    sr: \"Suriname\",\n    ss: \"South Sudan\",\n    st: \"S\\xE3o Tom\\xE9 & Pr\\xEDncipe\",\n    sv: \"El Salvador\",\n    sx: \"Sint Maarten\",\n    sy: \"Syria\",\n    sz: \"Eswatini\",\n    tc: \"Turks & Caicos Islands\",\n    td: \"Chad\",\n    tg: \"Togo\",\n    th: \"Thailand\",\n    tj: \"Tajikistan\",\n    tk: \"Tokelau\",\n    tl: \"Timor-Leste\",\n    tm: \"Turkmenistan\",\n    tn: \"Tunisia\",\n    to: \"Tonga\",\n    tr: \"Turkey\",\n    tt: \"Trinidad & Tobago\",\n    tv: \"Tuvalu\",\n    tw: \"Taiwan\",\n    tz: \"Tanzania\",\n    ua: \"Ukraine\",\n    ug: \"Uganda\",\n    us: \"United States\",\n    uy: \"Uruguay\",\n    uz: \"Uzbekistan\",\n    va: \"Vatican City\",\n    vc: \"St. Vincent & Grenadines\",\n    ve: \"Venezuela\",\n    vg: \"British Virgin Islands\",\n    vi: \"U.S. Virgin Islands\",\n    vn: \"Vietnam\",\n    vu: \"Vanuatu\",\n    wf: \"Wallis & Futuna\",\n    ws: \"Samoa\",\n    ye: \"Yemen\",\n    yt: \"Mayotte\",\n    za: \"South Africa\",\n    zm: \"Zambia\",\n    zw: \"Zimbabwe\"\n  };\n  var countries_default = countryTranslations;\n\n  // src/js/intl-tel-input/i18n/en/interface.ts\n  var interfaceTranslations = {\n    selectedCountryAriaLabel: \"Change country, selected ${countryName} (${dialCode})\",\n    noCountrySelected: \"Select country\",\n    countryListAriaLabel: \"List of countries\",\n    searchPlaceholder: \"Search\",\n    clearSearchAriaLabel: \"Clear search\",\n    zeroSearchResults: \"No results found\",\n    oneSearchResult: \"1 result found\",\n    multipleSearchResults: \"${count} results found\",\n    // additional countries (not supported by country-list library)\n    ac: \"Ascension Island\",\n    xk: \"Kosovo\"\n  };\n  var interface_default = interfaceTranslations;\n\n  // src/js/intl-tel-input/i18n/en/index.ts\n  var allTranslations = { ...countries_default, ...interface_default };\n  var en_default = allTranslations;\n\n  // src/js/modules/constants.ts\n  var EVENTS = {\n    OPEN_COUNTRY_DROPDOWN: \"open:countrydropdown\",\n    CLOSE_COUNTRY_DROPDOWN: \"close:countrydropdown\",\n    COUNTRY_CHANGE: \"countrychange\",\n    INPUT: \"input\"\n    // used for synthetic input trigger\n  };\n  var CLASSES = {\n    HIDE: \"iti__hide\",\n    V_HIDE: \"iti__v-hide\",\n    ARROW_UP: \"iti__arrow--up\",\n    GLOBE: \"iti__globe\",\n    FLAG: \"iti__flag\",\n    COUNTRY_ITEM: \"iti__country\",\n    HIGHLIGHT: \"iti__highlight\"\n  };\n  var KEYS = {\n    ARROW_UP: \"ArrowUp\",\n    ARROW_DOWN: \"ArrowDown\",\n    SPACE: \" \",\n    ENTER: \"Enter\",\n    ESC: \"Escape\",\n    TAB: \"Tab\"\n  };\n  var INPUT_TYPES = {\n    PASTE: \"insertFromPaste\",\n    DELETE_FWD: \"deleteContentForward\"\n  };\n  var REGEX = {\n    ALPHA_UNICODE: /\\p{L}/u,\n    // any kind of letter from any language\n    NON_PLUS_NUMERIC: /[^+0-9]/,\n    // chars that are NOT + or digit\n    NON_PLUS_NUMERIC_GLOBAL: /[^+0-9]/g,\n    // chars that are NOT + or digit (global)\n    HIDDEN_SEARCH_CHAR: /^[a-zA-Z\u00C0-\u00FF\u0430-\u044F\u0410-\u042F ]$/\n    // single acceptable hidden-search char\n  };\n  var TIMINGS = {\n    SEARCH_DEBOUNCE_MS: 100,\n    HIDDEN_SEARCH_RESET_MS: 1e3,\n    NEXT_TICK: 0\n  };\n  var SENTINELS = {\n    UNKNOWN_NUMBER_TYPE: -99,\n    UNKNOWN_VALIDATION_ERROR: -99\n  };\n  var LAYOUT = {\n    SANE_SELECTED_WITH_DIAL_WIDTH: 78,\n    // px width fallback when separateDialCode enabled\n    SANE_SELECTED_NO_DIAL_WIDTH: 42,\n    // px width fallback when no separate dial code\n    INPUT_PADDING_EXTRA_LEFT: 6\n    // px gap between selected country container and input text\n  };\n  var DIAL = {\n    PLUS: \"+\",\n    NANP: \"1\"\n    // North American Numbering Plan\n  };\n  var UK = {\n    ISO2: \"gb\",\n    DIAL_CODE: \"44\",\n    // +44 United Kingdom\n    MOBILE_PREFIX: \"7\",\n    // UK mobile numbers start with 7 after national trunk (0) or core section\n    MOBILE_CORE_LENGTH: 10\n    // core number length (excluding dial code / national prefix) for mobiles\n  };\n  var US = {\n    ISO2: \"us\",\n    DIAL_CODE: \"1\"\n    // +1 United States\n  };\n  var PLACEHOLDER_MODES = {\n    AGGRESSIVE: \"aggressive\",\n    POLITE: \"polite\",\n    OFF: \"off\"\n  };\n  var INITIAL_COUNTRY = {\n    AUTO: \"auto\"\n  };\n  var DATA_KEYS = {\n    COUNTRY_CODE: \"countryCode\",\n    DIAL_CODE: \"dialCode\"\n  };\n  var ARIA = {\n    EXPANDED: \"aria-expanded\",\n    LABEL: \"aria-label\",\n    SELECTED: \"aria-selected\",\n    ACTIVE_DESCENDANT: \"aria-activedescendant\",\n    HASPOPUP: \"aria-haspopup\",\n    CONTROLS: \"aria-controls\",\n    HIDDEN: \"aria-hidden\",\n    AUTOCOMPLETE: \"aria-autocomplete\",\n    MODAL: \"aria-modal\"\n  };\n\n  // src/js/modules/core/options.ts\n  var mq = (q) => typeof window !== \"undefined\" && typeof window.matchMedia === \"function\" && window.matchMedia(q).matches;\n  var computeDefaultUseFullscreenPopup = () => {\n    if (typeof navigator !== \"undefined\" && typeof window !== \"undefined\") {\n      const isMobileUserAgent = /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n        navigator.userAgent\n      );\n      const isNarrowViewport = mq(\"(max-width: 500px)\");\n      const isShortViewport = mq(\"(max-height: 600px)\");\n      const isCoarsePointer = mq(\"(pointer: coarse)\");\n      return isMobileUserAgent || isNarrowViewport || isCoarsePointer && isShortViewport;\n    }\n    return false;\n  };\n  var defaults = {\n    // Allow alphanumeric \"phonewords\" (e.g. +1 800 FLOWERS) as valid numbers\n    allowPhonewords: false,\n    //* Whether or not to allow the dropdown.\n    allowDropdown: true,\n    //* Add a placeholder in the input with an example number for the selected country.\n    autoPlaceholder: PLACEHOLDER_MODES.POLITE,\n    //* Modify the parentClass.\n    containerClass: \"\",\n    //* The order of the countries in the dropdown. Defaults to alphabetical.\n    countryOrder: null,\n    //* Add a country search input at the top of the dropdown.\n    countrySearch: true,\n    //* Modify the auto placeholder.\n    customPlaceholder: null,\n    //* Append menu to specified element.\n    dropdownContainer: null,\n    //* Don't display these countries.\n    excludeCountries: [],\n    //* Fix the dropdown width to the input width (rather than being as wide as the longest country name).\n    fixDropdownWidth: true,\n    //* Format the number as the user types\n    formatAsYouType: true,\n    //* Format the input value during initialisation and on setNumber.\n    formatOnDisplay: true,\n    //* geoIp lookup function.\n    geoIpLookup: null,\n    //* Inject a hidden input with the name returned from this function, and on submit, populate it with the result of getNumber.\n    hiddenInput: null,\n    //* Internationalise the plugin text e.g. search input placeholder, country names.\n    i18n: {},\n    //* Initial country.\n    initialCountry: \"\",\n    //* A function to load the utils script.\n    loadUtils: null,\n    //* National vs international formatting for numbers e.g. placeholders and displaying existing numbers.\n    nationalMode: true,\n    //* Display only these countries.\n    onlyCountries: [],\n    //* Number type to use for placeholders.\n    placeholderNumberType: \"MOBILE\",\n    //* Show flags - for both the selected country, and in the country dropdown\n    showFlags: true,\n    //* Display the international dial code next to the selected flag.\n    separateDialCode: false,\n    //* Only allow certain chars e.g. a plus followed by numeric digits, and cap at max valid length.\n    strictMode: false,\n    //* Use full screen popup instead of dropdown for country list.\n    useFullscreenPopup: computeDefaultUseFullscreenPopup(),\n    //* The number type to enforce during validation.\n    validationNumberTypes: [\"MOBILE\"]\n  };\n  var applyOptionSideEffects = (o, defaultEnglishStrings) => {\n    if (o.useFullscreenPopup) {\n      o.fixDropdownWidth = false;\n    }\n    if (o.onlyCountries.length === 1) {\n      o.initialCountry = o.onlyCountries[0];\n    }\n    if (o.separateDialCode) {\n      o.nationalMode = false;\n    }\n    if (o.allowDropdown && !o.showFlags && !o.separateDialCode) {\n      o.nationalMode = false;\n    }\n    if (o.useFullscreenPopup && !o.dropdownContainer) {\n      o.dropdownContainer = document.body;\n    }\n    o.i18n = { ...defaultEnglishStrings, ...o.i18n };\n  };\n\n  // src/js/modules/utils/string.ts\n  var getNumeric = (s) => s.replace(/\\D/g, \"\");\n  var normaliseString = (s = \"\") => s.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase();\n\n  // src/js/modules/core/countrySearch.ts\n  var getMatchedCountries = (countries, query) => {\n    const normalisedQuery = normaliseString(query);\n    const iso2Matches = [];\n    const nameStartWith = [];\n    const nameContains = [];\n    const dialCodeMatches = [];\n    const dialCodeContains = [];\n    const initialsMatches = [];\n    for (const c of countries) {\n      if (c.iso2 === normalisedQuery) {\n        iso2Matches.push(c);\n      } else if (c.normalisedName.startsWith(normalisedQuery)) {\n        nameStartWith.push(c);\n      } else if (c.normalisedName.includes(normalisedQuery)) {\n        nameContains.push(c);\n      } else if (normalisedQuery === c.dialCode || normalisedQuery === c.dialCodePlus) {\n        dialCodeMatches.push(c);\n      } else if (c.dialCodePlus.includes(normalisedQuery)) {\n        dialCodeContains.push(c);\n      } else if (c.initials.includes(normalisedQuery)) {\n        initialsMatches.push(c);\n      }\n    }\n    const sortByPriority = (a, b) => a.priority - b.priority;\n    return [\n      ...iso2Matches.sort(sortByPriority),\n      ...nameStartWith.sort(sortByPriority),\n      ...nameContains.sort(sortByPriority),\n      ...dialCodeMatches.sort(sortByPriority),\n      ...dialCodeContains.sort(sortByPriority),\n      ...initialsMatches.sort(sortByPriority)\n    ];\n  };\n  var findFirstCountryStartingWith = (countries, query) => {\n    const lowerQuery = query.toLowerCase();\n    for (const c of countries) {\n      const lowerName = c.name.toLowerCase();\n      if (lowerName.startsWith(lowerQuery)) {\n        return c;\n      }\n    }\n    return null;\n  };\n\n  // src/js/modules/utils/dom.ts\n  var buildClassNames = (flags) => Object.keys(flags).filter((k) => Boolean(flags[k])).join(\" \");\n  var createEl = (tagName, attrs, container) => {\n    const el = document.createElement(tagName);\n    if (attrs) {\n      Object.entries(attrs).forEach(\n        ([key, value]) => el.setAttribute(key, value)\n      );\n    }\n    if (container) {\n      container.appendChild(el);\n    }\n    return el;\n  };\n\n  // src/js/modules/core/icons.ts\n  var buildSearchIcon = () => `\n  <svg class=\"iti__search-icon-svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" focusable=\"false\" ${ARIA.HIDDEN}=\"true\">\n    <circle cx=\"11\" cy=\"11\" r=\"7\" />\n    <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n  </svg>`;\n  var buildClearIcon = (id2) => {\n    const maskId = `iti-${id2}-clear-mask`;\n    return `\n    <svg class=\"iti__search-clear-svg\" width=\"12\" height=\"12\" viewBox=\"0 0 16 16\" ${ARIA.HIDDEN}=\"true\" focusable=\"false\">\n      <mask id=\"${maskId}\" maskUnits=\"userSpaceOnUse\">\n        <rect width=\"16\" height=\"16\" fill=\"white\" />\n        <path d=\"M5.2 5.2 L10.8 10.8 M10.8 5.2 L5.2 10.8\" stroke=\"black\" stroke-linecap=\"round\" class=\"iti__search-clear-x\" />\n      </mask>\n      <circle cx=\"8\" cy=\"8\" r=\"8\" class=\"iti__search-clear-bg\" mask=\"url(#${maskId})\" />\n    </svg>`;\n  };\n\n  // src/js/modules/core/ui.ts\n  var UI = class {\n    constructor(input, options, id2) {\n      this.highlightedItem = null;\n      input.dataset.intlTelInputId = id2.toString();\n      this.telInput = input;\n      this.options = options;\n      this.id = id2;\n      this.hadInitialPlaceholder = Boolean(input.getAttribute(\"placeholder\"));\n      this.isRTL = !!this.telInput.closest(\"[dir=rtl]\");\n      if (this.options.separateDialCode) {\n        this.originalPaddingLeft = this.telInput.style.paddingLeft;\n      }\n    }\n    //* Generate all of the markup for the plugin: the selected country overlay, and the dropdown.\n    generateMarkup(countries) {\n      this.countries = countries;\n      this._prepareTelInput();\n      const wrapper = this._createWrapperAndInsert();\n      this._maybeBuildCountryContainer(wrapper);\n      wrapper.appendChild(this.telInput);\n      this._maybeUpdateInputPaddingAndReveal();\n      this._maybeBuildHiddenInputs(wrapper);\n    }\n    _prepareTelInput() {\n      this.telInput.classList.add(\"iti__tel-input\");\n      if (!this.telInput.hasAttribute(\"autocomplete\") && !this.telInput.form?.hasAttribute(\"autocomplete\")) {\n        this.telInput.setAttribute(\"autocomplete\", \"off\");\n      }\n    }\n    _createWrapperAndInsert() {\n      const { allowDropdown, showFlags, containerClass, useFullscreenPopup } = this.options;\n      const parentClasses = buildClassNames({\n        iti: true,\n        \"iti--allow-dropdown\": allowDropdown,\n        \"iti--show-flags\": showFlags,\n        \"iti--inline-dropdown\": !useFullscreenPopup,\n        [containerClass]: Boolean(containerClass)\n      });\n      const wrapper = createEl(\"div\", { class: parentClasses });\n      if (this.isRTL) {\n        wrapper.setAttribute(\"dir\", \"ltr\");\n      }\n      this.telInput.before(wrapper);\n      return wrapper;\n    }\n    _maybeBuildCountryContainer(wrapper) {\n      const { allowDropdown, separateDialCode, showFlags } = this.options;\n      if (allowDropdown || showFlags || separateDialCode) {\n        this.countryContainer = createEl(\n          \"div\",\n          // visibly hidden until we measure it's width to set the input padding correctly\n          { class: `iti__country-container ${CLASSES.V_HIDE}` },\n          wrapper\n        );\n        if (allowDropdown) {\n          this.selectedCountry = createEl(\n            \"button\",\n            {\n              type: \"button\",\n              class: \"iti__selected-country\",\n              [ARIA.EXPANDED]: \"false\",\n              [ARIA.LABEL]: this.options.i18n.noCountrySelected,\n              [ARIA.HASPOPUP]: \"dialog\",\n              [ARIA.CONTROLS]: `iti-${this.id}__dropdown-content`\n            },\n            this.countryContainer\n          );\n          if (this.telInput.disabled) {\n            this.selectedCountry.setAttribute(\"disabled\", \"true\");\n          }\n        } else {\n          this.selectedCountry = createEl(\n            \"div\",\n            { class: \"iti__selected-country\" },\n            this.countryContainer\n          );\n        }\n        const selectedCountryPrimary = createEl(\n          \"div\",\n          { class: \"iti__selected-country-primary\" },\n          this.selectedCountry\n        );\n        this.selectedCountryInner = createEl(\n          \"div\",\n          { class: CLASSES.FLAG },\n          selectedCountryPrimary\n        );\n        if (allowDropdown) {\n          this.dropdownArrow = createEl(\n            \"div\",\n            { class: \"iti__arrow\", [ARIA.HIDDEN]: \"true\" },\n            selectedCountryPrimary\n          );\n        }\n        if (separateDialCode) {\n          this.selectedDialCode = createEl(\n            \"div\",\n            { class: \"iti__selected-dial-code\" },\n            this.selectedCountry\n          );\n        }\n        if (allowDropdown) {\n          this._buildDropdownContent();\n        }\n      }\n    }\n    _buildDropdownContent() {\n      const {\n        fixDropdownWidth,\n        useFullscreenPopup,\n        countrySearch,\n        i18n,\n        dropdownContainer,\n        containerClass\n      } = this.options;\n      const extraClasses = fixDropdownWidth ? \"\" : \"iti--flexible-dropdown-width\";\n      this.dropdownContent = createEl(\"div\", {\n        id: `iti-${this.id}__dropdown-content`,\n        class: `iti__dropdown-content ${CLASSES.HIDE} ${extraClasses}`,\n        role: \"dialog\",\n        [ARIA.MODAL]: \"true\"\n      });\n      if (this.isRTL) {\n        this.dropdownContent.setAttribute(\"dir\", \"rtl\");\n      }\n      if (countrySearch) {\n        this._buildSearchUI();\n      }\n      this.countryList = createEl(\n        \"ul\",\n        {\n          class: \"iti__country-list\",\n          id: `iti-${this.id}__country-listbox`,\n          role: \"listbox\",\n          [ARIA.LABEL]: i18n.countryListAriaLabel\n        },\n        this.dropdownContent\n      );\n      this._appendListItems();\n      if (countrySearch) {\n        this.updateSearchResultsA11yText();\n      }\n      if (dropdownContainer) {\n        const dropdownClasses = buildClassNames({\n          iti: true,\n          \"iti--container\": true,\n          \"iti--fullscreen-popup\": useFullscreenPopup,\n          \"iti--inline-dropdown\": !useFullscreenPopup,\n          [containerClass]: Boolean(containerClass)\n        });\n        this.dropdown = createEl(\"div\", { class: dropdownClasses });\n        this.dropdown.appendChild(this.dropdownContent);\n      } else {\n        this.countryContainer.appendChild(this.dropdownContent);\n      }\n    }\n    _buildSearchUI() {\n      const { i18n } = this.options;\n      const searchWrapper = createEl(\n        \"div\",\n        { class: \"iti__search-input-wrapper\" },\n        this.dropdownContent\n      );\n      this.searchIcon = createEl(\n        \"span\",\n        {\n          class: \"iti__search-icon\",\n          [ARIA.HIDDEN]: \"true\"\n        },\n        searchWrapper\n      );\n      this.searchIcon.innerHTML = buildSearchIcon();\n      this.searchInput = createEl(\n        \"input\",\n        {\n          id: `iti-${this.id}__search-input`,\n          // Chrome says inputs need either a name or an id\n          type: \"search\",\n          class: \"iti__search-input\",\n          placeholder: i18n.searchPlaceholder,\n          // role=combobox + aria-autocomplete=list + aria-activedescendant allows maintaining focus on the search input while allowing users to navigate search results with up/down keyboard keys\n          role: \"combobox\",\n          [ARIA.EXPANDED]: \"true\",\n          [ARIA.LABEL]: i18n.searchPlaceholder,\n          [ARIA.CONTROLS]: `iti-${this.id}__country-listbox`,\n          [ARIA.AUTOCOMPLETE]: \"list\",\n          autocomplete: \"off\"\n        },\n        searchWrapper\n      );\n      this.searchClearButton = createEl(\n        \"button\",\n        {\n          type: \"button\",\n          class: `iti__search-clear ${CLASSES.HIDE}`,\n          [ARIA.LABEL]: i18n.clearSearchAriaLabel,\n          tabindex: \"-1\"\n        },\n        searchWrapper\n      );\n      this.searchClearButton.innerHTML = buildClearIcon(this.id);\n      this.searchResultsA11yText = createEl(\n        \"span\",\n        { class: \"iti__a11y-text\" },\n        this.dropdownContent\n      );\n      this.searchNoResults = createEl(\n        \"div\",\n        {\n          class: `iti__no-results ${CLASSES.HIDE}`,\n          [ARIA.HIDDEN]: \"true\"\n          // all a11y messaging happens in this.searchResultsA11yText\n        },\n        this.dropdownContent\n      );\n      this.searchNoResults.textContent = i18n.zeroSearchResults;\n    }\n    _maybeUpdateInputPaddingAndReveal() {\n      if (this.countryContainer) {\n        this.updateInputPadding();\n        this.countryContainer.classList.remove(CLASSES.V_HIDE);\n      }\n    }\n    _maybeBuildHiddenInputs(wrapper) {\n      const { hiddenInput } = this.options;\n      if (hiddenInput) {\n        const telInputName = this.telInput.getAttribute(\"name\") || \"\";\n        const names = hiddenInput(telInputName);\n        if (names.phone) {\n          const existingInput = this.telInput.form?.querySelector(\n            `input[name=\"${names.phone}\"]`\n          );\n          if (existingInput) {\n            this.hiddenInput = existingInput;\n          } else {\n            this.hiddenInput = createEl(\"input\", {\n              type: \"hidden\",\n              name: names.phone\n            });\n            wrapper.appendChild(this.hiddenInput);\n          }\n        }\n        if (names.country) {\n          const existingInput = this.telInput.form?.querySelector(\n            `input[name=\"${names.country}\"]`\n          );\n          if (existingInput) {\n            this.hiddenInputCountry = existingInput;\n          } else {\n            this.hiddenInputCountry = createEl(\"input\", {\n              type: \"hidden\",\n              name: names.country\n            });\n            wrapper.appendChild(this.hiddenInputCountry);\n          }\n        }\n      }\n    }\n    //* For each country: add a country list item <li> to the countryList <ul> container.\n    _appendListItems() {\n      const frag = document.createDocumentFragment();\n      for (let i = 0; i < this.countries.length; i++) {\n        const c = this.countries[i];\n        const liClass = buildClassNames({\n          [CLASSES.COUNTRY_ITEM]: true,\n          [CLASSES.HIGHLIGHT]: i === 0\n        });\n        const listItem = createEl(\"li\", {\n          id: `iti-${this.id}__item-${c.iso2}`,\n          class: liClass,\n          tabindex: \"-1\",\n          role: \"option\",\n          [ARIA.SELECTED]: \"false\"\n        });\n        listItem.dataset.dialCode = c.dialCode;\n        listItem.dataset.countryCode = c.iso2;\n        c.nodeById[this.id] = listItem;\n        if (this.options.showFlags) {\n          createEl(\"div\", { class: `${CLASSES.FLAG} iti__${c.iso2}` }, listItem);\n        }\n        const nameEl = createEl(\"span\", { class: \"iti__country-name\" }, listItem);\n        nameEl.textContent = c.name;\n        const dialEl = createEl(\"span\", { class: \"iti__dial-code\" }, listItem);\n        if (this.isRTL) {\n          dialEl.setAttribute(\"dir\", \"ltr\");\n        }\n        dialEl.textContent = `+${c.dialCode}`;\n        frag.appendChild(listItem);\n      }\n      this.countryList.appendChild(frag);\n    }\n    //* Update the input padding to make space for the selected country/dial code.\n    updateInputPadding() {\n      if (this.selectedCountry) {\n        const fallbackWidth = this.options.separateDialCode ? LAYOUT.SANE_SELECTED_WITH_DIAL_WIDTH : LAYOUT.SANE_SELECTED_NO_DIAL_WIDTH;\n        const selectedCountryWidth = this.selectedCountry.offsetWidth || this._getHiddenSelectedCountryWidth() || fallbackWidth;\n        const inputPadding = selectedCountryWidth + LAYOUT.INPUT_PADDING_EXTRA_LEFT;\n        this.telInput.style.paddingLeft = `${inputPadding}px`;\n      }\n    }\n    //* When input is in a hidden container during init, we cannot calculate the selected country width.\n    //* Fix: clone the markup, make it invisible, add it to the end of the DOM, and then measure it's width.\n    //* To get the right styling to apply, all we need is a shallow clone of the container,\n    //* and then to inject a deep clone of the selectedCountry element.\n    _getHiddenSelectedCountryWidth() {\n      if (this.telInput.parentNode) {\n        let body;\n        try {\n          body = window.top.document.body;\n        } catch (e) {\n          body = document.body;\n        }\n        const containerClone = this.telInput.parentNode.cloneNode(\n          false\n        );\n        containerClone.style.visibility = \"hidden\";\n        body.appendChild(containerClone);\n        const countryContainerClone = this.countryContainer.cloneNode();\n        containerClone.appendChild(countryContainerClone);\n        const selectedCountryClone = this.selectedCountry.cloneNode(\n          true\n        );\n        countryContainerClone.appendChild(selectedCountryClone);\n        const width = selectedCountryClone.offsetWidth;\n        body.removeChild(containerClone);\n        return width;\n      }\n      return 0;\n    }\n    //* Update search results text (for a11y).\n    updateSearchResultsA11yText() {\n      const { i18n } = this.options;\n      const count = this.countryList.childElementCount;\n      let searchText;\n      if (count === 0) {\n        searchText = i18n.zeroSearchResults;\n      } else {\n        if (i18n.searchResultsText) {\n          searchText = i18n.searchResultsText(count);\n        } else if (count === 1) {\n          searchText = i18n.oneSearchResult;\n        } else {\n          searchText = i18n.multipleSearchResults.replace(\n            \"${count}\",\n            count.toString()\n          );\n        }\n      }\n      this.searchResultsA11yText.textContent = searchText;\n    }\n    //* Check if an element is visible within it's container, else scroll until it is.\n    scrollTo(element) {\n      const container = this.countryList;\n      const scrollTop = document.documentElement.scrollTop;\n      const containerHeight = container.offsetHeight;\n      const containerTop = container.getBoundingClientRect().top + scrollTop;\n      const containerBottom = containerTop + containerHeight;\n      const elementHeight = element.offsetHeight;\n      const elementTop = element.getBoundingClientRect().top + scrollTop;\n      const elementBottom = elementTop + elementHeight;\n      const newScrollTop = elementTop - containerTop + container.scrollTop;\n      if (elementTop < containerTop) {\n        container.scrollTop = newScrollTop;\n      } else if (elementBottom > containerBottom) {\n        const heightDifference = containerHeight - elementHeight;\n        container.scrollTop = newScrollTop - heightDifference;\n      }\n    }\n    //* Remove highlighting from other list items and highlight the given item.\n    highlightListItem(listItem, shouldFocus) {\n      const prevItem = this.highlightedItem;\n      if (prevItem) {\n        prevItem.classList.remove(CLASSES.HIGHLIGHT);\n        prevItem.setAttribute(ARIA.SELECTED, \"false\");\n      }\n      this.highlightedItem = listItem;\n      if (this.highlightedItem) {\n        this.highlightedItem.classList.add(CLASSES.HIGHLIGHT);\n        this.highlightedItem.setAttribute(ARIA.SELECTED, \"true\");\n        if (this.options.countrySearch) {\n          const activeDescendant = this.highlightedItem.getAttribute(\"id\") || \"\";\n          this.searchInput.setAttribute(ARIA.ACTIVE_DESCENDANT, activeDescendant);\n        }\n      }\n      if (shouldFocus) {\n        this.highlightedItem.focus();\n      }\n    }\n    //* Country search: Filter the country list to the given array of countries.\n    filterCountries(matchedCountries) {\n      this.countryList.innerHTML = \"\";\n      let noCountriesAddedYet = true;\n      for (const c of matchedCountries) {\n        const listItem = c.nodeById[this.id];\n        if (listItem) {\n          this.countryList.appendChild(listItem);\n          if (noCountriesAddedYet) {\n            this.highlightListItem(listItem, false);\n            noCountriesAddedYet = false;\n          }\n        }\n      }\n      if (noCountriesAddedYet) {\n        this.highlightListItem(null, false);\n        if (this.searchNoResults) {\n          this.searchNoResults.classList.remove(CLASSES.HIDE);\n        }\n      } else if (this.searchNoResults) {\n        this.searchNoResults.classList.add(CLASSES.HIDE);\n      }\n      this.countryList.scrollTop = 0;\n      this.updateSearchResultsA11yText();\n    }\n    destroy() {\n      this.telInput.iti = void 0;\n      delete this.telInput.dataset.intlTelInputId;\n      if (this.options.separateDialCode) {\n        this.telInput.style.paddingLeft = this.originalPaddingLeft;\n      }\n      const wrapper = this.telInput.parentNode;\n      wrapper.before(this.telInput);\n      wrapper.remove();\n      this.telInput = null;\n      this.countryContainer = null;\n      this.selectedCountry = null;\n      this.selectedCountryInner = null;\n      this.selectedDialCode = null;\n      this.dropdownArrow = null;\n      this.dropdownContent = null;\n      this.searchInput = null;\n      this.searchIcon = null;\n      this.searchClearButton = null;\n      this.searchNoResults = null;\n      this.searchResultsA11yText = null;\n      this.countryList = null;\n      this.dropdown = null;\n      this.hiddenInput = null;\n      this.hiddenInputCountry = null;\n      this.highlightedItem = null;\n      for (const c of this.countries) {\n        delete c.nodeById[this.id];\n      }\n      this.countries = null;\n    }\n  };\n\n  // src/js/modules/data/country-data.ts\n  var processAllCountries = (options) => {\n    const { onlyCountries, excludeCountries } = options;\n    if (onlyCountries.length) {\n      const lowerCaseOnlyCountries = onlyCountries.map(\n        (country) => country.toLowerCase()\n      );\n      return data_default.filter(\n        (country) => lowerCaseOnlyCountries.includes(country.iso2)\n      );\n    } else if (excludeCountries.length) {\n      const lowerCaseExcludeCountries = excludeCountries.map(\n        (country) => country.toLowerCase()\n      );\n      return data_default.filter(\n        (country) => !lowerCaseExcludeCountries.includes(country.iso2)\n      );\n    }\n    return data_default;\n  };\n  var translateCountryNames = (countries, options) => {\n    for (const c of countries) {\n      const iso2 = c.iso2.toLowerCase();\n      if (options.i18n[iso2]) {\n        c.name = options.i18n[iso2];\n      }\n    }\n  };\n  var processDialCodes = (countries, options) => {\n    const dialCodes = /* @__PURE__ */ new Set();\n    let dialCodeMaxLen = 0;\n    const dialCodeToIso2Map = {};\n    const _addToDialCodeMap = (iso2, dialCode, priority) => {\n      if (!iso2 || !dialCode) {\n        return;\n      }\n      if (dialCode.length > dialCodeMaxLen) {\n        dialCodeMaxLen = dialCode.length;\n      }\n      if (!dialCodeToIso2Map.hasOwnProperty(dialCode)) {\n        dialCodeToIso2Map[dialCode] = [];\n      }\n      const iso2List = dialCodeToIso2Map[dialCode];\n      if (iso2List.includes(iso2)) {\n        return;\n      }\n      const index = priority !== void 0 ? priority : iso2List.length;\n      iso2List[index] = iso2;\n    };\n    for (const c of countries) {\n      if (!dialCodes.has(c.dialCode)) {\n        dialCodes.add(c.dialCode);\n      }\n      for (let k = 1; k < c.dialCode.length; k++) {\n        const partialDialCode = c.dialCode.substring(0, k);\n        _addToDialCodeMap(c.iso2, partialDialCode);\n      }\n      _addToDialCodeMap(c.iso2, c.dialCode, c.priority);\n    }\n    if (options.onlyCountries.length || options.excludeCountries.length) {\n      dialCodes.forEach((dialCode) => {\n        dialCodeToIso2Map[dialCode] = dialCodeToIso2Map[dialCode].filter(Boolean);\n      });\n    }\n    for (const c of countries) {\n      if (c.areaCodes) {\n        const rootIso2Code = dialCodeToIso2Map[c.dialCode][0];\n        for (const areaCode of c.areaCodes) {\n          for (let k = 1; k < areaCode.length; k++) {\n            const partialAreaCode = areaCode.substring(0, k);\n            const partialDialCode = c.dialCode + partialAreaCode;\n            _addToDialCodeMap(rootIso2Code, partialDialCode);\n            _addToDialCodeMap(c.iso2, partialDialCode);\n          }\n          _addToDialCodeMap(c.iso2, c.dialCode + areaCode);\n        }\n      }\n    }\n    return { dialCodes, dialCodeMaxLen, dialCodeToIso2Map };\n  };\n  var sortCountries = (countries, options) => {\n    if (options.countryOrder) {\n      options.countryOrder = options.countryOrder.map(\n        (iso2) => iso2.toLowerCase()\n      );\n    }\n    countries.sort((a, b) => {\n      const { countryOrder } = options;\n      if (countryOrder) {\n        const aIndex = countryOrder.indexOf(a.iso2);\n        const bIndex = countryOrder.indexOf(b.iso2);\n        const aIndexExists = aIndex > -1;\n        const bIndexExists = bIndex > -1;\n        if (aIndexExists || bIndexExists) {\n          if (aIndexExists && bIndexExists) {\n            return aIndex - bIndex;\n          }\n          return aIndexExists ? -1 : 1;\n        }\n      }\n      return a.name.localeCompare(b.name);\n    });\n  };\n  var cacheSearchTokens = (countries) => {\n    for (const c of countries) {\n      c.normalisedName = normaliseString(c.name);\n      c.initials = c.normalisedName.split(/[^a-z]/).map((word) => word[0]).join(\"\");\n      c.dialCodePlus = `+${c.dialCode}`;\n    }\n  };\n\n  // src/js/modules/format/formatting.ts\n  var beforeSetNumber = (fullNumber, dialCode, separateDialCode, selectedCountryData) => {\n    let number = fullNumber;\n    if (separateDialCode) {\n      if (dialCode) {\n        dialCode = `+${selectedCountryData.dialCode}`;\n        const start = number[dialCode.length] === \" \" || number[dialCode.length] === \"-\" ? dialCode.length + 1 : dialCode.length;\n        number = number.substring(start);\n      }\n    }\n    return number;\n  };\n  var formatNumberAsYouType = (fullNumber, telInputValue, utils, selectedCountryData, separateDialCode) => {\n    const result = utils ? utils.formatNumberAsYouType(fullNumber, selectedCountryData.iso2) : fullNumber;\n    const { dialCode } = selectedCountryData;\n    if (separateDialCode && telInputValue.charAt(0) !== \"+\" && result.includes(`+${dialCode}`)) {\n      const afterDialCode = result.split(`+${dialCode}`)[1] || \"\";\n      return afterDialCode.trim();\n    }\n    return result;\n  };\n\n  // src/js/modules/format/caret.ts\n  var translateCursorPosition = (relevantChars, formattedValue, prevCaretPos, isDeleteForwards) => {\n    if (prevCaretPos === 0 && !isDeleteForwards) {\n      return 0;\n    }\n    let relevantCharCount = 0;\n    for (let i = 0; i < formattedValue.length; i++) {\n      if (/[+0-9]/.test(formattedValue[i])) {\n        relevantCharCount++;\n      }\n      if (relevantCharCount === relevantChars && !isDeleteForwards) {\n        return i + 1;\n      }\n      if (isDeleteForwards && relevantCharCount === relevantChars + 1) {\n        return i;\n      }\n    }\n    return formattedValue.length;\n  };\n\n  // src/js/modules/data/nanp-regionless.ts\n  var regionlessNanpNumbers = [\n    \"800\",\n    \"822\",\n    \"833\",\n    \"844\",\n    \"855\",\n    \"866\",\n    \"877\",\n    \"880\",\n    \"881\",\n    \"882\",\n    \"883\",\n    \"884\",\n    \"885\",\n    \"886\",\n    \"887\",\n    \"888\",\n    \"889\"\n  ];\n  var isRegionlessNanp = (number) => {\n    const numeric = getNumeric(number);\n    if (numeric.startsWith(DIAL.NANP) && numeric.length >= 4) {\n      const areaCode = numeric.substring(1, 4);\n      return regionlessNanpNumbers.includes(areaCode);\n    }\n    return false;\n  };\n\n  // src/js/intl-tel-input.ts\n  for (const c of data_default) {\n    c.name = en_default[c.iso2];\n  }\n  var id = 0;\n  var iso2Set = new Set(data_default.map((c) => c.iso2));\n  var isIso2 = (val) => iso2Set.has(val);\n  var Iti = class _Iti {\n    constructor(input, customOptions = {}) {\n      this.id = id++;\n      this.options = { ...defaults, ...customOptions };\n      applyOptionSideEffects(this.options, en_default);\n      this.ui = new UI(input, this.options, this.id);\n      this.isAndroid = _Iti._getIsAndroid();\n      this.promise = this._createInitPromises();\n      this.countries = processAllCountries(this.options);\n      const { dialCodes, dialCodeMaxLen, dialCodeToIso2Map } = processDialCodes(\n        this.countries,\n        this.options\n      );\n      this.dialCodes = dialCodes;\n      this.dialCodeMaxLen = dialCodeMaxLen;\n      this.dialCodeToIso2Map = dialCodeToIso2Map;\n      this.countryByIso2 = new Map(this.countries.map((c) => [c.iso2, c]));\n      this._init();\n    }\n    static _getIsAndroid() {\n      return typeof navigator !== \"undefined\" ? /Android/i.test(navigator.userAgent) : false;\n    }\n    _createInitPromises() {\n      const autoCountryPromise = new Promise((resolve, reject) => {\n        this.resolveAutoCountryPromise = resolve;\n        this.rejectAutoCountryPromise = reject;\n      });\n      const utilsScriptPromise = new Promise((resolve, reject) => {\n        this.resolveUtilsScriptPromise = resolve;\n        this.rejectUtilsScriptPromise = reject;\n      });\n      return Promise.all([autoCountryPromise, utilsScriptPromise]);\n    }\n    //* Can't be private as it's called from intlTelInput convenience wrapper.\n    _init() {\n      this.selectedCountryData = {};\n      this.abortController = new AbortController();\n      this._processCountryData();\n      this.ui.generateMarkup(this.countries);\n      this._setInitialState();\n      this._initListeners();\n      this._initRequests();\n    }\n    //********************\n    //*  PRIVATE METHODS\n    //********************\n    //* Prepare all of the country data, including onlyCountries, excludeCountries, countryOrder options.\n    _processCountryData() {\n      translateCountryNames(this.countries, this.options);\n      sortCountries(this.countries, this.options);\n      cacheSearchTokens(this.countries);\n    }\n    //* Set the initial state of the input value and the selected country by:\n    //* 1. Extracting a dial code from the given number\n    //* 2. Using explicit initialCountry\n    _setInitialState(overrideAutoCountry = false) {\n      const attributeValue = this.ui.telInput.getAttribute(\"value\");\n      const inputValue = this.ui.telInput.value;\n      const useAttribute = attributeValue && attributeValue.startsWith(\"+\") && (!inputValue || !inputValue.startsWith(\"+\"));\n      const val = useAttribute ? attributeValue : inputValue;\n      const dialCode = this._getDialCode(val);\n      const isRegionlessNanpNumber = isRegionlessNanp(val);\n      const { initialCountry, geoIpLookup } = this.options;\n      const isAutoCountry = initialCountry === INITIAL_COUNTRY.AUTO && geoIpLookup;\n      if (dialCode && !isRegionlessNanpNumber) {\n        this._updateCountryFromNumber(val);\n      } else if (!isAutoCountry || overrideAutoCountry) {\n        const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : \"\";\n        if (isIso2(lowerInitialCountry)) {\n          this._setCountry(lowerInitialCountry);\n        } else {\n          if (dialCode && isRegionlessNanpNumber) {\n            this._setCountry(US.ISO2);\n          } else {\n            this._setCountry(\"\");\n          }\n        }\n      }\n      if (val) {\n        this._updateValFromNumber(val);\n      }\n    }\n    //* Initialise the main event listeners: input keyup, and click selected country.\n    _initListeners() {\n      this._initTelInputListeners();\n      if (this.options.allowDropdown) {\n        this._initDropdownListeners();\n      }\n      if ((this.ui.hiddenInput || this.ui.hiddenInputCountry) && this.ui.telInput.form) {\n        this._initHiddenInputListener();\n      }\n    }\n    //* Update hidden input on form submit.\n    _initHiddenInputListener() {\n      const handleHiddenInputSubmit = () => {\n        if (this.ui.hiddenInput) {\n          this.ui.hiddenInput.value = this.getNumber();\n        }\n        if (this.ui.hiddenInputCountry) {\n          this.ui.hiddenInputCountry.value = this.selectedCountryData.iso2 || \"\";\n        }\n      };\n      this.ui.telInput.form?.addEventListener(\"submit\", handleHiddenInputSubmit, {\n        signal: this.abortController.signal\n      });\n    }\n    //* initialise the dropdown listeners.\n    _initDropdownListeners() {\n      const signal = this.abortController.signal;\n      const handleLabelClick = (e) => {\n        if (this.ui.dropdownContent.classList.contains(CLASSES.HIDE)) {\n          this.ui.telInput.focus();\n        } else {\n          e.preventDefault();\n        }\n      };\n      const label = this.ui.telInput.closest(\"label\");\n      if (label) {\n        label.addEventListener(\"click\", handleLabelClick, { signal });\n      }\n      const handleClickSelectedCountry = () => {\n        const dropdownClosed = this.ui.dropdownContent.classList.contains(\n          CLASSES.HIDE\n        );\n        if (dropdownClosed && !this.ui.telInput.disabled && !this.ui.telInput.readOnly) {\n          this._openDropdown();\n        }\n      };\n      this.ui.selectedCountry.addEventListener(\n        \"click\",\n        handleClickSelectedCountry,\n        {\n          signal\n        }\n      );\n      const handleCountryContainerKeydown = (e) => {\n        const isDropdownHidden = this.ui.dropdownContent.classList.contains(\n          CLASSES.HIDE\n        );\n        if (isDropdownHidden && [KEYS.ARROW_UP, KEYS.ARROW_DOWN, KEYS.SPACE, KEYS.ENTER].includes(e.key)) {\n          e.preventDefault();\n          e.stopPropagation();\n          this._openDropdown();\n        }\n        if (e.key === KEYS.TAB) {\n          this._closeDropdown();\n        }\n      };\n      this.ui.countryContainer.addEventListener(\n        \"keydown\",\n        handleCountryContainerKeydown,\n        { signal }\n      );\n    }\n    //* Init many requests: utils script / geo ip lookup.\n    _initRequests() {\n      const { loadUtils, initialCountry, geoIpLookup } = this.options;\n      if (loadUtils && !intlTelInput.utils) {\n        const doAttachUtils = () => {\n          intlTelInput.attachUtils(loadUtils)?.catch(() => {\n          });\n        };\n        if (intlTelInput.documentReady()) {\n          doAttachUtils();\n        } else {\n          const handlePageLoad = () => {\n            doAttachUtils();\n          };\n          window.addEventListener(\"load\", handlePageLoad, {\n            signal: this.abortController.signal\n          });\n        }\n      } else {\n        this.resolveUtilsScriptPromise();\n      }\n      const isAutoCountry = initialCountry === INITIAL_COUNTRY.AUTO && geoIpLookup;\n      if (isAutoCountry && !this.selectedCountryData.iso2) {\n        this._loadAutoCountry();\n      } else {\n        this.resolveAutoCountryPromise();\n      }\n    }\n    //* Perform the geo ip lookup.\n    _loadAutoCountry() {\n      if (intlTelInput.autoCountry) {\n        this.handleAutoCountry();\n      } else if (!intlTelInput.startedLoadingAutoCountry) {\n        intlTelInput.startedLoadingAutoCountry = true;\n        if (typeof this.options.geoIpLookup === \"function\") {\n          this.options.geoIpLookup(\n            (iso2 = \"\") => {\n              const iso2Lower = iso2.toLowerCase();\n              if (isIso2(iso2Lower)) {\n                intlTelInput.autoCountry = iso2Lower;\n                setTimeout(() => forEachInstance(\"handleAutoCountry\"));\n              } else {\n                this._setInitialState(true);\n                forEachInstance(\"rejectAutoCountryPromise\");\n              }\n            },\n            () => {\n              this._setInitialState(true);\n              forEachInstance(\"rejectAutoCountryPromise\");\n            }\n          );\n        }\n      }\n    }\n    _openDropdownWithPlus() {\n      this._openDropdown();\n      this.ui.searchInput.value = \"+\";\n      this._filterCountriesByQuery(\"\");\n    }\n    //* Initialize the tel input listeners.\n    _initTelInputListeners() {\n      this._bindInputListener();\n      this._maybeBindKeydownListener();\n      this._maybeBindPasteListener();\n    }\n    _bindInputListener() {\n      const {\n        strictMode,\n        formatAsYouType,\n        separateDialCode,\n        allowDropdown,\n        countrySearch\n      } = this.options;\n      let userOverrideFormatting = false;\n      if (REGEX.ALPHA_UNICODE.test(this.ui.telInput.value)) {\n        userOverrideFormatting = true;\n      }\n      const handleInputEvent = (e) => {\n        if (this.isAndroid && e?.data === \"+\" && separateDialCode && allowDropdown && countrySearch) {\n          const currentCaretPos = this.ui.telInput.selectionStart || 0;\n          const valueBeforeCaret = this.ui.telInput.value.substring(\n            0,\n            currentCaretPos - 1\n          );\n          const valueAfterCaret = this.ui.telInput.value.substring(currentCaretPos);\n          this.ui.telInput.value = valueBeforeCaret + valueAfterCaret;\n          this._openDropdownWithPlus();\n          return;\n        }\n        if (this._updateCountryFromNumber(this.ui.telInput.value)) {\n          this._triggerCountryChange();\n        }\n        const isFormattingChar = e?.data && REGEX.NON_PLUS_NUMERIC.test(e.data);\n        const isPaste = e?.inputType === INPUT_TYPES.PASTE && this.ui.telInput.value;\n        if (isFormattingChar || isPaste && !strictMode) {\n          userOverrideFormatting = true;\n        } else if (!REGEX.NON_PLUS_NUMERIC.test(this.ui.telInput.value)) {\n          userOverrideFormatting = false;\n        }\n        const isSetNumber = e?.detail && e.detail[\"isSetNumber\"];\n        if (formatAsYouType && !userOverrideFormatting && !isSetNumber) {\n          const currentCaretPos = this.ui.telInput.selectionStart || 0;\n          const valueBeforeCaret = this.ui.telInput.value.substring(\n            0,\n            currentCaretPos\n          );\n          const relevantCharsBeforeCaret = valueBeforeCaret.replace(\n            REGEX.NON_PLUS_NUMERIC_GLOBAL,\n            \"\"\n          ).length;\n          const isDeleteForwards = e?.inputType === INPUT_TYPES.DELETE_FWD;\n          const fullNumber = this._getFullNumber();\n          const formattedValue = formatNumberAsYouType(\n            fullNumber,\n            this.ui.telInput.value,\n            intlTelInput.utils,\n            this.selectedCountryData,\n            this.options.separateDialCode\n          );\n          const newCaretPos = translateCursorPosition(\n            relevantCharsBeforeCaret,\n            formattedValue,\n            currentCaretPos,\n            isDeleteForwards\n          );\n          this.ui.telInput.value = formattedValue;\n          this.ui.telInput.setSelectionRange(newCaretPos, newCaretPos);\n        }\n      };\n      this.ui.telInput.addEventListener(\n        \"input\",\n        handleInputEvent,\n        {\n          signal: this.abortController.signal\n        }\n      );\n    }\n    _maybeBindKeydownListener() {\n      const { strictMode, separateDialCode, allowDropdown, countrySearch } = this.options;\n      if (strictMode || separateDialCode) {\n        const handleKeydownEvent = (e) => {\n          if (e.key && e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey) {\n            if (separateDialCode && allowDropdown && countrySearch && e.key === \"+\") {\n              e.preventDefault();\n              this._openDropdownWithPlus();\n              return;\n            }\n            if (strictMode) {\n              const value = this.ui.telInput.value;\n              const alreadyHasPlus = value.startsWith(\"+\");\n              const isInitialPlus = !alreadyHasPlus && this.ui.telInput.selectionStart === 0 && e.key === \"+\";\n              const isNumeric = /^[0-9]$/.test(e.key);\n              const isAllowedChar = separateDialCode ? isNumeric : isInitialPlus || isNumeric;\n              const newValue = value.slice(0, this.ui.telInput.selectionStart) + e.key + value.slice(this.ui.telInput.selectionEnd);\n              const newFullNumber = this._getFullNumber(newValue);\n              const coreNumber = intlTelInput.utils.getCoreNumber(\n                newFullNumber,\n                this.selectedCountryData.iso2\n              );\n              const hasExceededMaxLength = this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength;\n              const newCountry = this._getNewCountryFromNumber(newFullNumber);\n              const isChangingDialCode = newCountry !== null;\n              if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {\n                e.preventDefault();\n              }\n            }\n          }\n        };\n        this.ui.telInput.addEventListener(\"keydown\", handleKeydownEvent, {\n          signal: this.abortController.signal\n        });\n      }\n    }\n    _maybeBindPasteListener() {\n      if (this.options.strictMode) {\n        const handlePasteEvent = (e) => {\n          e.preventDefault();\n          const input = this.ui.telInput;\n          const selStart = input.selectionStart;\n          const selEnd = input.selectionEnd;\n          const before = input.value.slice(0, selStart);\n          const after = input.value.slice(selEnd);\n          const iso2 = this.selectedCountryData.iso2;\n          const pasted = e.clipboardData.getData(\"text\");\n          const initialCharSelected = selStart === 0 && selEnd > 0;\n          const allowLeadingPlus = !input.value.startsWith(\"+\") || initialCharSelected;\n          const allowedChars = pasted.replace(REGEX.NON_PLUS_NUMERIC_GLOBAL, \"\");\n          const hasLeadingPlus = allowedChars.startsWith(\"+\");\n          const numerics = allowedChars.replace(/\\+/g, \"\");\n          const sanitised = hasLeadingPlus && allowLeadingPlus ? `+${numerics}` : numerics;\n          let newVal = before + sanitised + after;\n          let coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);\n          while (coreNumber.length === 0 && newVal.length > 0) {\n            newVal = newVal.slice(0, -1);\n            coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);\n          }\n          if (!coreNumber) {\n            return;\n          }\n          if (this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength) {\n            if (input.selectionEnd === input.value.length) {\n              const trimLength = coreNumber.length - this.maxCoreNumberLength;\n              newVal = newVal.slice(0, newVal.length - trimLength);\n            } else {\n              return;\n            }\n          }\n          input.value = newVal;\n          const caretPos = selStart + sanitised.length;\n          input.setSelectionRange(caretPos, caretPos);\n          input.dispatchEvent(new InputEvent(\"input\", { bubbles: true }));\n        };\n        this.ui.telInput.addEventListener(\"paste\", handlePasteEvent, {\n          signal: this.abortController.signal\n        });\n      }\n    }\n    //* Adhere to the input's maxlength attr.\n    _cap(number) {\n      const max = Number(this.ui.telInput.getAttribute(\"maxlength\"));\n      return max && number.length > max ? number.substring(0, max) : number;\n    }\n    //* Trigger a custom event on the input (typed via ItiEventMap).\n    _trigger(name, detailProps = {}) {\n      const e = new CustomEvent(name, {\n        bubbles: true,\n        cancelable: true,\n        detail: detailProps\n      });\n      this.ui.telInput.dispatchEvent(e);\n    }\n    //* Open the dropdown.\n    _openDropdown() {\n      const { fixDropdownWidth, countrySearch } = this.options;\n      this.dropdownAbortController = new AbortController();\n      if (fixDropdownWidth) {\n        this.ui.dropdownContent.style.width = `${this.ui.telInput.offsetWidth}px`;\n      }\n      this.ui.dropdownContent.classList.remove(CLASSES.HIDE);\n      this.ui.selectedCountry.setAttribute(ARIA.EXPANDED, \"true\");\n      this._setDropdownPosition();\n      if (countrySearch) {\n        const firstCountryItem = this.ui.countryList.firstElementChild;\n        if (firstCountryItem) {\n          this.ui.highlightListItem(firstCountryItem, false);\n          this.ui.countryList.scrollTop = 0;\n        }\n        this.ui.searchInput.focus();\n      }\n      this._bindDropdownListeners();\n      this.ui.dropdownArrow.classList.add(CLASSES.ARROW_UP);\n      this._trigger(EVENTS.OPEN_COUNTRY_DROPDOWN);\n    }\n    //* Set the dropdown position\n    _setDropdownPosition() {\n      if (this.options.dropdownContainer) {\n        this.options.dropdownContainer.appendChild(this.ui.dropdown);\n      }\n      if (!this.options.useFullscreenPopup) {\n        const inputPosRelativeToVP = this.ui.telInput.getBoundingClientRect();\n        const inputHeight = this.ui.telInput.offsetHeight;\n        if (this.options.dropdownContainer) {\n          this.ui.dropdown.style.top = `${inputPosRelativeToVP.top + inputHeight}px`;\n          this.ui.dropdown.style.left = `${inputPosRelativeToVP.left}px`;\n          const handleWindowScroll = () => this._closeDropdown();\n          window.addEventListener(\"scroll\", handleWindowScroll, {\n            signal: this.dropdownAbortController.signal\n          });\n        }\n      }\n    }\n    //* We only bind dropdown listeners when the dropdown is open.\n    _bindDropdownListeners() {\n      const signal = this.dropdownAbortController.signal;\n      this._bindDropdownMouseoverListener(signal);\n      this._bindDropdownCountryClickListener(signal);\n      this._bindDropdownClickOffListener(signal);\n      this._bindDropdownKeydownListener(signal);\n      if (this.options.countrySearch) {\n        this._bindDropdownSearchListeners(signal);\n      }\n    }\n    //* When mouse over a list item, just highlight that one\n    //* we add the class \"highlight\", so if they hit \"enter\" we know which one to select.\n    _bindDropdownMouseoverListener(signal) {\n      const handleMouseoverCountryList = (e) => {\n        const listItem = e.target?.closest(\n          `.${CLASSES.COUNTRY_ITEM}`\n        );\n        if (listItem) {\n          this.ui.highlightListItem(listItem, false);\n        }\n      };\n      this.ui.countryList.addEventListener(\n        \"mouseover\",\n        handleMouseoverCountryList,\n        {\n          signal\n        }\n      );\n    }\n    //* Listen for country selection.\n    _bindDropdownCountryClickListener(signal) {\n      const handleClickCountryList = (e) => {\n        const listItem = e.target?.closest(\n          `.${CLASSES.COUNTRY_ITEM}`\n        );\n        if (listItem) {\n          this._selectListItem(listItem);\n        }\n      };\n      this.ui.countryList.addEventListener(\"click\", handleClickCountryList, {\n        signal\n      });\n    }\n    //* Click off to close (except when this initial opening click is bubbling up).\n    //* We cannot just stopPropagation as it may be needed to close another instance.\n    _bindDropdownClickOffListener(signal) {\n      const handleClickOffToClose = (e) => {\n        const target = e.target;\n        const clickedInsideDropdown = !!target.closest(\n          `#iti-${this.id}__dropdown-content`\n        );\n        if (!clickedInsideDropdown) {\n          this._closeDropdown();\n        }\n      };\n      setTimeout(() => {\n        document.documentElement.addEventListener(\n          \"click\",\n          handleClickOffToClose,\n          { signal }\n        );\n      }, 0);\n    }\n    //* Listen for up/down scrolling, enter to select, or escape to close.\n    //* Use keydown as keypress doesn't fire for non-char keys and we want to catch if they\n    //* just hit down and hold it to scroll down (no keyup event).\n    //* Listen on the document because that's where key events are triggered if no input has focus.\n    _bindDropdownKeydownListener(signal) {\n      let query = \"\";\n      let queryTimer = null;\n      const handleKeydownOnDropdown = (e) => {\n        const allowedKeys = [\n          KEYS.ARROW_UP,\n          KEYS.ARROW_DOWN,\n          KEYS.ENTER,\n          KEYS.ESC\n        ];\n        if (allowedKeys.includes(e.key)) {\n          e.preventDefault();\n          e.stopPropagation();\n          if (e.key === KEYS.ARROW_UP || e.key === KEYS.ARROW_DOWN) {\n            this._handleUpDownKey(e.key);\n          } else if (e.key === KEYS.ENTER) {\n            this._handleEnterKey();\n          } else if (e.key === KEYS.ESC) {\n            this._closeDropdown();\n          }\n        }\n        if (!this.options.countrySearch && REGEX.HIDDEN_SEARCH_CHAR.test(e.key)) {\n          e.stopPropagation();\n          if (queryTimer) {\n            clearTimeout(queryTimer);\n          }\n          query += e.key.toLowerCase();\n          this._searchForCountry(query);\n          queryTimer = setTimeout(() => {\n            query = \"\";\n          }, TIMINGS.HIDDEN_SEARCH_RESET_MS);\n        }\n      };\n      document.addEventListener(\"keydown\", handleKeydownOnDropdown, { signal });\n    }\n    //* Search input listeners when countrySearch enabled.\n    _bindDropdownSearchListeners(signal) {\n      const doFilter = () => {\n        const inputQuery = this.ui.searchInput.value.trim();\n        this._filterCountriesByQuery(inputQuery);\n        if (this.ui.searchInput.value) {\n          this.ui.searchClearButton.classList.remove(CLASSES.HIDE);\n        } else {\n          this.ui.searchClearButton.classList.add(CLASSES.HIDE);\n        }\n      };\n      let keyupTimer = null;\n      const handleSearchChange = () => {\n        if (keyupTimer) {\n          clearTimeout(keyupTimer);\n        }\n        keyupTimer = setTimeout(() => {\n          doFilter();\n          keyupTimer = null;\n        }, 100);\n      };\n      this.ui.searchInput.addEventListener(\"input\", handleSearchChange, {\n        signal\n      });\n      const handleSearchClear = () => {\n        this.ui.searchInput.value = \"\";\n        this.ui.searchInput.focus();\n        doFilter();\n      };\n      this.ui.searchClearButton.addEventListener(\"click\", handleSearchClear, {\n        signal\n      });\n    }\n    //* Hidden search (countrySearch disabled): Find the first list item whose name starts with the query string.\n    _searchForCountry(query) {\n      const match = findFirstCountryStartingWith(this.countries, query);\n      if (match) {\n        const listItem = match.nodeById[this.id];\n        this.ui.highlightListItem(listItem, false);\n        this.ui.scrollTo(listItem);\n      }\n    }\n    //* Country search: Filter the countries according to the search query.\n    _filterCountriesByQuery(query) {\n      let matchedCountries;\n      if (query === \"\") {\n        matchedCountries = this.countries;\n      } else {\n        matchedCountries = getMatchedCountries(this.countries, query);\n      }\n      this.ui.filterCountries(matchedCountries);\n    }\n    //* Highlight the next/prev item in the list (and ensure it is visible).\n    _handleUpDownKey(key) {\n      let next = key === KEYS.ARROW_UP ? this.ui.highlightedItem?.previousElementSibling : this.ui.highlightedItem?.nextElementSibling;\n      if (!next && this.ui.countryList.childElementCount > 1) {\n        next = key === KEYS.ARROW_UP ? this.ui.countryList.lastElementChild : this.ui.countryList.firstElementChild;\n      }\n      if (next) {\n        this.ui.scrollTo(next);\n        this.ui.highlightListItem(next, false);\n      }\n    }\n    //* Select the currently highlighted item.\n    _handleEnterKey() {\n      if (this.ui.highlightedItem) {\n        this._selectListItem(this.ui.highlightedItem);\n      }\n    }\n    //* Update the input's value to the given val (format first if possible)\n    //* NOTE: this is called from _setInitialState, handleUtils and setNumber.\n    _updateValFromNumber(fullNumber) {\n      let number = fullNumber;\n      if (this.options.formatOnDisplay && intlTelInput.utils && this.selectedCountryData) {\n        const useNational = this.options.nationalMode || !number.startsWith(\"+\") && !this.options.separateDialCode;\n        const { NATIONAL, INTERNATIONAL } = intlTelInput.utils.numberFormat;\n        const format = useNational ? NATIONAL : INTERNATIONAL;\n        number = intlTelInput.utils.formatNumber(\n          number,\n          this.selectedCountryData.iso2,\n          format\n        );\n      }\n      number = this._beforeSetNumber(number);\n      this.ui.telInput.value = number;\n    }\n    //* Check if need to select a new country based on the given number\n    //* Note: called from _setInitialState, keyup handler, setNumber.\n    _updateCountryFromNumber(fullNumber) {\n      const iso2 = this._getNewCountryFromNumber(fullNumber);\n      if (iso2 !== null) {\n        return this._setCountry(iso2);\n      }\n      return false;\n    }\n    // if there is a selected country, and the number doesn't start with a dial code, then add it\n    _ensureHasDialCode(number) {\n      const { dialCode, nationalPrefix } = this.selectedCountryData;\n      const alreadyHasPlus = number.startsWith(\"+\");\n      if (alreadyHasPlus || !dialCode) {\n        return number;\n      }\n      const hasPrefix = nationalPrefix && number.startsWith(nationalPrefix) && !this.options.separateDialCode;\n      const cleanNumber = hasPrefix ? number.substring(1) : number;\n      return `+${dialCode}${cleanNumber}`;\n    }\n    // Get the country ISO2 code from the given number\n    // BUT ONLY IF ITS CHANGED FROM THE CURRENTLY SELECTED COUNTRY\n    // NOTE: consider refactoring this to be more clear\n    _getNewCountryFromNumber(fullNumber) {\n      const plusIndex = fullNumber.indexOf(\"+\");\n      let number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;\n      const selectedIso2 = this.selectedCountryData.iso2;\n      const selectedDialCode = this.selectedCountryData.dialCode;\n      number = this._ensureHasDialCode(number);\n      const dialCodeMatch = this._getDialCode(number, true);\n      const numeric = getNumeric(number);\n      if (dialCodeMatch) {\n        const dialCodeMatchNumeric = getNumeric(dialCodeMatch);\n        const iso2Codes = this.dialCodeToIso2Map[dialCodeMatchNumeric];\n        if (iso2Codes.length === 1) {\n          if (iso2Codes[0] === selectedIso2) {\n            return null;\n          }\n          return iso2Codes[0];\n        }\n        if (!selectedIso2 && this.defaultCountry && iso2Codes.includes(this.defaultCountry)) {\n          return this.defaultCountry;\n        }\n        const isRegionlessNanpNumber = selectedDialCode === DIAL.NANP && isRegionlessNanp(numeric);\n        if (isRegionlessNanpNumber) {\n          return null;\n        }\n        const { areaCodes, priority } = this.selectedCountryData;\n        if (areaCodes) {\n          const dialCodeAreaCodes = areaCodes.map(\n            (areaCode) => `${selectedDialCode}${areaCode}`\n          );\n          for (const dialCodeAreaCode of dialCodeAreaCodes) {\n            if (numeric.startsWith(dialCodeAreaCode)) {\n              return null;\n            }\n          }\n        }\n        const isMainCountry = priority === 0;\n        const hasAreaCodesButNoneMatched = areaCodes && !isMainCountry && numeric.length > dialCodeMatchNumeric.length;\n        const isValidSelection = selectedIso2 && iso2Codes.includes(selectedIso2) && !hasAreaCodesButNoneMatched;\n        const alreadySelected = selectedIso2 === iso2Codes[0];\n        if (!isValidSelection && !alreadySelected) {\n          return iso2Codes[0];\n        }\n      } else if (number.startsWith(\"+\") && numeric.length) {\n        const currentDial = this.selectedCountryData.dialCode || \"\";\n        if (currentDial && currentDial.startsWith(numeric)) {\n          return null;\n        }\n        return \"\";\n      } else if ((!number || number === \"+\") && !selectedIso2) {\n        return this.defaultCountry;\n      }\n      return null;\n    }\n    //* Update the selected country, dial code (if separateDialCode), placeholder, title, and active list item.\n    //* Note: called from _setInitialState, _updateCountryFromNumber, _selectListItem, setCountry.\n    _setCountry(iso2) {\n      const { separateDialCode, showFlags, i18n } = this.options;\n      const prevIso2 = this.selectedCountryData.iso2 || \"\";\n      this.selectedCountryData = iso2 ? this.countryByIso2.get(iso2) : {};\n      if (this.selectedCountryData.iso2) {\n        this.defaultCountry = this.selectedCountryData.iso2;\n      }\n      if (this.ui.selectedCountry) {\n        const flagClass = iso2 && showFlags ? `${CLASSES.FLAG} iti__${iso2}` : `${CLASSES.FLAG} ${CLASSES.GLOBE}`;\n        let ariaLabel, title;\n        if (iso2) {\n          const { name, dialCode } = this.selectedCountryData;\n          title = name;\n          ariaLabel = i18n.selectedCountryAriaLabel.replace(\"${countryName}\", name).replace(\"${dialCode}\", `+${dialCode}`);\n        } else {\n          title = i18n.noCountrySelected;\n          ariaLabel = i18n.noCountrySelected;\n        }\n        this.ui.selectedCountryInner.className = flagClass;\n        this.ui.selectedCountry.setAttribute(\"title\", title);\n        this.ui.selectedCountry.setAttribute(ARIA.LABEL, ariaLabel);\n      }\n      if (separateDialCode) {\n        const dialCode = this.selectedCountryData.dialCode ? `+${this.selectedCountryData.dialCode}` : \"\";\n        this.ui.selectedDialCode.textContent = dialCode;\n        this.ui.updateInputPadding();\n      }\n      this._updatePlaceholder();\n      this._updateMaxLength();\n      return prevIso2 !== iso2;\n    }\n    //* Update the maximum valid number length for the currently selected country.\n    _updateMaxLength() {\n      const { strictMode, placeholderNumberType, validationNumberTypes } = this.options;\n      const { iso2 } = this.selectedCountryData;\n      if (strictMode && intlTelInput.utils) {\n        if (iso2) {\n          const numberType = intlTelInput.utils.numberType[placeholderNumberType];\n          let exampleNumber = intlTelInput.utils.getExampleNumber(\n            iso2,\n            false,\n            numberType,\n            true\n          );\n          let validNumber = exampleNumber;\n          while (intlTelInput.utils.isPossibleNumber(\n            exampleNumber,\n            iso2,\n            validationNumberTypes\n          )) {\n            validNumber = exampleNumber;\n            exampleNumber += \"0\";\n          }\n          const coreNumber = intlTelInput.utils.getCoreNumber(validNumber, iso2);\n          this.maxCoreNumberLength = coreNumber.length;\n          if (iso2 === \"by\") {\n            this.maxCoreNumberLength = coreNumber.length + 1;\n          }\n        } else {\n          this.maxCoreNumberLength = null;\n        }\n      }\n    }\n    //* Update the input placeholder to an example number from the currently selected country.\n    _updatePlaceholder() {\n      const {\n        autoPlaceholder,\n        placeholderNumberType,\n        nationalMode,\n        customPlaceholder\n      } = this.options;\n      const shouldSetPlaceholder = autoPlaceholder === PLACEHOLDER_MODES.AGGRESSIVE || !this.ui.hadInitialPlaceholder && autoPlaceholder === PLACEHOLDER_MODES.POLITE;\n      if (intlTelInput.utils && shouldSetPlaceholder) {\n        const numberType = intlTelInput.utils.numberType[placeholderNumberType];\n        let placeholder = this.selectedCountryData.iso2 ? intlTelInput.utils.getExampleNumber(\n          this.selectedCountryData.iso2,\n          nationalMode,\n          numberType\n        ) : \"\";\n        placeholder = this._beforeSetNumber(placeholder);\n        if (typeof customPlaceholder === \"function\") {\n          placeholder = customPlaceholder(placeholder, this.selectedCountryData);\n        }\n        this.ui.telInput.setAttribute(\"placeholder\", placeholder);\n      }\n    }\n    //* Called when the user selects a list item from the dropdown.\n    _selectListItem(listItem) {\n      const iso2 = listItem.dataset[DATA_KEYS.COUNTRY_CODE];\n      const countryChanged = this._setCountry(iso2);\n      this._closeDropdown();\n      const dialCode = listItem.dataset[DATA_KEYS.DIAL_CODE];\n      this._updateDialCode(dialCode);\n      if (this.options.formatOnDisplay) {\n        this._updateValFromNumber(this.ui.telInput.value);\n      }\n      this.ui.telInput.focus();\n      if (countryChanged) {\n        this._triggerCountryChange();\n      }\n    }\n    //* Close the dropdown and unbind any listeners.\n    _closeDropdown() {\n      if (this.ui.dropdownContent.classList.contains(CLASSES.HIDE)) {\n        return;\n      }\n      this.ui.dropdownContent.classList.add(CLASSES.HIDE);\n      this.ui.selectedCountry.setAttribute(ARIA.EXPANDED, \"false\");\n      if (this.ui.highlightedItem) {\n        this.ui.highlightedItem.setAttribute(ARIA.SELECTED, \"false\");\n      }\n      if (this.options.countrySearch) {\n        this.ui.searchInput.removeAttribute(ARIA.ACTIVE_DESCENDANT);\n      }\n      this.ui.dropdownArrow.classList.remove(CLASSES.ARROW_UP);\n      this.dropdownAbortController.abort();\n      this.dropdownAbortController = null;\n      if (this.options.dropdownContainer) {\n        this.ui.dropdown.remove();\n      }\n      this._trigger(EVENTS.CLOSE_COUNTRY_DROPDOWN);\n    }\n    //* Replace any existing dial code with the new one\n    //* Note: called from _selectListItem and setCountry\n    _updateDialCode(newDialCodeBare) {\n      const inputVal = this.ui.telInput.value;\n      const newDialCode = `+${newDialCodeBare}`;\n      let newNumber;\n      if (inputVal.startsWith(\"+\")) {\n        const prevDialCode = this._getDialCode(inputVal);\n        if (prevDialCode) {\n          newNumber = inputVal.replace(prevDialCode, newDialCode);\n        } else {\n          newNumber = newDialCode;\n        }\n        this.ui.telInput.value = newNumber;\n      }\n    }\n    //* Try and extract a valid international dial code from a full telephone number.\n    //* Note: returns the raw string inc plus character and any whitespace/dots etc.\n    _getDialCode(number, includeAreaCode) {\n      let dialCode = \"\";\n      if (number.startsWith(\"+\")) {\n        let numericChars = \"\";\n        let foundBaseDialCode = false;\n        for (let i = 0; i < number.length; i++) {\n          const c = number.charAt(i);\n          if (/[0-9]/.test(c)) {\n            numericChars += c;\n            const hasMapEntry = Boolean(this.dialCodeToIso2Map[numericChars]);\n            if (!hasMapEntry) {\n              break;\n            }\n            if (this.dialCodes.has(numericChars)) {\n              dialCode = number.substring(0, i + 1);\n              foundBaseDialCode = true;\n              if (!includeAreaCode) {\n                break;\n              }\n            } else if (includeAreaCode && foundBaseDialCode) {\n              dialCode = number.substring(0, i + 1);\n            }\n            if (numericChars.length === this.dialCodeMaxLen) {\n              break;\n            }\n          }\n        }\n      }\n      return dialCode;\n    }\n    //* Get the input val, adding the dial code if separateDialCode is enabled.\n    _getFullNumber(overrideVal) {\n      const val = overrideVal || this.ui.telInput.value.trim();\n      const { dialCode } = this.selectedCountryData;\n      let prefix;\n      const numericVal = getNumeric(val);\n      if (this.options.separateDialCode && !val.startsWith(\"+\") && dialCode && numericVal) {\n        prefix = `+${dialCode}`;\n      } else {\n        prefix = \"\";\n      }\n      return prefix + val;\n    }\n    //* Remove the dial code if separateDialCode is enabled also cap the length if the input has a maxlength attribute\n    _beforeSetNumber(fullNumber) {\n      const dialCode = this._getDialCode(fullNumber);\n      const number = beforeSetNumber(\n        fullNumber,\n        dialCode,\n        this.options.separateDialCode,\n        this.selectedCountryData\n      );\n      return this._cap(number);\n    }\n    //* Trigger the 'countrychange' event.\n    _triggerCountryChange() {\n      this._trigger(EVENTS.COUNTRY_CHANGE);\n    }\n    //**************************\n    //*  SECRET PUBLIC METHODS\n    //**************************\n    //* This is called when the geoip call returns.\n    handleAutoCountry() {\n      if (this.options.initialCountry === INITIAL_COUNTRY.AUTO && intlTelInput.autoCountry) {\n        this.defaultCountry = intlTelInput.autoCountry;\n        const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.ui.selectedCountryInner.classList.contains(CLASSES.GLOBE);\n        if (!hasSelectedCountryOrGlobe) {\n          this.setCountry(this.defaultCountry);\n        }\n        this.resolveAutoCountryPromise();\n      }\n    }\n    //* This is called when the utils request completes.\n    handleUtils() {\n      if (intlTelInput.utils) {\n        if (this.ui.telInput.value) {\n          this._updateValFromNumber(this.ui.telInput.value);\n        }\n        if (this.selectedCountryData.iso2) {\n          this._updatePlaceholder();\n          this._updateMaxLength();\n        }\n      }\n      this.resolveUtilsScriptPromise();\n    }\n    //********************\n    //*  PUBLIC METHODS\n    //********************\n    //* Remove plugin.\n    destroy() {\n      if (!this.ui.telInput) {\n        return;\n      }\n      if (this.options.allowDropdown) {\n        this._closeDropdown();\n      }\n      this.abortController.abort();\n      this.abortController = null;\n      this.ui.destroy();\n      if (intlTelInput.instances instanceof Map) {\n        intlTelInput.instances.delete(this.id);\n      } else {\n        delete intlTelInput.instances[this.id];\n      }\n    }\n    //* Get the extension from the current number.\n    getExtension() {\n      if (intlTelInput.utils) {\n        return intlTelInput.utils.getExtension(\n          this._getFullNumber(),\n          this.selectedCountryData.iso2\n        );\n      }\n      return \"\";\n    }\n    //* Format the number to the given format.\n    getNumber(format) {\n      if (intlTelInput.utils) {\n        const { iso2 } = this.selectedCountryData;\n        return intlTelInput.utils.formatNumber(\n          this._getFullNumber(),\n          iso2,\n          format\n        );\n      }\n      return \"\";\n    }\n    //* Get the type of the entered number e.g. landline/mobile.\n    getNumberType() {\n      if (intlTelInput.utils) {\n        return intlTelInput.utils.getNumberType(\n          this._getFullNumber(),\n          this.selectedCountryData.iso2\n        );\n      }\n      return SENTINELS.UNKNOWN_NUMBER_TYPE;\n    }\n    //* Get the country data for the currently selected country.\n    getSelectedCountryData() {\n      return this.selectedCountryData;\n    }\n    //* Get the validation error.\n    getValidationError() {\n      if (intlTelInput.utils) {\n        const { iso2 } = this.selectedCountryData;\n        return intlTelInput.utils.getValidationError(this._getFullNumber(), iso2);\n      }\n      return SENTINELS.UNKNOWN_VALIDATION_ERROR;\n    }\n    //* Validate the input val using number length only\n    isValidNumber() {\n      const { dialCode, iso2 } = this.selectedCountryData;\n      if (dialCode === UK.DIAL_CODE && intlTelInput.utils) {\n        const number = this._getFullNumber();\n        const coreNumber = intlTelInput.utils.getCoreNumber(number, iso2);\n        if (coreNumber[0] === UK.MOBILE_PREFIX && coreNumber.length !== UK.MOBILE_CORE_LENGTH) {\n          return false;\n        }\n      }\n      return this._validateNumber(false);\n    }\n    //* Validate the input val with precise validation\n    isValidNumberPrecise() {\n      return this._validateNumber(true);\n    }\n    _utilsIsPossibleNumber(val) {\n      return intlTelInput.utils ? intlTelInput.utils.isPossibleNumber(\n        val,\n        this.selectedCountryData.iso2,\n        this.options.validationNumberTypes\n      ) : null;\n    }\n    //* Shared internal validation logic to handle alpha character extension rules.\n    _validateNumber(precise) {\n      if (!intlTelInput.utils) {\n        return null;\n      }\n      if (!this.selectedCountryData.iso2) {\n        return false;\n      }\n      const testValidity = (s) => precise ? this._utilsIsValidNumber(s) : this._utilsIsPossibleNumber(s);\n      const val = this._getFullNumber();\n      const alphaCharPosition = val.search(REGEX.ALPHA_UNICODE);\n      const hasAlphaChar = alphaCharPosition > -1;\n      if (hasAlphaChar && !this.options.allowPhonewords) {\n        const beforeAlphaChar = val.substring(0, alphaCharPosition);\n        const beforeAlphaIsValid = testValidity(beforeAlphaChar);\n        const isValid = testValidity(val);\n        return beforeAlphaIsValid && isValid;\n      }\n      return testValidity(val);\n    }\n    _utilsIsValidNumber(val) {\n      return intlTelInput.utils ? intlTelInput.utils.isValidNumber(\n        val,\n        this.selectedCountryData.iso2,\n        this.options.validationNumberTypes\n      ) : null;\n    }\n    //* Update the selected country, and update the input val accordingly.\n    setCountry(iso2) {\n      const iso2Lower = iso2?.toLowerCase();\n      if (!isIso2(iso2Lower)) {\n        throw new Error(`Invalid country code: '${iso2Lower}'`);\n      }\n      const currentCountry = this.selectedCountryData.iso2;\n      const isCountryChange = iso2 && iso2Lower !== currentCountry || !iso2 && currentCountry;\n      if (isCountryChange) {\n        this._setCountry(iso2Lower);\n        this._updateDialCode(this.selectedCountryData.dialCode);\n        if (this.options.formatOnDisplay) {\n          this._updateValFromNumber(this.ui.telInput.value);\n        }\n        this._triggerCountryChange();\n      }\n    }\n    //* Set the input value and update the country.\n    setNumber(number) {\n      const countryChanged = this._updateCountryFromNumber(number);\n      this._updateValFromNumber(number);\n      if (countryChanged) {\n        this._triggerCountryChange();\n      }\n      this._trigger(EVENTS.INPUT, { isSetNumber: true });\n    }\n    //* Set the placeholder number typ\n    setPlaceholderNumberType(type) {\n      this.options.placeholderNumberType = type;\n      this._updatePlaceholder();\n    }\n    setDisabled(disabled) {\n      this.ui.telInput.disabled = disabled;\n      if (disabled) {\n        this.ui.selectedCountry.setAttribute(\"disabled\", \"true\");\n      } else {\n        this.ui.selectedCountry.removeAttribute(\"disabled\");\n      }\n    }\n  };\n  var attachUtils = (source) => {\n    if (!intlTelInput.utils && !intlTelInput.startedLoadingUtilsScript) {\n      let loadCall;\n      if (typeof source === \"function\") {\n        try {\n          loadCall = Promise.resolve(source());\n        } catch (error) {\n          return Promise.reject(error);\n        }\n      } else {\n        return Promise.reject(\n          new TypeError(\n            `The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof source}`\n          )\n        );\n      }\n      intlTelInput.startedLoadingUtilsScript = true;\n      return loadCall.then((module) => {\n        const utils = module?.default;\n        if (!utils || typeof utils !== \"object\") {\n          throw new TypeError(\n            \"The loader function passed to attachUtils did not resolve to a module object with utils as its default export.\"\n          );\n        }\n        intlTelInput.utils = utils;\n        forEachInstance(\"handleUtils\");\n        return true;\n      }).catch((error) => {\n        forEachInstance(\"rejectUtilsScriptPromise\", error);\n        throw error;\n      });\n    }\n    return null;\n  };\n  var forEachInstance = (method, ...args) => {\n    Object.values(intlTelInput.instances).forEach((instance) => {\n      const fn = instance[method];\n      if (typeof fn === \"function\") {\n        fn.apply(instance, args);\n      }\n    });\n  };\n  var intlTelInput = Object.assign(\n    (input, options) => {\n      const iti = new Iti(input, options);\n      intlTelInput.instances[iti.id] = iti;\n      input.iti = iti;\n      return iti;\n    },\n    {\n      defaults,\n      //* Using a static var like this allows us to mock it in the tests.\n      documentReady: () => document.readyState === \"complete\",\n      //* Get the country data object.\n      getCountryData: () => data_default,\n      //* A getter for the plugin instance.\n      getInstance: (input) => {\n        const id2 = input.dataset.intlTelInputId;\n        return id2 ? intlTelInput.instances[id2] : null;\n      },\n      //* A map from instance ID to instance object.\n      instances: {},\n      attachUtils,\n      startedLoadingUtilsScript: false,\n      startedLoadingAutoCountry: false,\n      version: \"25.12.3\"\n    }\n  );\n  var intl_tel_input_default = intlTelInput;\n  return __toCommonJS(intl_tel_input_exports);\n})();\n\n// UMD\n  return factoryOutput.default;\n}));\n", "(function () {/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar k=this||self;function m(a,b){a=a.split(\".\");var c=k;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}function n(a,b){function c(){}c.prototype=b.prototype;a.ma=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.sa=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[e].apply(d,g)}};function aa(a){const b=[];let c=0;for(const d in a)b[c++]=a[d];return b};var da=class{constructor(a){if(ba!==ba)throw Error(\"SafeUrl is not meant to be built directly\");this.g=a}toString(){return this.g.toString()}},ba={};new da(\"about:invalid#zClosurez\");new da(\"about:blank\");const ea={};class fa{constructor(){if(ea!==ea)throw Error(\"SafeStyle is not meant to be built directly\");}toString(){return\"\".toString()}}new fa;const ha={};class ia{constructor(){if(ha!==ha)throw Error(\"SafeStyleSheet is not meant to be built directly\");}toString(){return\"\".toString()}}new ia;const ja={};class ka{constructor(){var a=k.trustedTypes&&k.trustedTypes.emptyHTML||\"\";if(ja!==ja)throw Error(\"SafeHtml is not meant to be built directly\");this.g=a}toString(){return this.g.toString()}}new ka;function la(a,b){this.g=a;this.l=!!b.aa;this.h=b.i;this.s=b.type;this.o=!1;switch(this.h){case ma:case na:case oa:case pa:case qa:case ra:case sa:this.o=!0}this.j=b.defaultValue}var sa=1,ra=2,ma=3,na=4,oa=6,pa=16,qa=18;function ta(a,b){this.h=a;this.g={};for(a=0;a<b.length;a++){var c=b[a];this.g[c.g]=c}}function ua(a){a=aa(a.g);a.sort(function(b,c){return b.g-c.g});return a};function p(){this.h={};this.j=this.m().g;this.g=this.l=null}p.prototype.has=function(a){return q(this,a.g)};p.prototype.get=function(a,b){return r(this,a.g,b)};p.prototype.set=function(a,b){t(this,a.g,b)};p.prototype.add=function(a,b){va(this,a.g,b)};\nfunction wa(a,b){for(var c=ua(a.m()),d=0;d<c.length;d++){var e=c[d],f=e.g;if(q(b,f)){a.g&&delete a.g[e.g];var g=11==e.h||10==e.h;if(e.l){e=u(b,f);for(var h=0;h<e.length;h++)va(a,f,g?e[h].clone():e[h])}else e=v(b,f),g?(g=v(a,f))?wa(g,e):t(a,f,e.clone()):t(a,f,e)}}}p.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.h={},a.g&&(a.g={}),wa(a,this));return a};function q(a,b){return null!=a.h[b]}\nfunction v(a,b){var c=a.h[b];if(null==c)return null;if(a.l){if(!(b in a.g)){var d=a.l,e=a.j[b];if(null!=c)if(e.l){for(var f=[],g=0;g<c.length;g++)f[g]=d.h(e,c[g]);c=f}else c=d.h(e,c);return a.g[b]=c}return a.g[b]}return c}function r(a,b,c){var d=v(a,b);return a.j[b].l?d[c||0]:d}function w(a,b){if(q(a,b))a=r(a,b);else a:{a=a.j[b];if(void 0===a.j)if(b=a.s,b===Boolean)a.j=!1;else if(b===Number)a.j=0;else if(b===String)a.j=a.o?\"0\":\"\";else{a=new b;break a}a=a.j}return a}\nfunction u(a,b){return v(a,b)||[]}function x(a,b){return a.j[b].l?q(a,b)?a.h[b].length:0:q(a,b)?1:0}function t(a,b,c){a.h[b]=c;a.g&&(a.g[b]=c)}function va(a,b,c){a.h[b]||(a.h[b]=[]);a.h[b].push(c);a.g&&delete a.g[b]}function y(a,b){var c=[],d;for(d in b)0!=d&&c.push(new la(d,b[d]));return new ta(a,c)};function z(){}z.prototype.g=function(a){new a.h;throw Error(\"Unimplemented\");};z.prototype.h=function(a,b){if(11==a.h||10==a.h)return b instanceof p?b:this.g(a.s.prototype.m(),b);if(14==a.h)return\"string\"===typeof b&&xa.test(b)&&(a=Number(b),0<a)?a:b;if(!a.o)return b;a=a.s;if(a===String){if(\"number\"===typeof b)return String(b)}else if(a===Number&&\"string\"===typeof b&&(\"Infinity\"===b||\"-Infinity\"===b||\"NaN\"===b||xa.test(b)))return Number(b);return b};var xa=/^-?[0-9]+$/;function B(){}n(B,z);B.prototype.g=function(a,b){a=new a.h;a.l=this;a.h=b;a.g={};return a};function C(){}n(C,B);C.prototype.h=function(a,b){return 8==a.h?!!b:z.prototype.h.apply(this,arguments)};C.prototype.g=function(a,b){return C.ma.g.call(this,a,b)};function D(a,b){null!=a&&this.g.apply(this,arguments)}D.prototype.h=\"\";D.prototype.set=function(a){this.h=\"\"+a};D.prototype.g=function(a,b,c){this.h+=String(a);if(null!=b)for(let d=1;d<arguments.length;d++)this.h+=arguments[d];return this};function E(a){a.h=\"\"}D.prototype.toString=function(){return this.h};/*\n\n Protocol Buffer 2 Copyright 2008 Google Inc.\n All other code copyright its respective owners.\n Copyright (C) 2010 The Libphonenumber Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nfunction F(){p.call(this)}n(F,p);var ya=null;function G(){p.call(this)}n(G,p);var za=null;function H(){p.call(this)}n(H,p);var Aa=null;\nF.prototype.m=function(){var a=ya;a||(ya=a=y(F,{0:{name:\"NumberFormat\",ia:\"i18n.phonenumbers.NumberFormat\"},1:{name:\"pattern\",required:!0,i:9,type:String},2:{name:\"format\",required:!0,i:9,type:String},3:{name:\"leading_digits_pattern\",aa:!0,i:9,type:String},4:{name:\"national_prefix_formatting_rule\",i:9,type:String},6:{name:\"national_prefix_optional_when_formatting\",i:8,defaultValue:!1,type:Boolean},5:{name:\"domestic_carrier_code_formatting_rule\",i:9,type:String}}));return a};F.m=F.prototype.m;\nG.prototype.m=function(){var a=za;a||(za=a=y(G,{0:{name:\"PhoneNumberDesc\",ia:\"i18n.phonenumbers.PhoneNumberDesc\"},2:{name:\"national_number_pattern\",i:9,type:String},9:{name:\"possible_length\",aa:!0,i:5,type:Number},10:{name:\"possible_length_local_only\",aa:!0,i:5,type:Number},6:{name:\"example_number\",i:9,type:String}}));return a};G.m=G.prototype.m;\nH.prototype.m=function(){var a=Aa;a||(Aa=a=y(H,{0:{name:\"PhoneMetadata\",ia:\"i18n.phonenumbers.PhoneMetadata\"},1:{name:\"general_desc\",i:11,type:G},2:{name:\"fixed_line\",i:11,type:G},3:{name:\"mobile\",i:11,type:G},4:{name:\"toll_free\",i:11,type:G},5:{name:\"premium_rate\",i:11,type:G},6:{name:\"shared_cost\",i:11,type:G},7:{name:\"personal_number\",i:11,type:G},8:{name:\"voip\",i:11,type:G},21:{name:\"pager\",i:11,type:G},25:{name:\"uan\",i:11,type:G},27:{name:\"emergency\",i:11,type:G},28:{name:\"voicemail\",i:11,type:G},\n29:{name:\"short_code\",i:11,type:G},30:{name:\"standard_rate\",i:11,type:G},31:{name:\"carrier_specific\",i:11,type:G},33:{name:\"sms_services\",i:11,type:G},24:{name:\"no_international_dialling\",i:11,type:G},9:{name:\"id\",required:!0,i:9,type:String},10:{name:\"country_code\",i:5,type:Number},11:{name:\"international_prefix\",i:9,type:String},17:{name:\"preferred_international_prefix\",i:9,type:String},12:{name:\"national_prefix\",i:9,type:String},13:{name:\"preferred_extn_prefix\",i:9,type:String},15:{name:\"national_prefix_for_parsing\",\ni:9,type:String},16:{name:\"national_prefix_transform_rule\",i:9,type:String},18:{name:\"same_mobile_and_fixed_line_pattern\",i:8,defaultValue:!1,type:Boolean},19:{name:\"number_format\",aa:!0,i:11,type:F},20:{name:\"intl_number_format\",aa:!0,i:11,type:F},22:{name:\"main_country_for_code\",i:8,defaultValue:!1,type:Boolean},23:{name:\"leading_digits\",i:9,type:String}}));return a};H.m=H.prototype.m;function I(){p.call(this)}n(I,p);var Ba=null,Ca={ra:0,qa:1,pa:5,oa:10,na:20};\nI.prototype.m=function(){var a=Ba;a||(Ba=a=y(I,{0:{name:\"PhoneNumber\",ia:\"i18n.phonenumbers.PhoneNumber\"},1:{name:\"country_code\",required:!0,i:5,type:Number},2:{name:\"national_number\",required:!0,i:4,type:Number},3:{name:\"extension\",i:9,type:String},4:{name:\"italian_leading_zero\",i:8,type:Boolean},8:{name:\"number_of_leading_zeros\",i:5,defaultValue:1,type:Number},5:{name:\"raw_input\",i:9,type:String},6:{name:\"country_code_source\",i:14,defaultValue:0,type:Ca},7:{name:\"preferred_domestic_carrier_code\",\ni:9,type:String}}));return a};I.ctor=I;I.ctor.m=I.prototype.m;/*\n\n Copyright (C) 2010 The Libphonenumber Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nvar J={1:\"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI\".split(\" \"),7:[\"RU\",\"KZ\"],20:[\"EG\"],27:[\"ZA\"],30:[\"GR\"],31:[\"NL\"],32:[\"BE\"],33:[\"FR\"],34:[\"ES\"],36:[\"HU\"],39:[\"IT\",\"VA\"],40:[\"RO\"],41:[\"CH\"],43:[\"AT\"],44:[\"GB\",\"GG\",\"IM\",\"JE\"],45:[\"DK\"],46:[\"SE\"],47:[\"NO\",\"SJ\"],48:[\"PL\"],49:[\"DE\"],51:[\"PE\"],52:[\"MX\"],53:[\"CU\"],54:[\"AR\"],55:[\"BR\"],56:[\"CL\"],57:[\"CO\"],58:[\"VE\"],60:[\"MY\"],61:[\"AU\",\"CC\",\"CX\"],62:[\"ID\"],63:[\"PH\"],64:[\"NZ\"],65:[\"SG\"],66:[\"TH\"],81:[\"JP\"],82:[\"KR\"],84:[\"VN\"],\n86:[\"CN\"],90:[\"TR\"],91:[\"IN\"],92:[\"PK\"],93:[\"AF\"],94:[\"LK\"],95:[\"MM\"],98:[\"IR\"],211:[\"SS\"],212:[\"MA\",\"EH\"],213:[\"DZ\"],216:[\"TN\"],218:[\"LY\"],220:[\"GM\"],221:[\"SN\"],222:[\"MR\"],223:[\"ML\"],224:[\"GN\"],225:[\"CI\"],226:[\"BF\"],227:[\"NE\"],228:[\"TG\"],229:[\"BJ\"],230:[\"MU\"],231:[\"LR\"],232:[\"SL\"],233:[\"GH\"],234:[\"NG\"],235:[\"TD\"],236:[\"CF\"],237:[\"CM\"],238:[\"CV\"],239:[\"ST\"],240:[\"GQ\"],241:[\"GA\"],242:[\"CG\"],243:[\"CD\"],244:[\"AO\"],245:[\"GW\"],246:[\"IO\"],247:[\"AC\"],248:[\"SC\"],249:[\"SD\"],250:[\"RW\"],251:[\"ET\"],252:[\"SO\"],\n253:[\"DJ\"],254:[\"KE\"],255:[\"TZ\"],256:[\"UG\"],257:[\"BI\"],258:[\"MZ\"],260:[\"ZM\"],261:[\"MG\"],262:[\"RE\",\"YT\"],263:[\"ZW\"],264:[\"NA\"],265:[\"MW\"],266:[\"LS\"],267:[\"BW\"],268:[\"SZ\"],269:[\"KM\"],290:[\"SH\",\"TA\"],291:[\"ER\"],297:[\"AW\"],298:[\"FO\"],299:[\"GL\"],350:[\"GI\"],351:[\"PT\"],352:[\"LU\"],353:[\"IE\"],354:[\"IS\"],355:[\"AL\"],356:[\"MT\"],357:[\"CY\"],358:[\"FI\",\"AX\"],359:[\"BG\"],370:[\"LT\"],371:[\"LV\"],372:[\"EE\"],373:[\"MD\"],374:[\"AM\"],375:[\"BY\"],376:[\"AD\"],377:[\"MC\"],378:[\"SM\"],380:[\"UA\"],381:[\"RS\"],382:[\"ME\"],383:[\"XK\"],385:[\"HR\"],\n386:[\"SI\"],387:[\"BA\"],389:[\"MK\"],420:[\"CZ\"],421:[\"SK\"],423:[\"LI\"],500:[\"FK\"],501:[\"BZ\"],502:[\"GT\"],503:[\"SV\"],504:[\"HN\"],505:[\"NI\"],506:[\"CR\"],507:[\"PA\"],508:[\"PM\"],509:[\"HT\"],590:[\"GP\",\"BL\",\"MF\"],591:[\"BO\"],592:[\"GY\"],593:[\"EC\"],594:[\"GF\"],595:[\"PY\"],596:[\"MQ\"],597:[\"SR\"],598:[\"UY\"],599:[\"CW\",\"BQ\"],670:[\"TL\"],672:[\"NF\"],673:[\"BN\"],674:[\"NR\"],675:[\"PG\"],676:[\"TO\"],677:[\"SB\"],678:[\"VU\"],679:[\"FJ\"],680:[\"PW\"],681:[\"WF\"],682:[\"CK\"],683:[\"NU\"],685:[\"WS\"],686:[\"KI\"],687:[\"NC\"],688:[\"TV\"],689:[\"PF\"],690:[\"TK\"],\n691:[\"FM\"],692:[\"MH\"],800:[\"001\"],808:[\"001\"],850:[\"KP\"],852:[\"HK\"],853:[\"MO\"],855:[\"KH\"],856:[\"LA\"],870:[\"001\"],878:[\"001\"],880:[\"BD\"],881:[\"001\"],882:[\"001\"],883:[\"001\"],886:[\"TW\"],888:[\"001\"],960:[\"MV\"],961:[\"LB\"],962:[\"JO\"],963:[\"SY\"],964:[\"IQ\"],965:[\"KW\"],966:[\"SA\"],967:[\"YE\"],968:[\"OM\"],970:[\"PS\"],971:[\"AE\"],972:[\"IL\"],973:[\"BH\"],974:[\"QA\"],975:[\"BT\"],976:[\"MN\"],977:[\"NP\"],979:[\"001\"],992:[\"TJ\"],993:[\"TM\"],994:[\"AZ\"],995:[\"GE\"],996:[\"KG\"],998:[\"UZ\"]},Da={AC:[,[,,\"(?:[01589]\\\\d|[46])\\\\d{4}\",\n,,,,,,[5,6]],[,,\"6[2-467]\\\\d{3}\",,,,\"62889\",,,[5]],[,,\"4\\\\d{4}\",,,,\"40123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AC\",247,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:0[1-9]|[1589]\\\\d)\\\\d{4}\",,,,\"542011\",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",,,,,,,[6,8,9]],[,,\"[78]\\\\d{5}\",,,,\"712345\",,,[6]],[,,\"690\\\\d{6}|[356]\\\\d{5}\",,,,\"312345\",,,[6,9]],[,,\"180[02]\\\\d{4}\",,,,\"18001234\",,,[8]],[,,\"[19]\\\\d{5}\",,,,\"912345\",,,[6]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AD\",376,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],,[,,,,,,,,,[-1]],,,[,,\"1800\\\\d{4}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",,,,,,,[5,6,7,8,9,10,11,12]],[,,\"[2-4679][2-8]\\\\d{6}\",,,,\"22345678\",,,[8],[7]],[,,\"5[024-68]\\\\d{7}\",,,,\"501234567\",,,[9]],[,,\"400\\\\d{6}|800\\\\d{2,9}\",,,,\"800123456\"],\n[,,\"900[02]\\\\d{5}\",,,,\"900234567\",,,[9]],[,,\"700[05]\\\\d{5}\",,,,\"700012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AE\",971,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"600[25]\\\\d{5}\",,,,\"600212345\",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,\"[2-7]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\\\d{6}\",\n,,,\"234567890\",,,,[7]],[,,\"7\\\\d{8}\",,,,\"701234567\",,,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AF\",93,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AG:[,[,,\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"268(?:4(?:6[0-38]|84)|56[0-2])\\\\d{4}\",,,,\"2684601234\",\n,,,[7]],[,,\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\",,,,\"2684641234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"26848[01]\\\\d{4}\",,,,\"2684801234\",,,,[7]],\n\"AG\",1,\"011\",\"1\",,,\"([457]\\\\d{6})$|1\",\"268$1\",,,,,[,,\"26840[69]\\\\d{4}\",,,,\"2684061234\",,,,[7]],,\"268\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AI:[,[,,\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"264(?:292|4(?:6[12]|9[78]))\\\\d{4}\",,,,\"2644612345\",,,,[7]],[,,\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\",,,,\"2642351234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"AI\",1,\"011\",\"1\",,,\"([2457]\\\\d{6})$|1\",\"264$1\",,,,,[,,\"264724\\\\d{4}\",,,,\"2647241234\",,,,[7]],,\"264\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AL:[,[,,\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",,,,,,,[6,7,8,9],[5]],[,,\"4505[0-2]\\\\d{3}|(?:[2358][16-9]\\\\d[2-9]|4410)\\\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\\\d))\\\\d{5}\",,,,\"22345678\",,,[8],[5,6,7]],[,,\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\",,,,\"672123456\",,,[9]],[,,\"800\\\\d{4}\",,,,\"8001234\",,,[7]],[,,\"900[1-9]\\\\d\\\\d\",\n,,,\"900123\",,,[6]],[,,\"808[1-9]\\\\d\\\\d\",,,,\"808123\",,,[6]],[,,\"700[2-9]\\\\d{4}\",,,,\"70021234\",,,[8]],[,,,,,,,,,[-1]],\"AL\",355,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AM:[,[,,\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",\n,,,,,,[8],[5,6]],[,,\"(?:(?:1[0-25]|47)\\\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\\\d{5}\",,,,\"10123456\",,,,[5,6]],[,,\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\",,,,\"77123456\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"90[016]\\\\d{5}\",,,,\"90012345\"],[,,\"80[1-4]\\\\d{5}\",,,,\"80112345\"],[,,,,,,,,,[-1]],[,,\"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\\\d|9[0-2])\\\\d{4}\",,,,\"60271234\"],\"AM\",374,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AO:[,[,,\"[29]\\\\d{8}\",,,,,,,[9]],[,,\"2\\\\d(?:[0134][25-9]|[25-9]\\\\d)\\\\d{5}\",,,,\"222123456\"],[,,\"9[1-79]\\\\d{7}\",,,,\"923123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AO\",244,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],AR:[,[,,\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",,,,,,,[10,11],[6,7,8]],[,,\"3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\\\d{5}|(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\\\d{5}|(?:(?:11[1-8]|670)\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68])))\\\\d{6}|(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",\n,,,\"1123456789\",,,[10],[6,7,8]],[,,\"93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\\\d{5}|9(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68]))))\\\\d{6}|9(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",\n,,,\"91123456789\",,,,[6,7,8]],[,,\"800\\\\d{7,8}\",,,,\"8001234567\"],[,,\"60[04579]\\\\d{7}\",,,,\"6001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AR\",54,\"00\",\"0\",,,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\n\"9$1\",,,[[,\"(\\\\d{3})\",\"$1\",[\"0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911\"]],[,\"(\\\\d{2})(\\\\d{4})\",\"$1-$2\",[\"[1-9]\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[1-8]\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",,1],[,\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\"]],[[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",,1],[,\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"]],\n[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"91\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,\"810\\\\d{7}\",,,,,,,[10]],[,,\"810\\\\d{7}\",,,,\"8101234567\",,,[10]],,,[,,,,,,,,,[-1]]],AS:[,[,,\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"6846(?:22|33|44|55|77|88|9[19])\\\\d{4}\",,,,\"6846221234\",,,,[7]],[,,\"684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\\\d{4}\",,,,\"6847331234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"AS\",1,\"011\",\"1\",,,\"([267]\\\\d{6})$|1\",\"684$1\",,,,,[,,,,,,,,,[-1]],,\"684\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AT:[,[,,\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",\n,,,,,,[4,5,6,7,8,9,10,11,12,13],[3]],[,,\"1(?:11\\\\d|[2-9]\\\\d{3,11})|(?:316|463)\\\\d{3,10}|648[34]\\\\d{3,9}|(?:51|66|73)2\\\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-7]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\\\d{4,10}\",,,,\"1234567890\",,,,[3]],[,,\"6(?:485|(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d)\\\\d{3,9}\",,,,\"664123456\",\n,,[7,8,9,10,11,12,13]],[,,\"800\\\\d{6,10}\",,,,\"800123456\",,,[9,10,11,12,13]],[,,\"(?:8[69][2-68]|9(?:0[01]|3[019]))\\\\d{6,10}\",,,,\"900123456\",,,[9,10,11,12,13]],[,,\"8(?:10|2[018])\\\\d{6,10}|828\\\\d{5}\",,,,\"810123456\",,,[8,9,10,11,12,13]],[,,,,,,,,,[-1]],[,,\"5(?:0[1-9]|17|[79]\\\\d)\\\\d{2,10}|7[28]0\\\\d{6,10}\",,,,\"780123456\",,,[5,6,7,8,9,10,11,12,13]],\"AT\",43,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"14\"]],[,\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\n\"$1 $2\",[\"5[079]\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"[18]\"]],[,\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",\n[\"5[079]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AU:[,[,,\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",,,,\n,,,[5,6,7,8,9,10,12]],[,,\"(?:(?:2(?:(?:[0-26-9]\\\\d|3[0-8]|5[0135-9])\\\\d|4(?:[02-9]\\\\d|10))|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90))|7(?:[013-57-9]\\\\d|2[0-8])\\\\d)\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|[34]\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",\n,,,\"212345678\",,,[9],[8]],[,,\"4(?:79[01]|83[0-36-9])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"AU\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"(183[12])|0\",,\"0011\",\n,[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"13\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"19\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"180\",\"1802\"]],[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"19\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\",\"$CC ($1)\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"130\"]]],\n[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\",\"$CC ($1)\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],[,,\"163\\\\d{2,6}\",,,,\"1631234\",,,[5,6,7,8,9]],1,,[,,\"1(?:3(?:00\\\\d{5}|45[0-4])|802)\\\\d{3}|1[38]00\\\\d{6}|13\\\\d{4}\",,,,,,,[6,7,8,10,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AW:[,[,,\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",,,,,,,[7]],\n[,,\"5(?:2\\\\d|8[1-9])\\\\d{4}\",,,,\"5212345\"],[,,\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\",,,,\"5601234\"],[,,\"800\\\\d{4}\",,,,\"8001234\"],[,,\"900\\\\d{4}\",,,,\"9001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:28\\\\d|501)\\\\d{4}\",,,,\"5011234\"],\"AW\",297,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AX:[,[,,\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",\n,,,,,,[5,6,7,8,9,10,11,12]],[,,\"18[1-8]\\\\d{3,6}\",,,,\"181234567\",,,[6,7,8,9]],[,,\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",,,,\"412345678\",,,[6,7,8,9,10]],[,,\"800\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"[67]00\\\\d{5,6}\",,,,\"600123456\",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AX\",358,\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"0\",,,\"0\",,\"00\",,,,[,,,,,,,,,[-1]],,\"18\",[,,,,,,,,,[-1]],[,,\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\",\n,,,\"10112345\"],,,[,,,,,,,,,[-1]]],AZ:[,[,,\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",,,,,,,[9],[7]],[,,\"(?:2[12]428|3655[02])\\\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\\\d{5}|(?:(?:1[28]|46)\\\\d|2(?:[014-6]2|[23]3))\\\\d{6}\",,,,\"123123456\",,,,[7]],[,,\"36554\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\\\d{7}\",,,,\"401234567\"],[,,\"88\\\\d{7}\",,,,\"881234567\"],[,,\"900200\\\\d{3}\",,,,\"900200123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AZ\",994,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[1-9]\"]],[,\n\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[13-9]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BA:[,[,,\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",,,,,,,[8,9],[6]],[,,\"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\\\d{5}\",,,,\"30212345\",,,[8],[6]],[,,\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\",,,,\"61123456\"],[,,\"8[08]\\\\d{6}\",,,,\"80123456\",,,[8]],[,,\"9[0246]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"8[12]\\\\d{6}\",,,,\"82123456\",,,[8]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BA\",387,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,\"703[235]0\\\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\\\d{4}\",,,,\"70341234\",,,[8]],,,[,,,,,,,,,[-1]]],BB:[,[,,\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"246521[0369]\\\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\\\d|3[2-9])|5(?:20|[34]\\\\d|54|7[1-3])|6(?:2\\\\d|38)|7[35]7|9(?:1[89]|63))\\\\d{4}\",,,,\"2464123456\",,,,[7]],[,,\"246(?:(?:2(?:[3568]\\\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\\\d)|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d|52(?:1[147]|20))\\\\d{3}\",,,,\"2462501234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002123456\"],[,,\"(?:246976|900[2-9]\\\\d\\\\d)\\\\d{4}\",,,,\"9002123456\",,,,[7]],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"24631\\\\d{5}\",,,,\"2463101234\",,,,[7]],\"BB\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"246$1\",,,,,[,,,,,,,,,[-1]],,\"246\",[,,,,,,,,,[-1]],[,,\"246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\\\d|3[016]|53))\\\\d{4}\",\n,,,\"2464301234\",,,,[7]],,,[,,,,,,,,,[-1]]],BD:[,[,,\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",,,,,,,[6,7,8,9,10]],[,,\"(?:4(?:31\\\\d\\\\d|423)|5222)\\\\d{3}(?:\\\\d{2})?|8332[6-9]\\\\d\\\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\\\d{4}|(?:2(?:[23]\\\\d|[45])\\\\d\\\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\\\d{5}|[59]1\\\\d{5}\",\n,,,\"27111234\"],[,,\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\",,,,\"1812345678\",,,[10]],[,,\"80[03]\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\\\d{6}\",,,,\"9604123456\",,,[10]],\"BD\",880,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BE:[,[,,\"4\\\\d{8}|[1-9]\\\\d{7}\",,,,,,,[8,9]],[,,\"80[2-8]\\\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\\\d{6}\",,,,\"12345678\",,,[8]],[,,\"4[5-9]\\\\d{7}\",,,,\"470123456\",,,[9]],[,,\"800[1-9]\\\\d{4}\",,,,\"80012345\",,,[8]],[,,\"(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\\\\d\\\\d)\\\\d{4}\",,,,\"90012345\",,,[8]],[,,\"7879\\\\d{4}\",\n,,,\"78791234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BE\",32,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\\\\d)\\\\d{4}\",,,,\"78102345\",,,[8]],,,[,,,,,,,,,[-1]]],BF:[,[,,\n\"(?:[025-7]\\\\d|44)\\\\d{6}\",,,,,,,[8]],[,,\"2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\\\d|50|6[5-7]))\\\\d{4}\",,,,\"20491234\"],[,,\"(?:0[1-7]|44|5[0-8]|[67]\\\\d)\\\\d{6}\",,,,\"70123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BF\",226,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[024-7]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BG:[,[,,\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",\n,,,,,,[6,7,8,9,12],[4,5]],[,,\"2\\\\d{5,7}|(?:43[1-6]|70[1-9])\\\\d{4,5}|(?:[36]\\\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\\\d{5,6}\",,,,\"2123456\",,,[6,7,8],[4,5]],[,,\"(?:43[07-9]|99[69]\\\\d)\\\\d{5}|(?:8[7-9]|98)\\\\d{7}\",,,,\"43012345\",,,[8,9]],[,,\"(?:00800\\\\d\\\\d|800)\\\\d{5}\",,,,\"80012345\",,,[8,12]],[,,\"90\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"700\\\\d{5}\",,,,\"70012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BG\",359,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{6})\",\"$1\",[\"1\"]],[,\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\n\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",\n[\"43[1-6]|70[1-9]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BH:[,[,,\"[136-9]\\\\d{7}\",\n,,,,,,[8]],[,,\"(?:1(?:3[1356]|6[0156]|7\\\\d)\\\\d|6(?:1[16]\\\\d|500|6(?:0\\\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\\\d\\\\d|1(?:11|78)))\\\\d{4}\",,,,\"17001234\"],[,,\"(?:3(?:[0-79]\\\\d|8[0-57-9])\\\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\\\d|7[0-689])))\\\\d{4}\",,,,\"36001234\"],[,,\"8[02369]\\\\d{6}\",,,,\"80123456\"],[,,\"(?:87|9[0-8])\\\\d{6}\",,,,\"90123456\"],[,,\"84\\\\d{6}\",,,,\"84123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BH\",973,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]],,[,,,,,,,,,[-1]],,\n,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BI:[,[,,\"(?:[267]\\\\d|31)\\\\d{6}\",,,,,,,[8]],[,,\"(?:22|31)\\\\d{6}\",,,,\"22201234\"],[,,\"(?:29|6[124-9]|7[125-9])\\\\d{6}\",,,,\"79561234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BI\",257,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BJ:[,[,,\"(?:01\\\\d|[24-689])\\\\d{7}\",,,,,,,[8,10]],[,,\"2090\\\\d{4}|(?:012\\\\d\\\\d|2(?:02|1[037]|2[45]|3[68]|4\\\\d))\\\\d{5}\",\n,,,\"0120211234\"],[,,\"(?:01(?:2[5-9]|[4-69]\\\\d)|4[0-8]|[56]\\\\d|9[013-9])\\\\d{6}\",,,,\"0195123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"857[58]\\\\d{4}\",,,,\"85751234\",,,[8]],\"BJ\",229,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"81\\\\d{6}\",,,,\"81123456\",,,[8]],,,[,,,,,,,,,[-1]]],BL:[,[,,\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",,,\n,,,,[9]],[,,\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\",,,,\"590271234\"],[,,\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\",,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\",,,,\"976012345\"],\"BL\",590,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BM:[,[,,\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"441(?:[46]\\\\d\\\\d|5(?:4\\\\d|60|89))\\\\d{4}\",\n,,,\"4414123456\",,,,[7]],[,,\"441(?:[2378]\\\\d|5[0-39]|9[02])\\\\d{5}\",,,,\"4413701234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"BM\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\n\"441$1\",,,,,[,,,,,,,,,[-1]],,\"441\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BN:[,[,,\"[2-578]\\\\d{6}\",,,,,,,[7]],[,,\"22[0-7]\\\\d{4}|(?:2[013-9]|[34]\\\\d|5[0-25-9])\\\\d{5}\",,,,\"2345678\"],[,,\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\",,,,\"7123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[34]\\\\d{5}\",,,,\"5345678\"],\"BN\",673,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BO:[,[,,\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",\n,,,,,,[8,9],[7]],[,,\"(?:2(?:2\\\\d\\\\d|5(?:11|[258]\\\\d|9[67])|6(?:12|2\\\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\\\d\\\\d|4(?:6\\\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\\\d\\\\d|6(?:11|[24689]\\\\d|72)))\\\\d{4}\",,,,\"22123456\",,,[8],[7]],[,,\"[67]\\\\d{7}\",,,,\"71234567\",,,[8]],[,,\"8001[07]\\\\d{4}\",,,,\"800171234\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"50\\\\d{6}\",,,,\"50123456\",,,[8],[7]],\"BO\",591,\"00(?:1\\\\d)?\",\"0\",,,\"0(1\\\\d)?\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"],\n,\"0$CC $1\"],[,\"(\\\\d{8})\",\"$1\",[\"[67]\"],,\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],,\"0$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,\"8001[07]\\\\d{4}\",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BQ:[,[,,\"(?:[34]1|7\\\\d)\\\\d{5}\",,,,,,,[7]],[,,\"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\\\d)\\\\d{3}\",,,,\"7151234\"],[,,\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\",,,,\"3181234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BQ\",599,\"00\",\n,,,,,,,,,[,,,,,,,,,[-1]],,\"[347]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BR:[,[,,\"[1-467]\\\\d{9,10}|55[0-46-9]\\\\d{8}|[34]\\\\d{7}|55\\\\d{7,8}|(?:5[0-46-9]|[89]\\\\d)\\\\d{7,9}\",,,,,,,[8,9,10,11]],[,,\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\\\d{7}\",,,,\"1123456789\",,,[10],[8]],[,,\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\",,,,\"11961234567\",,,[10,11],[8,9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\",,,[9,10]],[,,\"[59]00\\\\d{6,7}\",,,,\"500123456\",,,[9,10]],[,,\"(?:30[03]\\\\d{3}|4(?:0(?:0\\\\d|20)|370|864))\\\\d{4}|300\\\\d{5}\",\n,,,\"40041234\",,,[8,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BR\",55,\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"0\",,,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\",,,[[,\"(\\\\d{3,6})\",\"$1\",[\"1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[2-57]\",\"[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\n\"0$1\"],[,\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"9\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\",\"0 $CC ($1)\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\",\"0 $CC ($1)\"]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\n\"($1)\",\"0 $CC ($1)\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\",\"0 $CC ($1)\"]],[,,,,,,,,,[-1]],,,[,,\"(?:30[03]\\\\d{3}|4(?:0(?:0\\\\d|20)|864))\\\\d{4}|800\\\\d{6,7}|300\\\\d{5}\",,,,,,,[8,9,10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BS:[,[,,\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\\\d{4}\",,,,\"2423456789\",,,,[7]],[,,\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|3[0-4]|[89]9))\\\\d{4}\",\n,,,\"2423591234\",,,,[7]],[,,\"242300\\\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\",,,,[7]],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"BS\",1,\"011\",\"1\",,,\"([3-8]\\\\d{6})$|1\",\"242$1\",,,,,[,,,,,,,,,[-1]],,\"242\",[,\n,,,,,,,,[-1]],[,,\"242225\\\\d{4}\",,,,\"2422250123\"],,,[,,,,,,,,,[-1]]],BT:[,[,,\"[178]\\\\d{7}|[2-8]\\\\d{6}\",,,,,,,[7,8],[6]],[,,\"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\\\d{5}\",,,,\"2345678\",,,[7],[6]],[,,\"(?:1[67]|[78]7)\\\\d{6}\",,,,\"17123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BT\",975,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[2-7]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"1[67]|[78]\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|[78]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BW:[,[,,\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\\\d{4}\",,,,\"2401234\",,,[7]],[,,\"(?:321|7[1-8]\\\\d)\\\\d{5}\",\n,,,\"71123456\",,,[8]],[,,\"(?:0800|800\\\\d)\\\\d{6}\",,,,\"0800012345\",,,[10]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"79(?:1(?:[0-2]\\\\d|3[0-8])|2[0-7]\\\\d)\\\\d{3}\",,,,\"79101234\",,,[8]],\"BW\",267,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],,,[,,,,,,,,,[-1]]],BY:[,[,,\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",,,,,,,[6,7,8,9,10,11],[5]],[,,\"(?:1(?:5(?:1[1-5]|[24]\\\\d|6[2-4]|9[1-7])|6(?:[235]\\\\d|4[1-7])|7\\\\d\\\\d)|2(?:1(?:[246]\\\\d|3[0-35-9]|5[1-9])|2(?:[235]\\\\d|4[0-8])|3(?:[26]\\\\d|3[02-79]|4[024-7]|5[03-7])))\\\\d{5}\",,,,\"152450911\",,,[9],[5,6,7]],[,,\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\",,,,\"294911911\",,,[9]],[,,\"800\\\\d{3,7}|8(?:0[13]|20\\\\d)\\\\d{7}\",\n,,,\"8011234567\"],[,,\"(?:810|902)\\\\d{7}\",,,,\"9021234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"249\\\\d{6}\",,,,\"249123456\",,,[9]],\"BY\",375,\"810\",\"8\",,,\"0|80?\",,\"8~10\",,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,\"800\\\\d{3,7}|(?:8(?:0[13]|10|20\\\\d)|902)\\\\d{7}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BZ:[,[,,\"(?:0800\\\\d|[2-8])\\\\d{6}\",,,,,,,[7,11]],[,,\"(?:2(?:[02]\\\\d|36|[68]0)|[3-58](?:[02]\\\\d|[68]0)|7(?:[02]\\\\d|32|[68]0))\\\\d{4}\",,,,\"2221234\",,,[7]],[,,\"6[0-35-7]\\\\d{5}\",,,,\"6221234\",,,[7]],[,,\"0800\\\\d{7}\",,,,\"08001234123\",\n,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BZ\",501,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CA:[,[,,\"[2-9]\\\\d{9}|3\\\\d{6}\",,,,,,,[7,10]],[,,\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",\n,,,\"5062345678\",,,[10],[7]],[,,\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",,,,\"5062345678\",,,[10],[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\",,,[10]],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",\n,,,\"5219023456\",,,[10]],[,,\"600[2-9]\\\\d{6}\",,,,\"6002012345\",,,[10]],\"CA\",1,\"011\",\"1\",,,\"1\",,,1,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"310\\\\d{4}\",,,,\"3101234\",,,[7]],,,[,,,,,,,,,[-1]]],CC:[,[,,\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",,,,,,,[6,7,8,9,10,12]],[,,\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",,,,\"891621234\",,,[9],[8]],[,,\"4(?:79[01]|83[0-36-9])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",\n,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"CC\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"([59]\\\\d{7})$|0\",\"8$1\",\"0011\",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CD:[,[,,\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",\n,,,,,,[7,8,9,10]],[,,\"(?:(?:12|573)\\\\d\\\\d|276)\\\\d{5}|[1-6]\\\\d{6}\",,,,\"1234567\"],[,,\"88\\\\d{5}|(?:8[0-69]|9[017-9])\\\\d{7}\",,,,\"991234567\",,,[7,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CD\",243,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CF:[,[,,\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",,,,,,,[8]],[,,\"2[12]\\\\d{6}\",,,,\"21612345\"],[,,\"7[024-7]\\\\d{6}\",,,,\"70012345\"],[,,,,,,,,,[-1]],[,,\"8776\\\\d{4}\",,,,\"87761234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CF\",236,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nCG:[,[,,\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",,,,,,,[9]],[,,\"222[1-589]\\\\d{5}\",,,,\"222123456\"],[,,\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\",,,,\"061234567\"],[,,,,,,,,,[-1]],[,,\"80[0-2]\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CG\",242,\"00\",,,,,,,,[[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CH:[,[,,\"8\\\\d{11}|[2-9]\\\\d{8}\",,,\n,,,,[9,12]],[,,\"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\\\d{7}\",,,,\"212345678\",,,[9]],[,,\"(?:6[89]|7[235-9])\\\\d{7}\",,,,\"781234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"90[016]\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"84[0248]\\\\d{6}\",,,,\"840123456\",,,[9]],[,,\"878\\\\d{6}\",,,,\"878123456\",,,[9]],[,,,,,,,,,[-1]],\"CH\",41,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],,[,,\"74[0248]\\\\d{6}\",,,,\"740123456\",,,[9]],,,[,,,,,,,,,[-1]],[,,\"5[18]\\\\d{7}\",,,,\"581234567\",,,[9]],,,[,,\"860\\\\d{9}\",,,,\"860123456789\",,,[12]]],CI:[,[,,\"[02]\\\\d{9}\",,,,,,,[10]],[,,\"2(?:[15]\\\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\\\d{5}\",,,,\"2123456789\"],[,,\"0[157]\\\\d{8}\",,,,\"0123456789\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CI\",225,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",\n[\"2\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CK:[,[,,\"[2-578]\\\\d{4}\",,,,,,,[5]],[,,\"(?:2\\\\d|3[13-7]|4[1-5])\\\\d{3}\",,,,\"21234\"],[,,\"[578]\\\\d{4}\",,,,\"71234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CK\",682,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CL:[,[,,\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",\n,,,,,,[9,10,11]],[,,\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|2\\\\d{3}|3(?:(?:2\\\\d|50)\\\\d|3(?:[03467]\\\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578])\\\\d|6(?:00|[13-57]\\\\d)|8(?:0[1-9]|[1-9]\\\\d))\\\\d\\\\d|9(?:(?:10[01]|(?:[2458]\\\\d|7[1-9])\\\\d)\\\\d|3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}\",,,,\"600123456\",,,[9]],[,,\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|2\\\\d{3}|3(?:(?:2\\\\d|50)\\\\d|3(?:[03467]\\\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\\\\d|8(?:0[1-8]|[1-9]\\\\d))\\\\d\\\\d|9(?:(?:10[01]|(?:[2458]\\\\d|7[1-9])\\\\d)\\\\d|3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}\",\n,,,\"221234567\",,,[9]],[,,\"(?:123|8)00\\\\d{6}\",,,,\"800123456\",,,[9,11]],[,,,,,,,,,[-1]],[,,\"600\\\\d{7,8}\",,,,\"6001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,\"44\\\\d{7}\",,,,\"441234567\",,,[9]],\"CL\",56,\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"1(?:[03-589]|21)|[29]0|78\"]],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\n\"($1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9(?:10|[2-9])\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],[[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9(?:10|[2-9])\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],[,,,,,,,,,[-1]],,,[,,\"600\\\\d{7,8}\",,,,,,,[10,11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CM:[,[,,\"[26]\\\\d{8}|88\\\\d{6,7}\",,,,,,,[8,9]],[,,\"2(?:22|33)\\\\d{6}\",,,\n,\"222123456\",,,[9]],[,,\"(?:24[23]|6(?:[25-9]\\\\d|40))\\\\d{6}\",,,,\"671234567\",,,[9]],[,,\"88\\\\d{6,7}\",,,,\"88012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CM\",237,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CN:[,[,,\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",\n,,,,,,[7,8,9,10,11,12],[5,6]],[,,\"(?:10(?:[02-79]\\\\d\\\\d|[18](?:0[1-9]|[1-9]\\\\d))|2(?:[02-57-9]\\\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\\\d)|[2-79]\\\\d\\\\d))|(?:41[03]|8078|9(?:78|94))\\\\d\\\\d)\\\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\\\d\\\\d|95\\\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\\\d\\\\d|95\\\\d{3,4})|8078123|(?:43[35]|754|851)\\\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\\\d|23)\\\\d|95\\\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\\\d{7}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{3})?|[1-9]\\\\d{5})|[13-9]\\\\d{6}|2(?:[0-24-9]\\\\d{5}|3\\\\d(?:\\\\d{4})?))|9(?:[0-46-9]\\\\d{6}|5\\\\d{3}(?:\\\\d(?:\\\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\\\d{6}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{2})?|[1-9]\\\\d{4})|[13-9]\\\\d{5}|2(?:[0-24-9]\\\\d{4}|3\\\\d(?:\\\\d{3})?))|9(?:[0-46-9]\\\\d{5}|5\\\\d{3,5}))\",\n,,,\"1012345678\",,,[7,8,9,10,11],[5,6]],[,,\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\\\d{8}\",,,,\"13123456789\",,,[11]],[,,\"(?:(?:10|21)8|8)00\\\\d{7}\",,,,\"8001234567\",,,[10,12]],[,,\"16[08]\\\\d{5}\",,,,\"16812345\",,,[8]],[,,\"10(?:10\\\\d{4}|96\\\\d{3,4})|400\\\\d{7}|950\\\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))96\\\\d{3,4}\",\n,,,\"4001234567\",,,[7,8,9,10,11],[5,6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CN\",86,\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"0\",,,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",,\"00\",,[[,\"(\\\\d{5,6})\",\"$1\",[\"1(?:00|2[13])|9[56]\",\"1(?:00|2(?:1|39))|9[56]\",\"1(?:00|2(?:1|395))|9[56]\"]],[,\"(\\\\d{5,6})\",\"$1\",[\"1(?:0|23)|781|[1-9]12\",\"1(?:0|23)|7812|[1-9]123\",\"1(?:0|23(?:[0-8]|9[0-46-9]))|78123|[1-9]123\"]],[,\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\n\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\n\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\",\"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])\",\"1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|[3-9]\",\"1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))\",\n\"1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:0(?:[0-689]|7[0-79])|1[01459]|2[0-489]|[46]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))\"]],\n[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"16[08]\"]],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\",\"1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]\",\"1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])\",\n\"1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])\"]],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{7,8})\",\n\"$1 $2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",,1]],[[,\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\n\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\n\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{7,8})\",\n\"$1 $2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",,1]],[,,,,,,,,,[-1]],,,[,,\"(?:(?:10|21)8|[48])00\\\\d{7}|950\\\\d{7,8}\",,,,,,,[10,11,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CO:[,[,,\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",,,,,,,[8,10,11],[4,7]],[,,\"601055(?:[0-4]\\\\d|50)\\\\d\\\\d|6010(?:[0-4]\\\\d|5[0-4])\\\\d{4}|(?:46|60(?:[18][1-9]|[24-7][2-9]))\\\\d{6}\",\n,,,\"6012345678\",,,[8,10],[4,7]],[,,\"333301[0-5]\\\\d{3}|3333(?:00|2[5-9]|[3-9]\\\\d)\\\\d{4}|(?:3(?:(?:0[0-5]|1\\\\d|5[01]|70)\\\\d|2(?:[0-3]\\\\d|4[1-9])|3(?:00|3[0-24-9]))|9(?:101|408))\\\\d{6}\",,,,\"3211234567\",,,[10]],[,,\"1800\\\\d{7}\",,,,\"18001234567\",,,[11]],[,,\"(?:19(?:0[01]|4[78])|901)\\\\d{7}\",,,,\"19001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CO\",57,\"00(?:4(?:[14]4|56)|[579])\",\"0\",,,\"0([3579]|4(?:[14]4|56))?\",,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\n\"($1)\",\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"],,\"0$CC $1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\"]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\",\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"],,\"0$CC $1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CR:[,[,,\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",,,,,,,[8,10]],[,,\"210[7-9]\\\\d{4}|2(?:[024-7]\\\\d|1[1-9])\\\\d{5}\",\n,,,\"22123456\",,,[8]],[,,\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\",,,,\"83123456\",,,[8]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"90[059]\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:210[0-6]|4\\\\d{3}|5100)\\\\d{4}\",,,,\"40001234\",,,[8]],\"CR\",506,\"00\",,,,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\",,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],,,[,,,,,,,,,[-1]]],CU:[,[,,\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",,,,,,,[6,7,8,10],[4,5]],[,,\"(?:3[23]|4[89])\\\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\\\d)\\\\d{6}|(?:2[1-4]|4[1257]|7\\\\d)\\\\d{5,6}\",,,,\"71234567\",,,,[4,5]],[,,\"(?:5\\\\d|6[2-4])\\\\d{6}\",,,,\"51234567\",,,[8]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"807\\\\d{7}\",,,,\"8071234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CU\",53,\"119\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{6,7})\",\n\"$1 $2\",[\"7\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CV:[,[,,\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",,,,,,,[7]],[,,\"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\\\d|7[1-3]|8[1-5])\\\\d{4}\",,,,\"2211234\"],[,,\"(?:36|5[1-389]|9\\\\d)\\\\d{5}\",,,,\"9911234\"],[,,\"800\\\\d{4}\",,,,\"8001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:3[3-5]|4[356])\\\\d{5}\",,,,\"3401234\"],\"CV\",238,\"0\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3\",[\"[2-589]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CW:[,[,,\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",,,,,,,[7,8]],[,,\"9(?:4(?:3[0-5]|4[14]|6\\\\d)|50\\\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\\\d|7[01]|8[57-9]))\\\\d{4}\",,,,\"94351234\"],[,,\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\",,,,\"95181234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"60[0-2]\\\\d{4}\",,,,\"6001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CW\",599,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",\n[\"[3467]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],,[,,\"955\\\\d{5}\",,,,\"95581234\",,,[8]],1,\"[69]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CX:[,[,,\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",,,,,,,[6,7,8,9,10,12]],[,,\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",,,,\"891641234\",,,[9],[8]],[,,\"4(?:79[01]|83[0-36-9])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",\n,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"CX\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"([59]\\\\d{7})$|0\",\"8$1\",\"0011\",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CY:[,[,,\"(?:[279]\\\\d|[58]0)\\\\d{6}\",,,,,,\n,[8]],[,,\"2[2-6]\\\\d{6}\",,,,\"22345678\"],[,,\"9(?:10|[4-79]\\\\d)\\\\d{5}\",,,,\"96123456\"],[,,\"800\\\\d{5}\",,,,\"80001234\"],[,,\"90[09]\\\\d{5}\",,,,\"90012345\"],[,,\"80[1-9]\\\\d{5}\",,,,\"80112345\"],[,,\"700\\\\d{5}\",,,,\"70012345\"],[,,,,,,,,,[-1]],\"CY\",357,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:50|77)\\\\d{6}\",,,,\"77123456\"],,,[,,,,,,,,,[-1]]],CZ:[,[,,\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",,,,,,,[9,10,11,12]],[,,\"(?:2\\\\d|3[1257-9]|4[16-9]|5[13-9])\\\\d{7}\",,,,\"212345678\",\n,,[9]],[,,\"7(?:060\\\\d|19(?:[0-5]\\\\d|6[0-6]))\\\\d{4}|(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\",,,,\"601123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"9(?:0[05689]|76)\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"8[134]\\\\d{7}\",,,,\"811234567\",,,[9]],[,,\"70[01]\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"9[17]0\\\\d{6}\",,,,\"910123456\",,,[9]],\"CZ\",420,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",\n[\"9\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"9(?:5\\\\d|7[2-4])\\\\d{6}\",,,,\"972123456\",,,[9]],,,[,,\"9(?:3\\\\d{9}|6\\\\d{7,10})\",,,,\"93123456789\"]],DE:[,[,,\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",,,,,,,[4,5,6,7,8,9,10,11,12,13,14,15],[2,3]],[,,\"32\\\\d{9,11}|49[1-6]\\\\d{10}|322\\\\d{6}|49[0-7]\\\\d{3,9}|(?:[34]0|[68]9)\\\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\\\d|[589][0-7]|6[0-8]|7[0-467]))\\\\d{3,12}\",\n,,,\"30123456\",,,[5,6,7,8,9,10,11,12,13,14,15],[2,3,4]],[,,\"1(?:(?:5(?:[0-25-9]\\\\d\\\\d|3(?:10|33))|7[26-9]\\\\d\\\\d)\\\\d{6}|6[023]\\\\d{7,8})|17\\\\d{8}\",,,,\"15123456789\",,,[10,11]],[,,\"800\\\\d{7,12}\",,,,\"8001234567890\",,,[10,11,12,13,14,15]],[,,\"(?:137[7-9]|900(?:[135]|9\\\\d))\\\\d{6}\",,,,\"9001234567\",,,[10,11]],[,,\"180\\\\d{5,11}|13(?:7[1-6]\\\\d\\\\d|8)\\\\d{4}\",,,,\"18012345\",,,[7,8,9,10,11,12,13,14]],[,,\"700\\\\d{8}\",,,,\"70012345678\",,,[11]],[,,,,,,,,,[-1]],\"DE\",49,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",\n[\"3[02]|40|[68]9\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"227\",\"2277\"]],[,\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],\n[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],\n[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],[,,\"16(?:4\\\\d{1,10}|[89]\\\\d{1,11})\",,,,\"16412345\",,,[4,5,6,7,8,9,10,11,12,13,14]],,,[,,,,,,,,,[-1]],[,,\"18(?:1\\\\d{5,11}|[2-9]\\\\d{8})\",,,,\"18500123456\",,,[8,9,10,11,12,13,14]],,,[,,\"1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\\\d{7,8}|15(?:(?:[03-68]00|113)\\\\d|2\\\\d55|7\\\\d99|9\\\\d33)\\\\d{7}\",\n,,,\"177991234567\",,,[12,13]]],DJ:[,[,,\"(?:2\\\\d|77)\\\\d{6}\",,,,,,,[8]],[,,\"2(?:1[2-5]|7[45])\\\\d{5}\",,,,\"21360003\"],[,,\"77\\\\d{6}\",,,,\"77831001\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"DJ\",253,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DK:[,[,,\"[2-9]\\\\d{7}\",,,,,,,[8]],[,,\"(?:2(?:[0-59][1-9]|[6-8]\\\\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\\\\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\\\\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\\\\d))\\\\d{5}\",\n,,,\"32123456\"],[,,\"(?:2[6-8]|37|6[78]|96)\\\\d{6}|(?:2[0-59]|3[0-689]|[457]\\\\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\\\\d{5}\",,,,\"34412345\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"90\\\\d{6}\",,,,\"90123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"DK\",45,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DM:[,[,,\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\\\d{4}\",\n,,,\"7674201234\",,,,[7]],[,,\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\",,,,\"7672251234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"DM\",1,\n\"011\",\"1\",,,\"([2-7]\\\\d{6})$|1\",\"767$1\",,,,,[,,,,,,,,,[-1]],,\"767\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DO:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"8(?:[04]9[2-9]\\\\d\\\\d|29(?:2(?:[0-59]\\\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\\\d|4[7-9])|[45]\\\\d\\\\d|6(?:[0-27-9]\\\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\\\d{4}\",\n,,,\"8092345678\",,,,[7]],[,,\"8[024]9[2-9]\\\\d{6}\",,,,\"8092345678\",,,,[7]],[,,\"800(?:14|[2-9]\\\\d)\\\\d{5}|8[024]9[01]\\\\d{6}|8(?:33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"DO\",1,\n\"011\",\"1\",,,\"1\",,,,,,[,,,,,,,,,[-1]],,\"8001|8[024]9\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DZ:[,[,,\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",,,,,,,[8,9]],[,,\"9619\\\\d{5}|(?:1\\\\d|2[013-79]|3[0-8]|4[013-689])\\\\d{6}\",,,,\"12345678\"],[,,\"(?:5(?:4[0-29]|5\\\\d|6[0-3])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\",,,,\"551234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"80[3-689]1\\\\d{5}\",,,,\"808123456\",,,[9]],[,,\"80[12]1\\\\d{5}\",,,,\"801123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"98[23]\\\\d{6}\",,,,\"983123456\",,,[9]],\n\"DZ\",213,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EC:[,[,,\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",,,,,,,[8,9,10,11],[7]],[,,\"[2-7][2-7]\\\\d{6}\",,,,\"22123456\",,,[8],[7]],[,,\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\",,,,\"991234567\",,,[9]],[,,\"1800\\\\d{7}|1[78]00\\\\d{6}\",\n,,,\"18001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[2-7]890\\\\d{4}\",,,,\"28901234\",,,[8]],\"EC\",593,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-7]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-7]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],[,,,,\n,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EE:[,[,,\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:3[23589]|4[3-8]|6\\\\d|7[1-9]|88)\\\\d{5}\",,,,\"3212345\",,,[7]],[,,\"(?:5\\\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\\\d)|[3-9]\\\\d\\\\d)|(?:1(?:0[2-6]|1\\\\d)|(?:2[0-59]|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:0(?:00|4\\\\d)|(?:19|[2-7]\\\\d)\\\\d)|(?:(?:[124-69]\\\\d|3[5-9])\\\\d|7(?:[0-79]\\\\d|8[13-9])|8(?:[2-6]\\\\d|7[01]))\\\\d)|[349]\\\\d{4}))\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\",\n,,,\"51234567\",,,[7,8]],[,,\"800(?:(?:0\\\\d\\\\d|1)\\\\d|[2-9])\\\\d{3}\",,,,\"80012345\"],[,,\"(?:40\\\\d\\\\d|900)\\\\d{4}\",,,,\"9001234\",,,[7,8]],[,,,,,,,,,[-1]],[,,\"70[0-2]\\\\d{5}\",,,,\"70012345\",,,[8]],[,,,,,,,,,[-1]],\"EE\",372,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",\n[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,\"800[2-9]\\\\d{3}\",,,,,,,[7]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EG:[,[,,\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",,,,,,,[8,9,10],[6,7]],[,,\"13[23]\\\\d{6}|(?:15|57)\\\\d{6,7}|(?:2\\\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\\\d{7}\",,,,\"234567890\",,,[8,9],[6,7]],[,,\"1[0-25]\\\\d{8}\",,,,\"1001234567\",,,[10]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n\"EG\",20,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EH:[,[,,\"[5-8]\\\\d{8}\",,,,,,,[9]],[,,\"528[89]\\\\d{5}\",,,,\"528812345\"],[,,\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-8]|5[0-5]|8[0-7]))\\\\d{6}\",,,,\"650123456\"],[,,\"80[0-7]\\\\d{6}\",,,,\"801234567\"],\n[,,\"89\\\\d{7}\",,,,\"891234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\",,,,\"592401234\"],\"EH\",212,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,\"528[89]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ER:[,[,,\"[178]\\\\d{6}\",,,,,,,[7],[6]],[,,\"(?:1(?:1[12568]|[24]0|55|6[146])|8\\\\d\\\\d)\\\\d{4}\",,,,\"8370362\",,,,[6]],[,,\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\",,,,\"7123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ER\",291,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ES:[,[,,\"[5-9]\\\\d{8}\",,,,,,,[9]],[,,\"96906(?:0[0-8]|1[1-9]|[2-9]\\\\d)\\\\d\\\\d|9(?:69(?:0[0-57-9]|[1-9]\\\\d)|73(?:[0-8]\\\\d|9[1-9]))\\\\d{4}|(?:8(?:[1356]\\\\d|[28][0-8]|[47][1-9])|9(?:[135]\\\\d|[268][0-8]|4[1-9]|7[124-9]))\\\\d{6}\",,,,\"810123456\"],[,,\"96906(?:09|10)\\\\d\\\\d|(?:590(?:10[0-2]|600)|97390\\\\d)\\\\d{3}|(?:6\\\\d|7[1-48])\\\\d{7}\",,,,\"612345678\"],[,,\"[89]00\\\\d{6}\",,,,\"800123456\"],[,,\"80[367]\\\\d{6}\",,,,\"803123456\"],\n[,,\"90[12]\\\\d{6}\",,,,\"901123456\"],[,,\"70\\\\d{7}\",,,,\"701234567\"],[,,,,,,,,,[-1]],\"ES\",34,\"00\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"905\"]],[,\"(\\\\d{6})\",\"$1\",[\"[79]9\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"51\\\\d{7}\",,,,\"511234567\"],,,[,,,,,,,,,[-1]]],ET:[,[,,\"(?:11|[2-579]\\\\d)\\\\d{7}\",\n,,,,,,[9],[7]],[,,\"11667[01]\\\\d{3}|(?:11(?:1(?:1[1-468]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8]|7\\\\d)|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\\\d)))\\\\d{4}\",\n,,,\"111112345\",,,,[7]],[,,\"700[1-9]\\\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\\\d\\\\d)\\\\d{6}\",,,,\"911234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ET\",251,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FI:[,[,,\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",,,,,,,[5,6,7,8,9,10,11,12]],[,,\"1[3-7][1-8]\\\\d{3,6}|(?:19[1-8]|[23568][1-8]\\\\d|9(?:00|[1-8]\\\\d))\\\\d{2,6}\",\n,,,\"131234567\",,,[5,6,7,8,9]],[,,\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",,,,\"412345678\",,,[6,7,8,9,10]],[,,\"800\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"[67]00\\\\d{5,6}\",,,,\"600123456\",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FI\",358,\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{5})\",\"$1\",[\"75[12]\"],\"0$1\"],[,\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"11\"]],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,8})\",\n\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],[[,\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],[,,,,,,,,,[-1]],1,\"1[03-79]|[2-9]\",[,,\"20(?:2[023]|9[89])\\\\d{1,6}|(?:60[12]\\\\d|7099)\\\\d{4,5}|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:[1-3]00|7(?:0[1-5]\\\\d\\\\d|5[03-9]))\\\\d{3,7}\"],\n[,,\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\",,,,\"10112345\"],,,[,,,,,,,,,[-1]]],FJ:[,[,,\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",,,,,,,[7,11]],[,,\"603\\\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\\\d{5}\",,,,\"3212345\",,,[7]],[,,\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\",,,,\"7012345\",,,[7]],[,,\"0800\\\\d{7}\",,,,\"08001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FJ\",679,\"0(?:0|52)\",,,,,\n,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FK:[,[,,\"[2-7]\\\\d{4}\",,,,,,,[5]],[,,\"[2-47]\\\\d{4}\",,,,\"31234\"],[,,\"[56]\\\\d{4}\",,,,\"51234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FK\",500,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FM:[,[,,\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",,,,,,,[7]],[,,\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\\\d)\\\\d)\\\\d{3}\",\n,,,\"3201234\"],[,,\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\",,,,\"3501234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FM\",691,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FO:[,[,,\"[2-9]\\\\d{5}\",,,,,,,[6]],[,,\"(?:20|[34]\\\\d|8[19])\\\\d{4}\",,,,\"201234\"],[,,\"(?:[27][1-9]|5\\\\d|9[16])\\\\d{4}\",,,,\"211234\"],[,,\"80[257-9]\\\\d{3}\",,,,\"802123\"],[,,\"90(?:[13-5][15-7]|2[125-7]|9\\\\d)\\\\d\\\\d\",\n,,,\"901123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:6[0-36]|88)\\\\d{4}\",,,,\"601234\"],\"FO\",298,\"00\",,,,\"(10(?:01|[12]0|88))\",,,,[[,\"(\\\\d{6})\",\"$1\",[\"[2-9]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FR:[,[,,\"[1-9]\\\\d{8}\",,,,,,,[9]],[,,\"(?:26[013-9]|59[1-35-9])\\\\d{6}|(?:[13]\\\\d|2[0-57-9]|4[1-9]|5[0-8])\\\\d{7}\",,,,\"123456789\"],[,,\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7[3-9]\\\\d)\\\\d{6}\",,,,\"612345678\"],[,,\"80[0-5]\\\\d{6}\",,,,\"801234567\"],[,,\"836(?:0[0-36-9]|[1-9]\\\\d)\\\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\\\d|8[0-35-9])\\\\d{6}\",\n,,,\"891123456\"],[,,\"8(?:1[01]|2[0156]|4[024]|84)\\\\d{6}\",,,,\"884012345\"],[,,,,,,,,,[-1]],[,,\"9\\\\d{8}\",,,,\"912345678\"],\"FR\",33,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"10\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],[,,,,,,,\n,,[-1]],,,[,,,,,,,,,[-1]],[,,\"80[6-9]\\\\d{6}\",,,,\"806123456\"],,,[,,,,,,,,,[-1]]],GA:[,[,,\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",,,,,,,[7,8]],[,,\"[01]1\\\\d{6}\",,,,\"01441234\",,,[8]],[,,\"(?:(?:0[2-7]|7[467])\\\\d|6(?:0[0-4]|10|[256]\\\\d))\\\\d{5}|[2-7]\\\\d{6}\",,,,\"06031234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GA\",241,\"00\",,,,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\",,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GB:[,[,,\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",,,,,,,[7,9,10],[4,5,6,8]],[,,\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-5])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|5[01]))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",\n,,,\"1212345678\",,,[9,10],[4,5,6,7,8]],[,,\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",,,,\"7400123456\",,,[10]],[,,\"80[08]\\\\d{7}|800\\\\d{6}|8001111\",,,,\"8001234567\"],[,,\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",,,,\"9012345678\",,,[7,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,\"56\\\\d{8}\",,,,\"5612345678\",\n,,[10]],\"GB\",44,\"00\",\"0\",\" x\",,\"0|180020\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",\n[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",,,,\"7640123456\",,,[10]],1,,[,,,,,,,,,[-1]],[,,\"(?:3[0347]|55)\\\\d{8}\",,,,\"5512345678\",,,[10]],,,[,,,,,,,,,[-1]]],GD:[,[,,\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-4]|5[59]|73|90)|63[68]|7(?:58|84)|800|938)\\\\d{4}\",\n,,,\"4732691234\",,,,[7]],[,,\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|49|5[6-8])|5(?:2[01]|3[3-8])|901)\\\\d{4}\",,,,\"4734031234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,\n,[-1]],\"GD\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"473$1\",,,,,[,,,,,,,,,[-1]],,\"473\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GE:[,[,,\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",,,,,,,[9],[6,7]],[,,\"(?:3(?:[256]\\\\d|4[124-9]|7[0-4])|4(?:1\\\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\\\d{6}\",,,,\"322123456\",,,,[6,7]],[,,\"5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\\\d|22252[0-4])\\\\d\\\\d|5(?:0(?:0[17]0|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\\\d{3}|(?:5(?:0(?:0(?:0\\\\d|1[12]|22|3[0-6]|44|5[05]|77|88|9[09])|(?:[14]\\\\d|77)\\\\d|22[02])|1(?:1(?:[03][01]|[124]\\\\d|5[2-6]|7[0-4])|4\\\\d\\\\d)|[23]555|4(?:4\\\\d\\\\d|555)|5(?:[0157-9]\\\\d\\\\d|200|333|444)|6[89]\\\\d\\\\d|7(?:(?:[0147-9]\\\\d|22)\\\\d|5(?:00|[57]5))|8(?:0(?:[018]\\\\d|2[0-4])|5(?:55|8[89])|8(?:55|88))|9(?:090|[1-35-9]\\\\d\\\\d))|790\\\\d\\\\d)\\\\d{4}\",\n,,,\"555123456\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"70[67]\\\\d{6}\",,,,\"706123456\"],\"GE\",995,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"70[67]\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GF:[,[,,\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",\n,,,,,,[9]],[,,\"594(?:[02-49]\\\\d|1[0-5]|5[6-9]|6[0-3]|80)\\\\d{4}\",,,,\"594101234\"],[,,\"(?:694(?:[0-249]\\\\d|3[0-8])|7093[0-3])\\\\d{4}\",,,,\"694201234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:396|76\\\\d)\\\\d|476[0-6])\\\\d{4}\",,,,\"976012345\"],\"GF\",594,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,\n,[-1]],,,[,,,,,,,,,[-1]]],GG:[,[,,\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",,,,,,,[7,9,10],[6]],[,,\"1481[25-9]\\\\d{5}\",,,,\"1481256789\",,,[10],[6]],[,,\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",,,,\"7781123456\",,,[10]],[,,\"80[08]\\\\d{7}|800\\\\d{6}|8001111\",,,,\"8001234567\"],[,,\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",,,,\"9012345678\",,,[7,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,\"56\\\\d{8}\",,,,\"5612345678\",,,[10]],\"GG\",44,\"00\",\"0\",,,\"([25-9]\\\\d{5})$|0|180020\",\"1481$1\",\n,,,,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",,,,\"7640123456\",,,[10]],,,[,,,,,,,,,[-1]],[,,\"(?:3[0347]|55)\\\\d{8}\",,,,\"5512345678\",,,[10]],,,[,,,,,,,,,[-1]]],GH:[,[,,\"(?:[235]\\\\d{3}|800)\\\\d{5}\",,,,,,,[8,9],[7]],[,,\"3082[0-5]\\\\d{4}|3(?:0(?:[237]\\\\d|8[01])|[167](?:2[0-6]|7\\\\d|80)|2(?:2[0-5]|7\\\\d|80)|3(?:2[0-3]|7\\\\d|80)|4(?:2[013-9]|3[01]|7\\\\d|80)|5(?:2[0-7]|7\\\\d|80)|8(?:2[0-2]|7\\\\d|80)|9(?:[28]0|7\\\\d))\\\\d{5}\",,,,\"302345678\",,,[9],[7]],[,,\"(?:2(?:[0346-9]\\\\d|5[67])|5(?:[03-7]\\\\d|9[1-9]))\\\\d{6}\",\n,,,\"231234567\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GH\",233,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[237]|8[0-2]\"]],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"800\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GI:[,[,,\"(?:[25]\\\\d|60)\\\\d{6}\",\n,,,,,,[8]],[,,\"2190[0-2]\\\\d{3}|2(?:0(?:[02]\\\\d|3[01])|16[24-9]|2[2-5]\\\\d)\\\\d{4}\",,,,\"20012345\"],[,,\"5251[0-4]\\\\d{3}|(?:5(?:[146-8]\\\\d\\\\d|250)|60(?:1[01]|6\\\\d))\\\\d{4}\",,,,\"57123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GI\",350,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GL:[,[,,\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",,,,,,,[6]],[,,\"(?:19|3[1-7]|[68][1-9]|70|9\\\\d)\\\\d{4}\",,,,\"321000\"],[,,\"[245]\\\\d{5}\",\n,,,\"221234\"],[,,\"80\\\\d{4}\",,,,\"801234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3[89]\\\\d{4}\",,,,\"381234\"],\"GL\",299,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GM:[,[,,\"[2-9]\\\\d{6}\",,,,,,,[7]],[,,\"(?:4(?:[23]\\\\d\\\\d|4(?:1[024679]|[6-9]\\\\d))|5(?:5(?:3\\\\d|4[0-7])|6[67]\\\\d|7(?:1[04]|2[035]|3[58]|48))|8[0-589]\\\\d\\\\d)\\\\d{3}\",,,,\"5661234\"],[,,\"556\\\\d{4}|(?:[23679]\\\\d|4[015]|5[0-489]|8[67])\\\\d{5}\",,,,\n\"3012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GM\",220,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GN:[,[,,\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\\\d\\\\d)\\\\d{4}\",,,,\"30241234\",,,[8]],[,,\"6[0-356]\\\\d{7}\",,,,\"601123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"722\\\\d{6}\",,,,\"722123456\",\n,,[9]],\"GN\",224,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GP:[,[,,\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\",,,,\"590201234\"],[,,\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\",,,,\"690001234\"],\n[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\",,,,\"976012345\"],\"GP\",590,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GQ:[,[,,\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",,,,,,,[9]],[,,\"33[0-24-9]\\\\d[46]\\\\d{4}|3(?:33|5\\\\d)\\\\d[7-9]\\\\d{4}\",,,,\"333091234\"],\n[,,\"(?:222|55\\\\d)\\\\d{6}\",,,,\"222123456\"],[,,\"80\\\\d[1-9]\\\\d{5}\",,,,\"800123456\"],[,,\"90\\\\d[1-9]\\\\d{5}\",,,,\"900123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GQ\",240,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GR:[,[,,\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",,,,,,,[10,11,12]],[,,\"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\",\n,,,\"2123456789\",,,[10]],[,,\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\",,,,\"6912345678\",,,[10]],[,,\"800\\\\d{7,9}\",,,,\"8001234567\"],[,,\"90[19]\\\\d{7}\",,,,\"9091234567\",,,[10]],[,,\"8(?:0[16]|12|[27]5|50)\\\\d{7}\",,,,\"8011234567\",,,[10]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,,,,,,,,[-1]],\"GR\",30,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\n\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"5005000\\\\d{3}\",,,,\"5005000123\",,,[10]],,,[,,,,,,,,,[-1]]],GT:[,[,,\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",,,,,,,[8,11]],[,,\"[267][2-9]\\\\d{6}\",,,,\"22456789\",,,[8]],[,,\"(?:[3-5]\\\\d\\\\d|80[0-4])\\\\d{5}\",,,,\"51234567\",,,[8]],[,,\"18[01]\\\\d{8}\",,,,\"18001112222\",,,[11]],[,,\"19\\\\d{9}\",,,,\"19001112222\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GT\",502,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GU:[,[,,\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"671(?:2\\\\d\\\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\",,,,\"6713001234\",,,,[7]],[,,\"671(?:2\\\\d\\\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\",\n,,,\"6713001234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"GU\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"671$1\",,1,,,[,,,,,,,,,[-1]],,\"671\",[,,,,,,,,,[-1]],[,,,,\n,,,,,[-1]],,,[,,,,,,,,,[-1]]],GW:[,[,,\"[49]\\\\d{8}|4\\\\d{6}\",,,,,,,[7,9]],[,,\"443\\\\d{6}\",,,,\"443201234\",,,[9]],[,,\"9(?:5\\\\d|6[569]|77)\\\\d{6}\",,,,\"955012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"40\\\\d{5}\",,,,\"4012345\",,,[7]],\"GW\",245,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GY:[,[,,\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",,,,,,,[7]],[,,\"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\\\d|7[0-79])|3(?:2[25-9]|3\\\\d)|4(?:4[0-24]|5[56])|50[0-6]|77[1-57])\\\\d{4}\",\n,,,\"2201234\"],[,,\"(?:51[01]|6\\\\d\\\\d|7(?:[0-5]\\\\d|6[0-39]|70))\\\\d{4}\",,,,\"6091234\"],[,,\"(?:289|8(?:00|6[28]|88|99))\\\\d{4}\",,,,\"2891234\"],[,,\"9008\\\\d{3}\",,,,\"9008123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"515\\\\d{4}\",,,,\"5151234\"],\"GY\",592,\"001\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HK:[,[,,\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",,,,,,,[5,6,7,8,9,11]],[,,\"(?:2(?:[13-9]\\\\d|2[013-9])\\\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\\\d|8(?:4[0-8]|[579]\\\\d|6[0-5]))|58(?:0[1-9]|1[2-9]))\\\\d{4}\",\n,,,\"21234567\",,,[8]],[,,\"(?:4(?:44[0-35-9]|6(?:4[0-57-9]|6[0-6])|7(?:3[0-4]|4[0-48]|6[0-5]))|5(?:35[4-8]|73[0-6]|95[0-8])|6(?:26[013-8]|(?:66|78)[0-5])|70(?:7[1-8]|8[0-8])|84(?:4[0-2]|8[0-35-9])|9(?:29[013-9]|39[014-9]|59[0-467]|899))\\\\d{4}|(?:4(?:4[0-35-9]|6[0-357-9]|7[0-25])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|70[1-59]|84[0-39]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\",,,,\"51234567\",,,[8]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"900(?:[0-24-9]\\\\d{7}|3\\\\d{1,4})\",\n,,,\"90012345678\",,,[5,6,7,8,11]],[,,,,,,,,,[-1]],[,,\"8(?:1[0-4679]\\\\d|2(?:[0-36]\\\\d|7[0-4])|3(?:[034]\\\\d|2[09]|70))\\\\d{4}\",,,,\"81123456\",,,[8]],[,,,,,,,,,[-1]],\"HK\",852,\"00(?:30|5[09]|[126-9]?)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],,[,,\"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\\\d|1[18]|7[27-9])|3(?:[0-38]\\\\d|7[0-369]|9[2357-9])|47\\\\d|5(?:[178]\\\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\\\d)|7(?:[27]\\\\d|8[7-9])|8(?:[23689]\\\\d|7[1-9])|9(?:[025]\\\\d|6[0-246-8]|7[0-36-9]|8[238]))\\\\d{4}\",\n,,,\"71123456\",,,[8]],,,[,,,,,,,,,[-1]],[,,\"30(?:0[1-9]|[15-7]\\\\d|2[047]|89)\\\\d{4}\",,,,\"30161234\",,,[8]],,,[,,,,,,,,,[-1]]],HN:[,[,,\"8\\\\d{10}|[237-9]\\\\d{7}\",,,,,,,[8,11]],[,,\"2(?:2(?:0[0-59]|1[1-9]|[23]\\\\d|4[02-7]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\\\d|6[014-69]|7[04]|80)|6(?:[056]\\\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\\\d{4}\",,,,\"22123456\",\n,,[8]],[,,\"[37-9]\\\\d{7}\",,,,\"91234567\",,,[8]],[,,\"8002\\\\d{7}\",,,,\"80021234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"HN\",504,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]],[,,,,,,,,,[-1]],,,[,,\"8002\\\\d{7}\",,,,,,,[11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HR:[,[,,\"[2-69]\\\\d{8}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{6}\",,,,,,,[7,8,9],[6]],[,,\"1\\\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\\\d{6,7}\",\n,,,\"12345678\",,,[8,9],[6,7]],[,,\"9(?:(?:0[1-9]|[12589]\\\\d)\\\\d\\\\d|7(?:[0679]\\\\d\\\\d|5(?:[01]\\\\d|44|55|77|9[5-79])))\\\\d{4}|98\\\\d{6}\",,,,\"921234567\",,,[8,9]],[,,\"80\\\\d{5,7}\",,,,\"800123456\"],[,,\"6[01459]\\\\d{6}|6[01]\\\\d{5}\",,,,\"6001234\",,,[7,8]],[,,,,,,,,,[-1]],[,,\"7[45]\\\\d{6}\",,,,\"74123456\",,,[8]],[,,,,,,,,,[-1]],\"HR\",385,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\n\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"62\\\\d{6,7}|72\\\\d{6}\",,,,\"62123456\",,,[8,9]],,,[,,,,,,,,,[-1]]],HT:[,[,,\"[2-589]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:2\\\\d|5[1-5]|81|9[149])\\\\d{5}\",,,,\"22453300\"],[,,\"(?:[34]\\\\d|5[56])\\\\d{6}\",,,,\"34101234\"],[,,\"8\\\\d{7}\",,,,\"80012345\"],[,,,,,,,,,\n[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:[67][0-4]|8[0-3589]|9\\\\d)\\\\d{5}\",,,,\"98901234\"],\"HT\",509,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HU:[,[,,\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"(?:1\\\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\\\d{6}\",,,,\"12345678\",,,[8],[6,7]],[,,\"(?:[257]0|3[01])\\\\d{7}\",,,,\"201234567\",,,[9]],[,,\"(?:[48]0\\\\d|680[29])\\\\d{5}\",,,,\"80123456\"],[,\n,\"9[01]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"21\\\\d{7}\",,,,\"211234567\",,,[9]],\"HU\",36,\"00\",\"06\",,,\"06\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],,[,,,,,,,,,[-1]],,,[,,\"(?:[48]0\\\\d|680[29])\\\\d{5}\"],[,,\"38\\\\d{7}\",,,,\"381234567\",,,[9]],,,[,,,,,,,,,[-1]]],ID:[,[,,\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",\n,,,,,,[7,8,9,10,11,12,13,14,15,16,17],[5,6]],[,,\"2[124]\\\\d{7,8}|619\\\\d{8}|2(?:1(?:14|500)|2\\\\d{3})\\\\d{3}|61\\\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\\\d{5,8}\",,,,\n\"218350123\",,,[7,8,9,10,11],[5,6]],[,,\"8[1-35-9]\\\\d{7,10}\",,,,\"812345678\",,,[9,10,11,12]],[,,\"00(?:1803\\\\d{5,11}|7803\\\\d{7})|(?:177\\\\d|800)\\\\d{5,7}\",,,,\"8001234567\",,,[8,9,10,11,12,13,14,15,16,17]],[,,\"809\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,\"804\\\\d{7}\",,,,\"8041234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ID\",62,\"00[89]\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[,\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,8})\",\n\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3 $4\",[\"001\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[,\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",\n[\"2[124]|[36]1\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"001803\\\\d{5,11}|(?:007803\\\\d|8071)\\\\d{6}\",,,,,,,[10,11,12,13,14,15,16,17]],[,\n,\"(?:1500|8071\\\\d{3})\\\\d{3}\",,,,\"8071123456\",,,[7,10]],,,[,,,,,,,,,[-1]]],IE:[,[,,\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",,,,,,,[7,8,9,10],[5,6]],[,,\"(?:1\\\\d|21)\\\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\\\d|7)|5(?:0[45]|1\\\\d|8)|6(?:1\\\\d|[237-9])|9(?:1\\\\d|[35-9]))\\\\d{5}|(?:23|4(?:[1-469]|8\\\\d)|5[23679]|6[4-6]|7[14]|9[04])\\\\d{7}\",,,,\"2212345\",,,,[5,6]],[,,\"8(?:22|[35-9]\\\\d)\\\\d{6}\",,,,\"850123456\",,,[9]],[,,\"1800\\\\d{6}\",,,,\"1800123456\",,,[10]],[,,\"15(?:1[2-8]|[2-8]0|9[089])\\\\d{6}\",,,,\"1520123456\",\n,,[10]],[,,\"18[59]0\\\\d{6}\",,,,\"1850123456\",,,[10]],[,,\"700\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"76\\\\d{7}\",,,,\"761234567\",,,[9]],\"IE\",353,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"18[59]0\\\\d{6}\",,,,,,,[10]],[,,\"818\\\\d{6}\",,,,\"818123456\",,,[9]],,,[,,\"88210[1-9]\\\\d{4}|8(?:[35-79]5\\\\d\\\\d|8(?:[013-9]\\\\d\\\\d|2(?:[01][1-9]|[2-9]\\\\d)))\\\\d{5}\",,,,\"8551234567\",,,[10]]],IL:[,[,,\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",,,,,,,[7,8,\n9,10,11,12]],[,,\"153\\\\d{8,9}|29[1-9]\\\\d{5}|(?:2[0-8]|[3489]\\\\d)\\\\d{6}\",,,,\"21234567\",,,[8,11,12],[7]],[,,\"55(?:4(?:0[01]|10|5[0-7])|57[0-289])\\\\d{4}|5(?:(?:[0-2][02-9]|[36]\\\\d|[49][2-9]|8[3-7])\\\\d|5(?:01|2\\\\d|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\",,,,\"502345678\",,,[9]],[,,\"1(?:255|80[019]\\\\d{3})\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"1212\\\\d{4}|1(?:200|9(?:0[0-2]|19))\\\\d{6}\",,,,\"1919123456\",,,[8,10]],[,,\"1700\\\\d{6}\",,,,\"1700123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"7(?:38(?:[05]\\\\d|8[018])|8(?:33|55|77|81)\\\\d)\\\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\\\d|82|9[2-9])\\\\d{6}\",\n,,,\"771234567\",,,[9]],\"IL\",972,\"0(?:0|1[2-9])\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[,\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],,[,,,,,,,,,[-1]],,,[,,\"1700\\\\d{6}\",\n,,,,,,[10]],[,,\"1599\\\\d{6}\",,,,\"1599123456\",,,[10]],,,[,,\"151\\\\d{8,9}\",,,,\"15112340000\",,,[11,12]]],IM:[,[,,\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",,,,,,,[10],[6]],[,,\"1624(?:230|[5-8]\\\\d\\\\d)\\\\d{3}\",,,,\"1624756789\",,,,[6]],[,,\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\",,,,\"7924123456\"],[,,\"808162\\\\d{4}\",,,,\"8081624567\"],[,,\"8(?:440[49]06|72299\\\\d)\\\\d{3}|(?:8(?:45|70)|90[0167])624\\\\d{4}\",,,,\"9016247890\"],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\"],[,,\"56\\\\d{8}\",,,,\"5612345678\"],\"IM\",44,\n\"00\",\"0\",,,\"([25-8]\\\\d{5})$|0|180020\",\"1624$1\",,,,,[,,,,,,,,,[-1]],,\"74576|(?:16|7[56])24\",[,,,,,,,,,[-1]],[,,\"3440[49]06\\\\d{3}|(?:3(?:08162|3\\\\d{4}|45624|7(?:0624|2299))|55\\\\d{4})\\\\d{4}\",,,,\"5512345678\"],,,[,,,,,,,,,[-1]]],IN:[,[,,\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",,,,,,,[8,9,10,11,12,13],[6,7]],[,,\"2717(?:[2-7]\\\\d|95)\\\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\\\d|4(?:20[24]|72[2-8])|552[1-7])\\\\d{6}|(?:11|33|4[04]|80)[2-7]\\\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\\\d)\\\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\\\d[2-7]\\\\d{5}\",\n,,,\"7410410123\",,,[10],[6,7,8]],[,,\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\",\n,,,\"8123456789\",,,[10]],[,,\"000800\\\\d{7}|1(?:600\\\\d{6}|80(?:0\\\\d{4,9}|3\\\\d{9}))\",,,,\"1800123456\"],[,,\"186[12]\\\\d{9}\",,,,\"1861123456789\",,,[13]],[,,\"1860\\\\d{7}\",,,,\"18603451234\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IN\",91,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{7})\",\"$1\",[\"575\"]],[,\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],,,1],[,\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"140\"],,,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\n\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",,1],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],,,1]],[[,\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],,,1],[,\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],,,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\n\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\n\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",,1],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],,,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3 $4\",[\"18\"],,,1]],[,,,,,,,,,[-1]],,,[,,\"1(?:600\\\\d{6}|800\\\\d{4,9})|(?:000800|18(?:03\\\\d\\\\d|6(?:0|[12]\\\\d\\\\d)))\\\\d{7}\"],[,,\"140\\\\d{7}\",,,,\"1409305260\",,,[10]],,,[,,,,,,,,,[-1]]],IO:[,[,,\"3\\\\d{6}\",,,,,,,[7]],[,,\"37\\\\d{5}\",,,,\"3709100\"],[,,\"38\\\\d{5}\",,,,\"3801234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IO\",246,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IQ:[,[,,\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",\n,,,,,,[8,9,10],[6,7]],[,,\"1\\\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\\\d{6,7}\",,,,\"12345678\",,,[8,9],[6,7]],[,,\"7[3-9]\\\\d{8}\",,,,\"7912345678\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IQ\",964,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IR:[,\n[,,\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",,,,,,,[4,5,6,7,10],[8]],[,,\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\\\d{7}|[16]\\\\d{3}(?:\\\\d{4})?|[289]\\\\d{3}(?:\\\\d(?:\\\\d{3})?)?)|94(?:000[09]|(?:12\\\\d|30[0-2])\\\\d|2(?:121|[2689]0\\\\d)|4(?:111|40\\\\d))\\\\d{4}\",,,,\"2123456789\",,,[6,7,10],[4,5,8]],[,,\"9(?:(?:0[0-5]|[13]\\\\d|2[0-3])\\\\d\\\\d|9(?:[0-46]\\\\d\\\\d|5(?:10|5\\\\d)|8(?:[12]\\\\d|88)|9(?:0[0-3]|[19]\\\\d|21|69|77|8[7-9])))\\\\d{5}\",,,,\"9123456789\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,\n[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IR\",98,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"9(?:4440\\\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))\",,,,,,,[4,5,10]],[,,\"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])\",\n,,,\"9601\",,,[4,5]],,,[,,,,,,,,,[-1]]],IS:[,[,,\"(?:38\\\\d|[4-9])\\\\d{6}\",,,,,,,[7,9]],[,,\"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\\\d|8[0-36-8])|5(?:05|[156]\\\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\\\d{4}\",,,,\"4101234\",,,[7]],[,,\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[238]))\\\\d{4}\",,,,\"6111234\"],[,,\"80[0-8]\\\\d{4}\",,,,\"8001234\",,,[7]],[,,\"90(?:0\\\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\\\d{3}\",\n,,,\"9001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"49[0-24-79]\\\\d{4}\",,,,\"4921234\",,,[7]],\"IS\",354,\"00|1(?:0(?:01|[12]0)|100)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"809\\\\d{4}\",,,,\"8091234\",,,[7]],,,[,,\"(?:689|8(?:7[18]|80)|95[48])\\\\d{4}\",,,,\"6891234\",,,[7]]],IT:[,[,,\"0\\\\d{5,11}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",,,,,,,[6,7,8,9,10,11,12]],[,,\"0(?:669[0-79]\\\\d{1,6}|831\\\\d{2,8})|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",\n,,,\"0212345678\"],[,,\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",,,,\"3123456789\",,,[9,10]],[,,\"80(?:0\\\\d{3}|3)\\\\d{3}\",,,,\"800123456\",,,[6,9]],[,,\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",,,,\"899123456\",,,[6,8,9,10]],[,,\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",,,,\"848123456\",,,[6,9]],[,,\"1(?:78\\\\d|99)\\\\d{6}\",,,,\"1781234567\",,,[9,10]],[,,\"55\\\\d{8}\",,,,\"5512345678\",,,[10]],\"IT\",39,\"00\",,,,,,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"1(?:0|9[246])\",\"1(?:0|9(?:2[2-9]|[46]))\"]],\n[,\"(\\\\d{6})\",\"$1\",[\"1(?:1|92)\"]],[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[,\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],\n[,\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[03]\"]]],[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[,\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[03]\"]]],[,,,,,,,,,[-1]],1,,[,,\"848\\\\d{6}\",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,\"3[2-8]\\\\d{9,10}\",,,,\"33101234501\",,,[11,12]]],JE:[,[,,\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",,,,,,,[10],[6]],[,,\"1534[0-24-8]\\\\d{5}\",,,,\"1534456789\",,,,[6]],[,,\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\",\n,,,\"7797712345\"],[,,\"80(?:07(?:35|81)|8901)\\\\d{4}\",,,,\"8007354567\"],[,,\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\",,,,\"9018105678\"],[,,,,,,,,,[-1]],[,,\"701511\\\\d{4}\",,,,\"7015115678\"],[,,\"56\\\\d{8}\",,,,\"5612345678\"],\"JE\",44,\"00\",\"0\",,,\"([0-24-8]\\\\d{5})$|0|180020\",\"1534$1\",,,,,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",,,,\"7640123456\"],,,[,,,,,,,,,[-1]],[,,\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\",\n,,,\"5512345678\"],,,[,,,,,,,,,[-1]]],JM:[,[,,\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"8766060\\\\d{3}|(?:658(?:2(?:[0-8]\\\\d|9[0-46-9])|[3-9]\\\\d\\\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\\\d|9[2-468])))\\\\d{4}\",,,,\"8765230123\",,,,[7]],[,,\"(?:658295|876(?:2(?:0[1-9]|[13-9]\\\\d|2[013-9])|[348]\\\\d\\\\d|5(?:0[1-9]|[1-9]\\\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\",\n,,,\"8762101234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"JM\",1,\"011\",\"1\",,,\"1\",,,,,,[,,,,,,,,,[-1]],,\"658|876\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,\n,,,,[-1]]],JO:[,[,,\"(?:(?:[2689]|7\\\\d)\\\\d|32|427|53)\\\\d{6}\",,,,,,,[8,9]],[,,\"87(?:000|90[01])\\\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\\\d{4}\",\n,,,\"62001234\",,,[8]],[,,\"(?:427|7(?:[78][0-25-9]|9\\\\d))\\\\d{6}\",,,,\"790123456\",,,[9]],[,,\"80\\\\d{6}\",,,,\"80012345\",,,[8]],[,,\"9\\\\d{7}\",,,,\"90012345\",,,[8]],[,,\"85\\\\d{6}\",,,,\"85012345\",,,[8]],[,,\"70\\\\d{7}\",,,,\"700123456\",,,[9]],[,,,,,,,,,[-1]],\"JO\",962,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[47]\"],\"0$1\"]],,[,,\"74(?:66|77)\\\\d{5}\",,,,\"746612345\",\n,,[9]],,,[,,,,,,,,,[-1]],[,,\"8(?:10|8\\\\d)\\\\d{5}\",,,,\"88101234\",,,[8]],,,[,,,,,,,,,[-1]]],JP:[,[,,\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",,,,,,,[8,9,10,11,12,13,14,15,16,17]],[,,\"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\\\d|4(?:[2-578]\\\\d|6[02-8]|9[2-59])|5(?:[2-589]\\\\d|6[1-9]|7[2-8])|7(?:[25-9]\\\\d|3[4-9]|4[02-9])|8(?:[2679]\\\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\\\d|[679][1-9]))\\\\d{6}\",,,,\"312345678\",,,[9]],[,,\"(?:601[0-4]0|[7-9]0[1-9]\\\\d\\\\d)\\\\d{5}\",\n,,,\"9012345678\",,,[10]],[,,\"00777(?:[01]|5\\\\d)\\\\d\\\\d|(?:00(?:7778|882[1245])|(?:120|800\\\\d)\\\\d\\\\d)\\\\d{4}|00(?:37|66|78)\\\\d{6,13}\",,,,\"120123456\"],[,,\"990\\\\d{6}\",,,,\"990123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"60\\\\d{7}\",,,,\"601234567\",,,[9]],[,,\"50[1-9]\\\\d{7}\",,,,\"5012345678\",,,[10]],\"JP\",81,\"010\",\"0\",,,\"(000[2569]\\\\d{4,6})$|(?:(?:003768)0?)|0\",\"$1\",,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"007\",\"0077\",\"00777\",\"00777[01]\"]],[,\"(\\\\d{8,10})\",\"$1\",[\"000\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1-$2-$3\",[\"60\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{3,4})\",\"$1-$2-$3\",[\"007\",\"0077\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"008\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{5})(\\\\d{5,6})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{6})(\\\\d{6,7})\",\"$1-$2-$3\",[\"0\"]]],\n[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],[,,\"20\\\\d{8}\",,,,\"2012345678\",,,[10]],,,[,,\"00(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d|00(?:37|66|78)\\\\d{6,13}\"],[,,\"570\\\\d{6}\",,,,\"570123456\",,,[9]],,,[,,,,,,,,,[-1]]],KE:[,[,,\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",,,,,,,[7,8,9,10]],[,,\"(?:4[245]|5[1-79]|6[01457-9])\\\\d{5,7}|(?:4[136]|5[08]|62)\\\\d{7}|(?:[24]0|66)\\\\d{6,7}\",\n,,,\"202012345\",,,[7,8,9]],[,,\"(?:1(?:0[0-8]|1\\\\d|2[014]|[34]0)|7\\\\d\\\\d)\\\\d{6}\",,,,\"712123456\",,,[9]],[,,\"800[02-8]\\\\d{5,6}\",,,,\"800223456\",,,[9,10]],[,,\"900[02-9]\\\\d{5}\",,,,\"900223456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KE\",254,\"000\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KG:[,[,,\"8\\\\d{9}|[235-9]\\\\d{8}\",\n,,,,,,[9,10],[5,6]],[,,\"312(?:5[0-79]\\\\d|9(?:[0-689]\\\\d|7[0-24-9]))\\\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\\\d)|5(?:22|3[4-7]|59|6\\\\d)|6(?:22|5[35-7]|6\\\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\\\d)|9(?:22|4[1-8]|6\\\\d))|6(?:09|12|2[2-4])\\\\d)\\\\d{5}\",,,,\"312123456\",,,[9],[5,6]],[,,\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|600|7(?:[07]\\\\d|55)|88[08]|9(?:12|9[05-9]))\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,\n,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KG\",996,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KH:[,[,,\"1\\\\d{9}|[1-9]\\\\d{7,8}\",,,,,,,[8,9,10],[6,7]],[,,\"23(?:4(?:[2-4]|[56]\\\\d)|[568]\\\\d\\\\d)\\\\d{4}|23[236-9]\\\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\\\d)\\\\d{5}|6\\\\d{5,6})\",\n,,,\"23756789\",,,[8,9],[6,7]],[,,\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\",,,,\"91234567\",,,[8,9]],[,,\"1800(?:1\\\\d|2[019])\\\\d{4}\",,,,\"1800123456\",,,[10]],[,,\"1900(?:1\\\\d|2[09])\\\\d{4}\",,,,\"1900123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KH\",855,\"00[14-9]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\n,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KI:[,[,,\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",,,,,,,[5,8]],[,,\"(?:[24]\\\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\\\d\\\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\\\d{3}\",,,,\"31234\"],[,,\"(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\\\d{3}|(?:63\\\\d\\\\d|7(?:(?:[0146-9]\\\\d|2[0-689])\\\\d|3(?:[02-9]\\\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\\\d)))\\\\d{4}\",\n,,,\"72001234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"30(?:0[01]\\\\d\\\\d|12(?:11|20))\\\\d\\\\d\",,,,\"30010000\",,,[8]],\"KI\",686,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KM:[,[,,\"[3478]\\\\d{6}\",,,,,,,[7],[4]],[,,\"7[4-7]\\\\d{5}\",,,,\"7712345\",,,,[4]],[,,\"[34]\\\\d{6}\",,,,\"3212345\"],[,,,,,,,,,[-1]],[,,\"8\\\\d{6}\",,,,\"8001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KM\",269,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",\n[\"[3478]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KN:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\\\d{4}\",,,,\"8692361234\",,,,[7]],[,,\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\",,,,\"8697652917\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"KN\",1,\"011\",\"1\",,,\"([2-7]\\\\d{6})$|1\",\"869$1\",,,,,[,,,,,,,,,[-1]],,\"869\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KP:[,[,,\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",,,,,,,[8,10],[6,7]],[,,\"(?:(?:195|2)\\\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\\\d{6}\",,,,\"21234567\",,,,[6,7]],[,,\"19[1-3]\\\\d{7}\",,,,\"1921234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KP\",850,\"00|99\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"238[02-9]\\\\d{4}|2(?:[0-24-9]\\\\d|3[0-79])\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KR:[,[,,\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",,,,,,,[5,6,8,9,10,11,12,13,14],[3,4,7]],[,,\"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\\\d{2,3}\",,,,\"22123456\",,,[5,6,8,9,10],\n[3,4,7]],[,,\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[0-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\",,,,\"1020000000\",,,[9,10]],[,,\"00(?:308\\\\d{6,7}|798\\\\d{7,9})|(?:00368|[38]0)\\\\d{7}\",,,,\"801234567\",,,[9,11,12,13,14]],[,,\"60[2-9]\\\\d{6}\",,,,\"602345678\",,,[9]],[,,,,,,,,,[-1]],[,,\"50\\\\d{8,9}\",,,,\"5012345678\",,,[10,11]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],\"KR\",82,\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"0\",,,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\",,,,[[,\"(\\\\d{5})\",\"$1\",[\"1[016-9]1\",\"1[016-9]11\",\"1[016-9]114\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{5})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"003\",\"0030\"]],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\",\n\"0$CC-$1\"],[,\"(\\\\d{5})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{5})(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\",\"0$CC-$1\"],\n[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\",\"0$CC-$1\"]],[,,\"15\\\\d{7,8}\",,,,\"1523456789\",,,[9,10]],,,[,,\"00(?:3(?:08\\\\d{6,7}|68\\\\d{7})|798\\\\d{7,9})\",,,,,,,[11,12,13,14]],[,,\"1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[0168]|88)|8(?:00|33|55|77|99))\\\\d{4}\",,,,\"15441234\",,,[8]],,,[,,,,,,,,,[-1]]],KW:[,[,,\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",,,,,,,[7,8]],[,,\"2(?:[23]\\\\d\\\\d|4(?:[1-35-9]\\\\d|44)|5(?:0[034]|[2-46]\\\\d|5[1-3]|7[1-7]))\\\\d{4}\",,,,\"22345678\",,,[8]],[,,\"(?:41\\\\d\\\\d|5(?:(?:[05]\\\\d|1[0-7]|6[56])\\\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\\\d)\\\\d|1(?:00|11|6[16])|2[26]2|3[36]3|4[46]4|7(?:0[013-9]|[67]\\\\d)|8[68]8|9(?:[069]\\\\d|3[039]))|9(?:(?:[04679]\\\\d|8[057-9])\\\\d|1(?:00|1[01]|99)|2(?:00|2\\\\d)|3(?:00|3[03])|5(?:00|5\\\\d)))\\\\d{4}\",\n,,,\"50012345\",,,[8]],[,,\"18\\\\d{5}\",,,,\"1801234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KW\",965,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KY:[,[,,\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|4[89]|88)|9(?:14|4[035-9]))\\\\d{4}\",,\n,,\"3452221234\",,,,[7]],[,,\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\",,,,\"3453231234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"(?:345976|900[2-9]\\\\d\\\\d)\\\\d{4}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"KY\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"345$1\",,,,,[,,,,,,,,,[-1]],,\"345\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KZ:[,[,,\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",,,,,,,[10,14],[5,6,7]],[,,\"(?:33622|7(?:1(?:0(?:[23]\\\\d|4[0-3]|59|63)|1(?:[23]\\\\d|4[0-79]|59)|2(?:[23]\\\\d|59)|3(?:2\\\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\\\d|3[013-9]|5[1-9]|97)|5(?:2\\\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\\\d|5[19]|61)|72\\\\d|8(?:[27]\\\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\\\d|4[46-9]|5[3469])|2(?:2\\\\d|3[0679]|46|5[12679])|3(?:[2-4]\\\\d|5[139])|4(?:2\\\\d|3[1-35-9]|59)|5(?:[23]\\\\d|4[0-8]|59|61)|6(?:2\\\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\\\d|40|5[279])|8(?:[23]\\\\d|4[0-3]|59)|9(?:2\\\\d|3[124578]|59))))\\\\d{5}\",\n,,,\"7123456789\",,,[10],[5,6,7]],[,,\"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\\\d{7}\",,,,\"7710009998\",,,[10]],[,,\"8(?:00|108\\\\d{3})\\\\d{7}\",,,,\"8001234567\"],[,,\"809\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"808\\\\d{7}\",,,,\"8081234567\",,,[10]],[,,\"751\\\\d{7}\",,,,\"7511234567\",,,[10]],\"KZ\",7,\"810\",\"8\",,,\"8\",,\"8~10\",,,,[,,,,,,,,,[-1]],,\"33622|7\",[,,\"751\\\\d{7}\",,,,,,,[10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LA:[,[,,\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",,,,,,,[8,9,10],[6]],[,,\"(?:2[13]|[35-7][14]|41|8[1468])\\\\d{6}\",\n,,,\"21212862\",,,[8],[6]],[,,\"(?:20(?:[23579]\\\\d|8[78])|30[24]\\\\d)\\\\d{6}|30\\\\d{7}\",,,,\"2023123456\",,,[9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LA\",856,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"3\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LB:[,[,,\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",\n,,,,,,[7,8]],[,,\"7(?:62|8[0-6]|9[04-9])\\\\d{4}|(?:[14-69]\\\\d|2(?:[14-69]\\\\d|[78][1-9])|7[2-57]|8[02-9])\\\\d{5}\",,,,\"1123456\"],[,,\"(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[7-9]|9[0-3]))\\\\d{5}\",,,,\"71123456\"],[,,,,,,,,,[-1]],[,,\"9[01]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"80\\\\d{6}\",,,,\"80123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LB\",961,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],,[,\n,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LC:[,[,,\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"758(?:234|4(?:30|5\\\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\\\d{4}\",,,,\"7584305678\",,,,[7]],[,,\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\",,,,\"7582845678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"LC\",1,\"011\",\"1\",,,\"([2-8]\\\\d{6})$|1\",\"758$1\",,,,,[,,,,,,,,,[-1]],,\"758\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LI:[,[,,\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",,,,,,,[7,9]],[,,\"(?:2(?:01|1[27]|2[024]|3\\\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\\\d{4}\",,,,\"2345678\",,,[7]],[,,\"(?:6(?:(?:4[5-9]|5\\\\d)\\\\d|6(?:[024-68]\\\\d|1[01]|3[7-9]|70))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\",,,,\"660234567\"],[,,\"8002[28]\\\\d\\\\d|80(?:05\\\\d|9)\\\\d{4}\",,,,\"8002222\"],[,,\"90(?:02[258]|1(?:23|3[14])|66[136])\\\\d\\\\d\",\n,,,\"9002222\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LI\",423,\"00\",\"0\",,,\"(1001)|0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"870(?:28|87)\\\\d\\\\d\",,,,\"8702812\",,,[7]],,,[,,\"697(?:42|56|[78]\\\\d)\\\\d{4}\",,,,\"697861234\",,,[9]]],\nLK:[,[,,\"[1-9]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:12[2-9]|602|8[12]\\\\d|9(?:1\\\\d|22|9[245]))\\\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\\\d{6}\",,,,\"112345678\",,,,[7]],[,,\"7(?:[0-25-8]\\\\d|4[0-4])\\\\d{6}\",,,,\"712345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LK\",94,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"1973\\\\d{5}\",,,,\"197312345\"],\n,,[,,,,,,,,,[-1]]],LR:[,[,,\"(?:[2457]\\\\d|33|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",,,,,,,[7,8,9]],[,,\"2\\\\d{7}\",,,,\"21234567\",,,[8]],[,,\"(?:(?:(?:22|33)0|555|7(?:6[01]|7\\\\d)|88\\\\d)\\\\d|4(?:240|[67]))\\\\d{5}|[56]\\\\d{6}\",,,,\"770123456\",,,[7,9]],[,,,,,,,,,[-1]],[,,\"332(?:02|[34]\\\\d)\\\\d{4}\",,,,\"332021234\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LR\",231,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LS:[,[,,\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"2\\\\d{7}\",,,,\"22123456\"],[,,\"[56]\\\\d{7}\",,,,\"50123456\"],[,,\"800[1256]\\\\d{4}\",,,,\"80021234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LS\",266,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LT:[,[,,\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",,,,,,,[8]],[,,\"(?:3[1478]|4[124-6]|52)\\\\d{6}\",\n,,,\"31234567\"],[,,\"6\\\\d{7}\",,,,\"61234567\"],[,,\"80[02]\\\\d{5}\",,,,\"80012345\"],[,,\"9(?:0[0239]|10)\\\\d{5}\",,,,\"90012345\"],[,,\"808\\\\d{5}\",,,,\"80812345\"],[,,\"70[05]\\\\d{5}\",,,,\"70012345\"],[,,\"[89]01\\\\d{5}\",,,,\"80123456\"],\"LT\",370,\"00\",\"0\",,,\"[08]\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",,1],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",,1],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",,1],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",,1]],,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,\"70[67]\\\\d{5}\",,,,\"70712345\"],,,[,,,,,,,,,[-1]]],LU:[,[,,\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",,,,,,,[4,5,6,7,8,9,10,11]],[,,\"(?:35[013-9]|80[2-9]|90[89])\\\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\\\d|8[13-9]|9[2-579])\\\\d{2,9}\",,,,\"27123456\"],[,,\"6(?:[269][18]|5[1568]|7[189]|81)\\\\d{6}\",,,,\"628123456\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"90[015]\\\\d{5}\",,,,\"90012345\",,,[8]],[,,\"801\\\\d{5}\",,,,\"80112345\",,,[8]],[,,,,,,,,,[-1]],[,,\"20(?:1\\\\d{5}|[2-689]\\\\d{1,7})\",\n,,,\"20201234\",,,[4,5,6,7,8,9,10]],\"LU\",352,\"00\",,,,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\",,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\n\"$1 $2 $3\",[\"80[01]|90[015]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LV:[,[,,\"(?:[268]\\\\d|78|90)\\\\d{6}\",,,,,,,[8]],[,,\n\"6\\\\d{7}\",,,,\"63123456\"],[,,\"2333[0-8]\\\\d{3}|2(?:[0-24-9]\\\\d\\\\d|3(?:0[07]|[14-9]\\\\d|2[02-9]|3[0-24-9]))\\\\d{4}\",,,,\"21234567\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"90\\\\d{6}\",,,,\"90123456\"],[,,\"81\\\\d{6}\",,,,\"81123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LV\",371,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2679]|8[01]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LY:[,[,,\"[2-9]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:2(?:0[56]|[1-6]\\\\d|7[124579]|8[124])|3(?:1\\\\d|2[2356])|4(?:[17]\\\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\\\d|5[2-57]|8[1-5])|7(?:[13]\\\\d|2[13-79])|8(?:[124]\\\\d|5[124]|84))\\\\d{6}\",\n,,,\"212345678\",,,,[7]],[,,\"9[1-6]\\\\d{7}\",,,,\"912345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LY\",218,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MA:[,[,,\"[5-8]\\\\d{8}\",,,,,,,[9]],[,,\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\",,,,\"520123456\"],[,,\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-8]|5[0-5]|8[0-7]))\\\\d{6}\",\n,,,\"650123456\"],[,,\"80[0-7]\\\\d{6}\",,,,\"801234567\"],[,,\"89\\\\d{7}\",,,,\"891234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\",,,,\"592401234\"],\"MA\",212,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,\n[-1]]],MC:[,[,,\"(?:[3489]|6\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"(?:870|9[2-47-9]\\\\d)\\\\d{5}\",,,,\"99123456\",,,[8]],[,,\"4(?:[469]\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\",,,,\"612345678\"],[,,\"(?:800|90\\\\d)\\\\d{5}\",,,,\"90123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MC\",377,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"8[07]0\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MD:[,[,,\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",,,,,,,[8]],[,,\"(?:(?:2[1-9]|3[1-79])\\\\d|5(?:33|5[257]))\\\\d{5}\",,,,\"22212345\"],[,,\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\",,,,\"62112345\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,\n,\"90[056]\\\\d{5}\",,,,\"90012345\"],[,,\"808\\\\d{5}\",,,,\"80812345\"],[,,,,,,,,,[-1]],[,,\"3[08]\\\\d{6}\",,,,\"30123456\"],\"MD\",373,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"803\\\\d{5}\",,,,\"80312345\"],,,[,,,,,,,,,[-1]]],ME:[,[,,\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",,,,,,,[8,9],[6]],[,,\"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\\\d{5}\",\n,,,\"30234567\",,,[8],[6]],[,,\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\",,,,\"60123456\",,,[8]],[,,\"80(?:[0-2578]|9\\\\d)\\\\d{5}\",,,,\"80080002\"],[,,\"9(?:4[1568]|5[178])\\\\d{5}\",,,,\"94515151\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"78[1-49]\\\\d{5}\",,,,\"78108780\",,,[8]],\"ME\",382,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"77[1-9]\\\\d{5}\",,,,\"77273012\",,,[8]],,,[,,,,,,,,,[-1]]],MF:[,[,,\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",,,,,,,[9]],\n[,,\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\",,,,\"590271234\"],[,,\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\",,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\",,,,\"976012345\"],\"MF\",590,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MG:[,[,,\"[23]\\\\d{8}\",,,,,,,[9],[7]],[,,\"2072[29]\\\\d{4}|20(?:2\\\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\\\d{5}\",\n,,,\"202123456\",,,,[7]],[,,\"3[2-46-9]\\\\d{7}\",,,,\"321234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"22\\\\d{7}\",,,,\"221234567\"],\"MG\",261,\"00\",\"0\",,,\"([24-9]\\\\d{6})$|0\",\"20$1\",,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MH:[,[,,\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",,,,,,,[7]],[,,\"(?:247|528|625)\\\\d{4}\",,,,\"2471234\"],[,,\"(?:(?:23|54)5|329|45[35-8])\\\\d{4}\",,,,\"2351234\"],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"635\\\\d{4}\",,,,\"6351234\"],\"MH\",692,\"011\",\"1\",,,\"1\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MK:[,[,,\"[2-578]\\\\d{7}\",,,,,,,[8],[6,7]],[,,\"(?:(?:2(?:62|77)0|3444)\\\\d|4[56]440)\\\\d{3}|(?:34|4[357])700\\\\d{3}|(?:2(?:[0-3]\\\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\\\d{5}\",,,,\"22012345\",,,,[6,7]],[,,\"7(?:3555|(?:474|9[019]7)7)\\\\d{3}|7(?:[0-25-8]\\\\d\\\\d|3(?:[1-478]\\\\d|6[01])|4(?:2\\\\d|60|7[01578])|9(?:[2-4]\\\\d|5[01]|7[015]))\\\\d{4}\",\n,,,\"72345678\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"5\\\\d{7}\",,,,\"50012345\"],[,,\"8(?:0[1-9]|[1-9]\\\\d)\\\\d{5}\",,,,\"80123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MK\",389,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ML:[,[,,\"[24-9]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:07[0-8]|12[67])\\\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-59]))\\\\d{5}\",\n,,,\"20212345\"],[,,\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[0-3]|[679]\\\\d|8[2-59])\\\\d{6}\",,,,\"65012345\"],[,,\"80\\\\d{6}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ML\",223,\"00\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"67[057-9]|74[045]\",\"67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],[,,,,,,,,,[-1]],,,[,,\"80\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MM:[,\n[,,\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",,,,,,,[6,7,8,9,10],[5]],[,,\"(?:1(?:(?:12|[28]\\\\d|3[56]|7[3-6]|9[0-6])\\\\d|4(?:2[29]|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\\\d|22|7[0-2]|83)|51\\\\d\\\\d)|4(?:2(?:2\\\\d\\\\d|48[013])|3(?:20\\\\d|4(?:70|83)|56)|420\\\\d|5(?:2\\\\d|470))|6(?:0(?:[23]|88\\\\d)|(?:124|[56]2\\\\d)\\\\d|2472|3(?:20\\\\d|470)|4(?:2[04]\\\\d|472)|7(?:3\\\\d\\\\d|4[67]0|8(?:[01459]\\\\d|8))))\\\\d{4}|5(?:2(?:2\\\\d{5,6}|47[02]\\\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\\\d|6(?:20\\\\d|483)|7(?:20\\\\d|48[01])|8(?:20\\\\d|47[02])|9(?:20\\\\d|470))\\\\d{4})|7(?:(?:0470|4(?:25\\\\d|470)|5(?:202|470|96\\\\d))\\\\d{4}|1(?:20\\\\d{4,5}|4(?:70|83)\\\\d{4}))|8(?:1(?:2\\\\d{5,6}|4(?:10|7[01]\\\\d)\\\\d{3})|2(?:2\\\\d{5,6}|(?:320|490\\\\d)\\\\d{3})|(?:3(?:2\\\\d\\\\d|470)|4[24-7]|5(?:(?:2\\\\d|51)\\\\d|4(?:[1-35-9]\\\\d|4[0-57-9]))|6[23])\\\\d{4})|(?:1[2-6]\\\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|(?:[35]2|64)\\\\d))\\\\d{4}|25\\\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\\\d{4}\",\n,,,\"1234567\",,,[6,7,8,9],[5]],[,,\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|8[89]|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\",,,,\"92123456\",,,[7,8,9,10]],[,,\"80080(?:0[1-9]|2\\\\d)\\\\d{3}\",,,,\"8008001234\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"1333\\\\d{4}\",,,,\"13331234\",,,[8]],\"MM\",95,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\n\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[,\n\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MN:[,[,,\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",,,,,,,[8,9,10],[4,5,6]],[,,\"[12]2[1-3]\\\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\\\d\\\\d|7(?:0(?:[0-5]\\\\d|7[078]|80)|128))\\\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\\\d{6,7}\",,,,\"53123456\",,,,[4,5,6]],[,,\"92[0139]\\\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\\\d{6}\",,,,\"88123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"712[0-79]\\\\d{4}|7(?:1[013-9]|[5-79]\\\\d)\\\\d{5}\",\n,,,\"75123456\",,,[8]],\"MN\",976,\"001\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MO:[,[,,\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",,,,,,,[7,8]],[,,\"(?:28[2-9]|8(?:11|[2-57-9]\\\\d))\\\\d{5}\",\n,,,\"28212345\",,,[8]],[,,\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\",,,,\"66123456\",,,[8]],[,,\"0800\\\\d{3}\",,,,\"0800501\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MO\",853,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MP:[,[,,\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",,,,,,,[10],[7]],[,,\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\",\n,,,\"6702345678\",,,,[7]],[,,\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\",,,,\"6702345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"MP\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"670$1\",,1,,,[,,,,,,,,,[-1]],,\"670\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MQ:[,[,,\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"(?:596(?:[03-7]\\\\d|1[05]|2[7-9]|8[0-39]|9[04-9])|80[6-9]\\\\d\\\\d|9(?:477[6-9]|767[4589]))\\\\d{4}\",,,,\"596301234\"],[,,\"(?:69[67]\\\\d\\\\d|7091[0-3])\\\\d{4}\",,,,\"696201234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,\"8[129]\\\\d{7}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:397[0-3]|477[0-5]|76(?:6\\\\d|7[0-367]))\\\\d{4}\",\n,,,\"976612345\"],\"MQ\",596,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MR:[,[,,\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"(?:25[08]|35\\\\d|45[1-7])\\\\d{5}\",,,,\"35123456\"],[,,\"[2-4][0-46-9]\\\\d{6}\",,,,\"22123456\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MR\",\n222,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MS:[,[,,\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"6644(?:1[0-3]|91)\\\\d{4}\",,,,\"6644912345\",,,,[7]],[,,\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\",,,,\"6644923456\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"MS\",1,\"011\",\"1\",,,\"([34]\\\\d{6})$|1\",\"664$1\",,,,,[,,,,,,,,,[-1]],,\"664\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MT:[,[,,\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"20(?:3[1-4]|6[059])\\\\d{4}|2(?:0[19]|[1-357]\\\\d|60)\\\\d{5}\",,,,\"21001234\"],[,,\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\",,,,\"96961234\"],[,,\"800(?:02|[3467]\\\\d)\\\\d{3}\",,,,\"80071234\"],[,,\"5(?:0(?:0(?:37|43)|(?:6\\\\d|70|9[0168])\\\\d)|[12]\\\\d0[1-5])\\\\d{3}\",,,,\n\"50037123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3550\\\\d{4}\",,,,\"35501234\"],\"MT\",356,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]],,[,,\"7117\\\\d{4}\",,,,\"71171234\"],,,[,,,,,,,,,[-1]],[,,\"501\\\\d{5}\",,,,\"50112345\"],,,[,,,,,,,,,[-1]]],MU:[,[,,\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",,,,,,,[7,8,10]],[,,\"(?:2(?:[0346-8]\\\\d|1[0-8])|4(?:[013568]\\\\d|2[4-8]|71|90)|54(?:[3-5]\\\\d|71)|6\\\\d\\\\d|8(?:14|3[129]))\\\\d{4}\",,,,\"54480123\",,,[7,8]],[,,\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\\\d|8[0-689]|9[0-8])|7(?:0[0-6]|3[013]))\\\\d{5}\",\n,,,\"52512345\",,,[8]],[,,\"802\\\\d{7}|80[0-2]\\\\d{4}\",,,,\"8001234\",,,[7,10]],[,,\"30\\\\d{5}\",,,,\"3012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3(?:20|9\\\\d)\\\\d{4}\",,,,\"3201234\",,,[7]],\"MU\",230,\"0(?:0|[24-7]0|3[03])\",,,,,,\"020\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],,[,,\"219\\\\d{4}\",,,,\"2190123\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MV:[,[,,\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",,,,,,,[7,\n10]],[,,\"(?:3(?:0[0-4]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\\\d{4}\",,,,\"6701234\",,,[7]],[,,\"(?:46[46]|[79]\\\\d\\\\d)\\\\d{4}\",,,,\"7712345\",,,[7]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MV\",960,\"0(?:0|19)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"4(?:0[01]|50)\\\\d{4}\",,,,\"4001234\",,,[7]],,,[,,,,,,,,,[-1]]],\nMW:[,[,,\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",,,,,,,[7,9]],[,,\"(?:1[2-9]|2[12]\\\\d\\\\d)\\\\d{5}\",,,,\"1234567\"],[,,\"111\\\\d{6}|(?:31|77|[89][89])\\\\d{7}\",,,,\"991234567\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MW\",265,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],MX:[,[,,\"[2-9]\\\\d{9}\",,,,,,,[10],[7,8]],[,,\"(?:2(?:0[01]|2\\\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\\\d|7[12]|8[1-8]))\\\\d{7}\",,,,\"2001234567\",\n,,,[7,8]],[,,\"(?:2(?:2\\\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\\\d|7[12]|8[1-8]))\\\\d{7}\",,,,\"2221234567\",,,,[7,8]],[,,\"8(?:00|88)\\\\d{7}\",,,,\"8001234567\"],\n[,,\"900\\\\d{7}\",,,,\"9001234567\"],[,,\"300\\\\d{7}\",,,,\"3001234567\"],[,,\"500\\\\d{7}\",,,,\"5001234567\"],[,,,,,,,,,[-1]],\"MX\",52,\"0[09]\",,,,,,\"00\",,[[,\"(\\\\d{5})\",\"$1\",[\"53\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],[[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MY:[,[,,\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",,,,,,,\n[8,9,10],[6,7]],[,,\"427[01]\\\\d{4}|(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\\\d|9[0-57])\\\\d|4(?:2[0-689]|[3-79]\\\\d|8[1-35689])|5(?:2[0-589]|[3468]\\\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\\\d|[3489][0-8]))\\\\d{5}\",,,,\"323856789\",,,[8,9],[6,7]],[,,\"1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0-4]\\\\d|5[0-7]))|(?:[269]\\\\d|[37][1-9]|4[235-9])\\\\d|5(?:31|9\\\\d\\\\d)|8(?:1[23]|[236]\\\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\\\d{5}\",\n,,,\"123456789\",,,[9,10]],[,,\"1[378]00\\\\d{6}\",,,,\"1300123456\",,,[10]],[,,\"1600\\\\d{6}\",,,,\"1600123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"15(?:4(?:6[0-4]\\\\d|8(?:0[125]|[17]\\\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\\\d))\\\\d{4}\",,,,\"1546012345\",,,[10]],\"MY\",60,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\n\"$1-$2 $3\",[\"3\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MZ:[,[,,\"(?:2|8\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"2(?:[1346]\\\\d|5[0-2]|[78][12]|93)\\\\d{5}\",,,,\"21123456\",,,[8]],[,,\"8[2-79]\\\\d{7}\",,,,\"821234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],\"MZ\",258,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NA:[,[,,\"[68]\\\\d{7,8}\",,,,,,,[8,9]],[,,\"64426\\\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\\\d{4,5}|6(?:1(?:(?:0\\\\d|2[0189]|3[24-69]|4[5-9])\\\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\\\d{4}\",\n,,,\"61221234\"],[,,\"(?:60|8[1245])\\\\d{7}\",,,,\"811234567\",,,[9]],[,,\"80\\\\d{7}\",,,,\"800123456\",,,[9]],[,,\"8701\\\\d{5}\",,,,\"870123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"8(?:3\\\\d\\\\d|86)\\\\d{5}\",,,,\"88612345\"],\"NA\",264,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,\n[-1]],,,[,,,,,,,,,[-1]]],NC:[,[,,\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",,,,,,,[6]],[,,\"(?:2[03-9]|3[0-5]|4[1-7]|88)\\\\d{4}\",,,,\"201234\"],[,,\"(?:[579]\\\\d|8[0-79])\\\\d{4}\",,,,\"751234\"],[,,\"050\\\\d{3}\",,,,\"050012\"],[,,\"36\\\\d{4}\",,,,\"366711\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NC\",687,\"00\",,,,,,,,[[,\"(\\\\d{3})\",\"$1\",[\"5[6-8]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,\n,,[-1]]],NE:[,[,,\"[027-9]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\\\d{4}\",,,,\"20201234\"],[,,\"(?:23|7[0467]|[89]\\\\d)\\\\d{6}\",,,,\"93123456\"],[,,\"08\\\\d{6}\",,,,\"08123456\"],[,,\"09\\\\d{6}\",,,,\"09123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NE\",227,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,\n,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NF:[,[,,\"[13]\\\\d{5}\",,,,,,,[6],[5]],[,,\"(?:1(?:06|17|28|39)|3[0-2]\\\\d)\\\\d{3}\",,,,\"106609\",,,,[5]],[,,\"(?:14|3[58])\\\\d{4}\",,,,\"381234\",,,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NF\",672,\"00\",,,,\"([0-258]\\\\d{4})$\",\"3$1\",,,[[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[,\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NG:[,[,,\"(?:20|9\\\\d)\\\\d{8}|[78]\\\\d{9,13}\",,,,,,,[10,11,\n12,13,14],[6,7]],[,,\"20(?:[1259]\\\\d|3[013-9]|4[1-8]|6[024-689]|7[1-79]|8[2-9])\\\\d{6}\",,,,\"2033123456\",,,[10],[6,7]],[,,\"(?:702[0-24-9]|819[01])\\\\d{6}|(?:7(?:0[13-9]|[12]\\\\d)|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-6]))\\\\d{7}\",,,,\"8021234567\",,,[10]],[,,\"800\\\\d{7,11}\",,,,\"80017591759\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NG\",234,\"009\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"700\\\\d{7,11}\",,,,\"7001234567\"],,,[,,,,,,,,,[-1]]],NI:[,[,,\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",,,,,,,[8]],[,,\"2\\\\d{7}\",,,,\"21234567\"],[,,\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\",,,,\"81234567\"],[,,\"1800\\\\d{4}\",,,,\"18001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,\n,,,,,,,,[-1]],\"NI\",505,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NL:[,[,,\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",,,,,,,[5,6,7,8,9,10,11]],[,,\"(?:1(?:[035]\\\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\\\d\\\\d)\\\\d{6}\",\n,,,\"101234567\",,,[9]],[,,\"(?:6[1-58]|970\\\\d)\\\\d{7}\",,,,\"612345678\",,,[9,11]],[,,\"800\\\\d{4,7}\",,,,\"8001234\",,,[7,8,9,10]],[,,\"90[069]\\\\d{4,7}\",,,,\"9061234\",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:85|91)\\\\d{7}\",,,,\"851234567\",,,[9]],\"NL\",31,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"1[238]|[34]\"]],[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"14\"]],[,\"(\\\\d{6})\",\"$1\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[,\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[,\n\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[,\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\n\"$1 $2 $3\",[\"9\"],\"0$1\"]],[,,\"66\\\\d{7}\",,,,\"662345678\",,,[9]],,,[,,\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\\\d\",,,,,,,[5,6]],[,,\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\\\d{6})\\\\d\",,,,\"14020\",,,[5,6,9]],,,[,,,,,,,,,[-1]]],NO:[,[,,\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",,,,,,,[5,8]],[,,\"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\\\d{6}\",,,,\"21234567\",,,[8]],[,,\"(?:4[015-8]|9\\\\d)\\\\d{6}\",\n,,,\"40612345\",,,[8]],[,,\"80[01]\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"82[09]\\\\d{5}\",,,,\"82012345\",,,[8]],[,,\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",,,,\"81021234\",,,[8]],[,,\"880\\\\d{5}\",,,,\"88012345\",,,[8]],[,,\"85[0-5]\\\\d{5}\",,,,\"85012345\",,,[8]],\"NO\",47,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],,[,,,,,,,,,[-1]],1,\"[02-689]|7[0-8]\",[,,,,,,,,,[-1]],[,,\"(?:0[235-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\",,,,\"02000\"],,,[,,\"81[23]\\\\d{5}\",\n,,,\"81212345\",,,[8]]],NP:[,[,,\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",,,,,,,[8,10,11],[6,7]],[,,\"(?:1[0-6]\\\\d|99[02-6])\\\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\\\d{5}\",,,,\"14567890\",,,[8],[6,7]],[,,\"9(?:00|6[0-3]|7[0-24-6]|8[0-24-68])\\\\d{7}\",,,,\"9841234567\",,,[10]],[,,\"1(?:66001|800\\\\d\\\\d)\\\\d{5}\",,,,\"16600101234\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NP\",977,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6})\",\n\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{5})\",\"$1-$2-$3\",[\"1\"]]],[[,\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NR:[,[,,\"(?:222|444|(?:55|8\\\\d)\\\\d|666|777|999)\\\\d{4}\",,,,,,,[7]],[,,\"444\\\\d{4}\",,,,\"4441234\"],[,,\"(?:222|55[3-9]|666|777|8\\\\d\\\\d|999)\\\\d{4}\",\n,,,\"5551234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NR\",674,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NU:[,[,,\"(?:[4-7]|888\\\\d)\\\\d{3}\",,,,,,,[4,7]],[,,\"[47]\\\\d{3}\",,,,\"7012\",,,[4]],[,,\"(?:[56]|888[1-9])\\\\d{3}\",,,,\"8884012\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NU\",683,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]],,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NZ:[,[,,\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",,,,,,,[5,6,7,8,9,10]],[,,\"240\\\\d{5}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\\\d{6}\",,,,\"32345678\",,,[8],[7]],[,,\"2(?:[0-27-9]\\\\d|6)\\\\d{6,7}|2(?:1\\\\d|75)\\\\d{5}\",,,,\"211234567\",,,[8,9,10]],[,,\"508\\\\d{6,7}|80\\\\d{6,8}\",,,,\"800123456\",,,[8,9,10]],[,,\"(?:1[13-57-9]\\\\d{5}|50(?:0[08]|30|66|77|88))\\\\d{3}|90\\\\d{6,8}\",,,,\"900123456\",,,[7,8,9,10]],[,,,,,,,,,[-1]],\n[,,\"70\\\\d{7}\",,,,\"701234567\",,,[9]],[,,,,,,,,,[-1]],\"NZ\",64,\"0(?:0|161)\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\n\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"8(?:1[16-9]|22|3\\\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\\\d{2,7}\",,,,\"83012378\"],,,[,,,,,,,,,[-1]]],OM:[,[,,\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",,,,,,,[7,8,9]],[,,\"2[1-6]\\\\d{6}\",,,,\"23123456\",,,[8]],[,,\"1505\\\\d{4}|(?:7(?:[125-9]\\\\d|41)|9(?:0[1-9]|[1-9]\\\\d))\\\\d{5}\",,,,\"92123456\",,,[8]],[,,\"8007\\\\d{4,5}|(?:500|800[05])\\\\d{4}\",,,,\"80071234\"],[,,\"900\\\\d{5}\",,,,\"90012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"OM\",968,\"00\",,,,,,,,\n[[,\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PA:[,[,,\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",,,,,,,[7,8,10,11]],[,,\"(?:1(?:0\\\\d|1[0479]|2[37]|3[0137]|4[17]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[047-9]\\\\d|1[0-8]|2[0-5]|33|5[0-35]|6[068])|4(?:00|3[0-579]|4\\\\d|7[0-57-9])|5(?:[01]\\\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[4-9]|90)|8(?:09|2[89]|3\\\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\\\d))\\\\d{4}\",\n,,,\"2001234\",,,[7]],[,,\"(?:1[16]1|21[89]|6\\\\d{3}|8(?:1[01]|7[23]))\\\\d{4}\",,,,\"61234567\",,,[7,8]],[,,\"800\\\\d{4,5}|(?:00800|800\\\\d)\\\\d{6}\",,,,\"8001234\"],[,,\"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\\\d{4}\",,,,\"8601234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PA\",507,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PE:[,[,,\"(?:[14-8]|9\\\\d)\\\\d{7}\",\n,,,,,,[8,9],[6,7]],[,,\"(?:(?:(?:4[34]|5[14])[0-8]|687)\\\\d|7(?:173|(?:3[0-8]|55)\\\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[0569]|[56]0)))\\\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\\\d{6}\",,,,\"11234567\",,,[8],[6,7]],[,,\"9\\\\d{8}\",,,,\"912345678\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"805\\\\d{5}\",,,,\"80512345\",,,[8]],[,,\"801\\\\d{5}\",,,,\"80112345\",,,[8]],[,,\"80[24]\\\\d{5}\",,,,\"80212345\",,,[8]],[,,,,,,,,,[-1]],\"PE\",51,\"00|19(?:1[124]|77|90)00\",\"0\",\" Anexo \",,\"0\",,\"00\",,[[,\"(\\\\d{3})(\\\\d{5})\",\n\"$1 $2\",[\"80\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PF:[,[,,\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",,,,,,,[6,8,9]],[,,\"4(?:0[4-689]|9[4-68])\\\\d{5}\",,,,\"40412345\",,,[8]],[,,\"8[7-9]\\\\d{6}\",,,,\"87123456\",,,[8]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"499\\\\d{5}\",,,,\"49901234\",,,[8]],\n\"PF\",689,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,\"44\\\\d{4}\",,,,,,,[6]],[,,\"44\\\\d{4}\",,,,\"440123\",,,[6]],,,[,,,,,,,,,[-1]]],PG:[,[,,\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",,,,,,,[7,8]],[,,\"(?:(?:3[0-2]|4[257]|5[34]|9[78])\\\\d|64[1-9]|85[02-46-9])\\\\d{4}\",,,,\"3123456\",,,[7]],[,,\"(?:7\\\\d|8[1-48])\\\\d{6}\",,,,\"70123456\",,,[8]],[,\n,\"180\\\\d{4}\",,,,\"1801234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"2(?:0[0-57]|7[568])\\\\d{4}\",,,,\"2751234\",,,[7]],\"PG\",675,\"00|140[1-3]\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],,[,,\"27[01]\\\\d{4}\",,,,\"2700123\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PH:[,[,,\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",,,,,,,[6,8,9,10,11,12,13],[4,5,7]],[,,\"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\\\d{3}|88(?:22\\\\d\\\\d|42))\\\\d{4}|(?:2|8[2-8]\\\\d\\\\d)\\\\d{5}\",\n,,,\"232345678\",,,[6,8,9,10],[4,5,7]],[,,\"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\\\d|4[2-9]|8[135-9]|9[1-9]))\\\\d{7}\",,,,\"9051234567\",,,[10]],[,,\"1800\\\\d{7,9}\",,,,\"180012345678\",,,[11,12,13]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PH\",63,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\n\"(0$1)\"],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PK:[,[,,\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",\n,,,,,,[8,9,10,11,12],[5,6,7]],[,,\"(?:(?:21|42)[2-9]|58[126])\\\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\\\d{5,6}\",,,,\"2123456789\",,,[9,10],[5,6,7,8]],[,,\"3(?:[0-247]\\\\d|3[0-79]|55|64)\\\\d{7}\",,,,\"3012345678\",,,[10]],[,,\"800\\\\d{5}(?:\\\\d{3})?\",,,,\"80012345\",,,[8,11]],[,,\"900\\\\d{5}\",,,,\"90012345\",,,[8]],[,,,,,,,,,[-1]],[,,\"122\\\\d{6}\",\n,,,\"122044444\",,,[9]],[,,,,,,,,,[-1]],\"PK\",92,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\\\d{6}\",\n,,,\"21111825888\",,,[11,12]],,,[,,,,,,,,,[-1]]],PL:[,[,,\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",,,,,,,[6,7,8,9,10]],[,,\"47\\\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\\\d{6}|1(?:[0-8]\\\\d{5}|9\\\\d{3}(?:\\\\d{2})?))\",,,,\"123456789\",,,[7,9]],[,,\"2131[89]\\\\d{4}|21(?:1[013-5]|2\\\\d|3[2-9])\\\\d{5}|(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\",,,,\"512345678\",,,[9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\",,,[9,10]],[,,\"70[01346-8]\\\\d{6}\",,,,\"701234567\",,,[9]],[,\n,\"801\\\\d{6}\",,,,\"801234567\",,,[9]],[,,,,,,,,,[-1]],[,,\"39\\\\d{7}\",,,,\"391234567\",,,[9]],\"PL\",48,\"00\",,,,,,,,[[,\"(\\\\d{5})\",\"$1\",[\"19\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],\n[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]],,[,,\"64\\\\d{4,7}\",,,,\"641234567\",,,[6,7,8,9]],,,[,,,,,,,,,[-1]],[,,\"804\\\\d{6}\",,,,\"804123456\",,,[9]],,,[,,,,,,,,,[-1]]],PM:[,[,,\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",,,,,,,[6,9]],[,,\"(?:4[1-35-9]|5[0-47-9]|80[6-9]\\\\d\\\\d)\\\\d{4}\",,,,\"430123\"],[,,\"(?:4[02-489]|5[02-9]|708(?:4[0-5]|5[0-6]))\\\\d{4}\",,,,\"551234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,\"8[129]\\\\d{7}\",,,,\"810123456\",\n,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PM\",508,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PR:[,[,,\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",,,,,,,[10],[7]],[,,\"(?:787|939)[2-9]\\\\d{6}\",,,,\"7872345678\",,,,[7]],[,,\"(?:787|939)[2-9]\\\\d{6}\",,,,\"7872345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"PR\",1,\"011\",\"1\",,,\"1\",,,1,,,[,,,,,,,,,[-1]],,\"787|939\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PS:[,[,,\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",,,,,,,[8,9,10],\n[7]],[,,\"(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\\\d{5}\",,,,\"22234567\",,,[8],[7]],[,,\"5[69]\\\\d{7}\",,,,\"599123456\",,,[9]],[,,\"1800\\\\d{6}\",,,,\"1800123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"1700\\\\d{6}\",,,,\"1700123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PS\",970,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nPT:[,[,,\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",,,,,,,[9]],[,,\"2(?:[12]\\\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\\\d{6}\",,,,\"212345678\"],[,,\"6(?:[06]92(?:30|9\\\\d)|[35]92(?:[049]\\\\d|3[034]))\\\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\",,,,\"912345678\"],[,,\"80[02]\\\\d{6}\",,,,\"800123456\"],[,,\"(?:6(?:0[178]|4[68])\\\\d|76(?:0[1-57]|1[2-47]|2[237]))\\\\d{5}\",,,,\"760123456\"],[,,\"80(?:8\\\\d|9[1579])\\\\d{5}\",,,,\"808123456\"],[,,\"884[0-4689]\\\\d{5}\",,,,\"884123456\"],[,,\"30\\\\d{7}\",,,,\"301234567\"],\n\"PT\",351,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]],,[,,\"6(?:222\\\\d|89(?:00|88|99))\\\\d{4}\",,,,\"622212345\"],,,[,,,,,,,,,[-1]],[,,\"70(?:38[01]|596|(?:7\\\\d|8[17])\\\\d)\\\\d{4}\",,,,\"707123456\"],,,[,,\"600\\\\d{6}|6[06]92(?:0\\\\d|3[349]|49)\\\\d{3}\",,,,\"600110000\"]],PW:[,[,,\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",,,,,,,[7]],[,,\"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\\\d{4}\",,,,\"2771234\"],[,,\"(?:(?:46|83)[0-5]|(?:6[2-4689]|78)0)\\\\d{4}|(?:45|77|88)\\\\d{5}\",\n,,,\"6201234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PW\",680,\"01[12]\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PY:[,[,,\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",,,,,,,[6,7,8,9,10,11],[5]],[,,\"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\\\d|6[1-578]|75|8[0-8])|858)\\\\d{5,6}\",\n,,,\"212345678\",,,[7,8,9],[5,6]],[,,\"9(?:51|6[129]|7[1-6]|8[1-7]|9[1-5])\\\\d{6}\",,,,\"961456789\",,,[9]],[,,\"9800\\\\d{5,7}\",,,,\"98000123456\",,,[9,10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"8700[0-4]\\\\d{4}\",,,,\"870012345\",,,[9]],\"PY\",595,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"[2-9]0\\\\d{4,7}\",,,,\"201234567\",,,[6,7,8,9]],,,[,,,,,,,,,[-1]]],QA:[,[,,\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",,,,,,,[7,8,9,11]],[,,\"4(?:1111|2022)\\\\d{3}|4(?:[04]\\\\d\\\\d|14[0-6]|999)\\\\d{4}\",\n,,,\"44123456\",,,[8]],[,,\"[35-7]\\\\d{7}\",,,,\"33123456\",,,[8]],[,,\"800\\\\d{4}|(?:0080[01]|800)\\\\d{6}\",,,,\"8001234\",,,[7,9,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"QA\",974,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[136]|8\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]],,[,,\"2[136]\\\\d{5}\",,,,\"2123456\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RE:[,[,,\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\",,,,\"262161234\"],[,,\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\",\n,,,\"692123456\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,\"89[1-37-9]\\\\d{6}\",,,,\"891123456\"],[,,\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,\"9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\\\d{4}\",,,,\"939901234\"],\"RE\",262,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RO:[,[,,\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",,,,,,,[6,9]],[,,\"[23][13-6]\\\\d{7}|(?:2(?:19\\\\d|[3-6]\\\\d9)|31\\\\d\\\\d)\\\\d\\\\d\",\n,,,\"211234567\"],[,,\"(?:630|702)0\\\\d{5}|(?:6(?:00|2\\\\d)|7(?:0[013-9]|1[0-3]|[2-7]\\\\d|8[03-8]|9[0-39]))\\\\d{6}\",,,,\"712034567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"90[0136]\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"801\\\\d{6}\",,,,\"801123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RO\",40,\"00\",\"0\",\" int \",,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:37\\\\d|80[578])\\\\d{6}\",,,,\"372123456\",,,[9]],,,[,,,,,,,,,[-1]]],RS:[,[,,\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",,,,,,,[6,7,8,9,10,11,12],[4,5]],[,,\"(?:11[1-9]\\\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\\\d))\\\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\\\d{4,9}\",,,,\"10234567\",,,[7,8,9,10,11,12],[4,5,6]],[,,\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\",,,,\"601234567\",,,[8,9,10]],[,,\"800\\\\d{3,9}\",,\n,,\"80012345\"],[,,\"(?:78\\\\d|90[0169])\\\\d{3,7}\",,,,\"90012345\",,,[6,7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RS\",381,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"7[06]\\\\d{4,10}\",,,,\"700123456\"],,,[,,,,,,,,,[-1]]],RU:[,[,,\"8\\\\d{13}|[347-9]\\\\d{9}\",,,,,,,[10,14],[7]],[,,\"336(?:[013-9]\\\\d|2[013-9])\\\\d{5}|(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15-7]|6[0-35-79]|7[1-37-9]))\\\\d{7}\",\n,,,\"3011234567\",,,[10],[7]],[,,\"9\\\\d{9}\",,,,\"9123456789\",,,[10]],[,,\"8(?:0[04]|108\\\\d{3})\\\\d{7}\",,,,\"8001234567\"],[,,\"80[39]\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"808\\\\d{7}\",,,,\"8081234567\",,,[10]],[,,,,,,,,,[-1]],\"RU\",7,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"[0-79]\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\n\"8 ($1)\",,1],[,\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\n\"8 ($1)\",,1],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],[[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",,1],[,\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\n\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",,1],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RW:[,[,,\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",,,,,,,[8,9]],[,,\"(?:06|2[23568]\\\\d)\\\\d{6}\",,,,\"250123456\"],[,,\"7[237-9]\\\\d{7}\",,,,\"720123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"900\\\\d{6}\",,,,\"900123456\",\n,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RW\",250,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SA:[,[,,\"(?:[15]\\\\d|800|92)\\\\d{7}\",,,,,,,[9,10],[7]],[,,\"1(?:1\\\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\\\d{6}\",,,,\"112345678\",,,[9],[7]],[,,\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-8])\\\\d{6}\",\n,,,\"512345678\",,,[9]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"925\\\\d{6}\",,,,\"925012345\",,,[9]],[,,\"920\\\\d{6}\",,,,\"920012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SA\",966,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SB:[,[,,\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",,,,,,,[5,7]],\n[,,\"(?:1[4-79]|[23]\\\\d|4[0-2]|5[03]|6[0-37])\\\\d{3}\",,,,\"40123\",,,[5]],[,,\"48\\\\d{3}|(?:(?:6[89]|7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\",,,,\"7421234\"],[,,\"1[38]\\\\d{3}\",,,,\"18123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[12]\\\\d{3}\",,,,\"51123\",,,[5]],\"SB\",677,\"0[01]\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SC:[,[,,\"(?:[2489]\\\\d|64)\\\\d{5}\",\n,,,,,,[7]],[,,\"4[2-46]\\\\d{5}\",,,,\"4217123\"],[,,\"2[125-8]\\\\d{5}\",,,,\"2510123\"],[,,\"800[08]\\\\d{3}\",,,,\"8000000\"],[,,\"85\\\\d{5}\",,,,\"8512345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"971\\\\d{4}|(?:64|95)\\\\d{5}\",,,,\"6412345\"],\"SC\",248,\"010|0[0-2]\",,,,,,\"00\",,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SD:[,[,,\"[19]\\\\d{8}\",,,,,,,[9]],[,,\"1(?:5\\\\d|8[35-7])\\\\d{6}\",,,,\"153123456\"],[,,\"(?:1[0-2]|9[0-3569])\\\\d{7}\",,,,\"911231234\"],[,\n,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SD\",249,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SE:[,[,,\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",,,,,,,[6,7,8,9,10,12]],[,,\"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}\",\n,,,\"8123456\",,,[7,8,9]],[,,\"7[02369]\\\\d{7}\",,,,\"701234567\",,,[9]],[,,\"20\\\\d{4,7}\",,,,\"20123456\",,,[6,7,8,9]],[,,\"649\\\\d{6}|99[1-59]\\\\d{4}(?:\\\\d{3})?|9(?:00|39|44)[1-8]\\\\d{3,6}\",,,,\"9001234567\",,,[7,8,9,10]],[,,\"77[0-7]\\\\d{6}\",,,,\"771234567\",,,[9]],[,,\"75[1-8]\\\\d{6}\",,,,\"751234567\",,,[9]],[,,,,,,,,,[-1]],\"SE\",46,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1-$2 $3 $4\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1 $2 $3\",[\"20\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"9(?:00|39|44|9)\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"]],[,\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1 $2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1 $2 $3\",[\"9(?:00|39|44)\"]],[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"10|7\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]\"]]],[,,\"74[02-9]\\\\d{6}\",,,,\"740123456\",,,[9]],,,[,,,,,,,,,[-1]],[,,\"10[1-8]\\\\d{6}\",,,,\"102345678\",,,[9]],,,[,,\"(?:25[245]|67[3-68])\\\\d{9}\",,,,\"254123456789\",,,[12]]],SG:[,[,,\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",,,,,,,[8,10,11]],[,,\"662[0-24-9]\\\\d{4}|6(?:[0-578]\\\\d|6[013-57-9]|9[0-35-9])\\\\d{5}\",\n,,,\"61234567\",,,[8]],[,,\"898[02-8]\\\\d{4}|(?:8(?:0[1-9]|[1-8]\\\\d|9[0-7])|9[0-8]\\\\d)\\\\d{5}\",,,,\"81234567\",,,[8]],[,,\"(?:18|8)00\\\\d{7}\",,,,\"18001234567\",,,[10,11]],[,,\"1900\\\\d{7}\",,,,\"19001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:3[12]\\\\d|666)\\\\d{5}\",,,,\"31234567\",,,[8]],\"SG\",65,\"0[0-3]\\\\d\",,,,,,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"1[013-9]|77\",\"1(?:[013-8]|9(?:0[1-9]|[1-9]))|77\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\n\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"7000\\\\d{7}\",,,,\"70001234567\",,,[11]],,,[,,,,,,,,,[-1]]],SH:[,[,,\"(?:[256]\\\\d|8)\\\\d{3}\",,,,,,,[4,5]],[,,\"2(?:[0-57-9]\\\\d|6[4-9])\\\\d\\\\d\",,,,\"22158\"],[,,\"[56]\\\\d{4}\",,,,\"51234\",,,[5]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"262\\\\d\\\\d\",,,,\"26212\",,,[5]],\"SH\",290,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],1,\"[256]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SI:[,[,,\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",,,,,,,[5,6,7,8]],[,,\"(?:[1-357][2-8]|4[24-8])\\\\d{6}\",,,,\"12345678\",,,[8],[7]],[,,\"65(?:[178]\\\\d|5[56]|6[01])\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\",,,,\"31234567\",,,[8]],[,,\"80\\\\d{4,6}\",,,,\"80123456\",,,[6,7,8]],[,,\"89[1-3]\\\\d{2,5}|90\\\\d{4,6}\",,,,\"90123456\"],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,\"(?:59\\\\d\\\\d|8(?:1(?:[67]\\\\d|8[0-589])|2(?:0\\\\d|2[0-37-9]|8[0-2489])|3[389]\\\\d))\\\\d{4}\",,,,\"59012345\",,,[8]],\"SI\",386,\"00|10(?:22|66|88|99)\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SJ:[,[,,\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",\n,,,,,,[5,8]],[,,\"79\\\\d{6}\",,,,\"79123456\",,,[8]],[,,\"(?:4[015-8]|9\\\\d)\\\\d{6}\",,,,\"41234567\",,,[8]],[,,\"80[01]\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"82[09]\\\\d{5}\",,,,\"82012345\",,,[8]],[,,\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",,,,\"81021234\",,,[8]],[,,\"880\\\\d{5}\",,,,\"88012345\",,,[8]],[,,\"85[0-5]\\\\d{5}\",,,,\"85012345\",,,[8]],\"SJ\",47,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"79\",[,,,,,,,,,[-1]],[,,\"(?:0[235-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\",,,,\"02000\"],,,[,,\"81[23]\\\\d{5}\",,,,\"81212345\",,,[8]]],SK:[,[,,\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",\n,,,,,,[6,7,9]],[,,\"(?:2(?:16|[2-9]\\\\d{3})|(?:(?:[3-5][1-8]\\\\d|819)\\\\d|601[1-5])\\\\d)\\\\d{4}|(?:2|[3-5][1-8])1[67]\\\\d{3}|[3-5][1-8]16\\\\d\\\\d\",,,,\"221234567\"],[,,\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\",,,,\"912123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"9(?:00|[78]\\\\d)\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"8[5-9]\\\\d{7}\",,,,\"850123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"6(?:02|5[0-4]|9[0-6])\\\\d{6}\",,,,\"690123456\",,,[9]],\"SK\",421,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",\n[\"21\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"909\",\"9090\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],[,,\"9090\\\\d{3}\",,,,\"9090123\",,,[7]],,,[,,\"9090\\\\d{3}|(?:602|8(?:00|[5-9]\\\\d)|9(?:00|[78]\\\\d))\\\\d{6}\",,,,,,,[7,9]],[,,\"96\\\\d{7}\",,,,\"961234567\",,,[9]],,,[,,,,,,,,,[-1]]],SL:[,[,,\"(?:[237-9]\\\\d|66)\\\\d{6}\",,,,,,,[8],[6]],[,,\"22[2-4][2-9]\\\\d{4}\",,,,\"22221234\",,,,[6]],[,,\"(?:25|3[0-5]|66|7[1-9]|8[08]|9[09])\\\\d{6}\",,,,\"25123456\"],[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SL\",232,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SM:[,[,,\"(?:0549|[5-7]\\\\d)\\\\d{6}\",,,,,,,[8,10],[6]],[,,\"0549(?:8[0157-9]|9\\\\d)\\\\d{4}\",,,,\"0549886377\",,,[10],[6]],[,,\"6[16]\\\\d{6}\",,,,\"66661212\",,,[8]],[,,,,,,,,,[-1]],[,,\"7[178]\\\\d{6}\",,,,\"71123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[158]\\\\d{6}\",,,,\"58001110\",,,[8]],\"SM\",378,\"00\",,,\n,\"([89]\\\\d{5})$\",\"0549$1\",,,[[,\"(\\\\d{6})\",\"$1\",[\"[89]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SN:[,[,,\"(?:[378]\\\\d|93)\\\\d{7}\",,,,,,,[9]],[,,\"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\\\d{5}\",,,,\"301012345\"],[,,\"7(?:[05-8]\\\\d|[19]0|21)\\\\d{6}\",,,,\"701234567\"],[,,\"800\\\\d{6}\",\n,,,\"800123456\"],[,,\"88[4689]\\\\d{6}\",,,,\"884123456\"],[,,\"81[02468]\\\\d{6}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,\"(?:3(?:392|9[01]\\\\d)\\\\d|93(?:3[13]0|929))\\\\d{4}\",,,,\"933301234\"],\"SN\",221,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SO:[,[,,\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",,,,,,,[6,7,8,9]],[,,\"(?:1\\\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\\\d{5}|(?:[134]\\\\d|8[125])\\\\d{4}\",\n,,,\"4012345\",,,[6,7]],[,,\"(?:(?:15|(?:3[59]|4[89]|6\\\\d|7[679]|8[08])\\\\d|9(?:0\\\\d|[2-9]))\\\\d|2(?:4\\\\d|8))\\\\d{5}|(?:[67]\\\\d\\\\d|904)\\\\d{5}\",,,,\"71123456\",,,[7,8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SO\",252,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[,\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[,\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],\n[,\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SR:[,[,,\"(?:[2-5]|[6-8]\\\\d|90)\\\\d{5}\",,,,,,,[6,7]],[,,\"(?:2[1-3]|3[0-7]|4\\\\d|5[2-58])\\\\d{4}\",,,,\"211234\",,,[6]],[,,\"(?:6[08]|7[124-7]|8[1-9])\\\\d{5}\",,,,\"7412345\",,,[7]],[,,\"80\\\\d{5}\",,,,\"8012345\",,,[7]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"56\\\\d{4}\",,,,\"561234\",,,[6]],\"SR\",597,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],\n[,\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SS:[,[,,\"[19]\\\\d{8}\",,,,,,,[9]],[,,\"1[89]\\\\d{7}\",,,,\"181234567\"],[,,\"(?:12|9[1257-9])\\\\d{7}\",,,,\"977123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SS\",211,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ST:[,[,\n,\"(?:22|9\\\\d)\\\\d{5}\",,,,,,,[7]],[,,\"22\\\\d{5}\",,,,\"2221234\"],[,,\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\",,,,\"9812345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ST\",239,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SV:[,[,,\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",,,,,,,[7,8,11]],[,,\"2(?:79(?:0[0347-9]|[1-9]\\\\d)|89(?:0[024589]|[1-9]\\\\d))\\\\d{3}|2(?:[1-69]\\\\d|[78][0-8])\\\\d{5}\",,,,\n\"21234567\",,,[8]],[,,\"[67]\\\\d{7}\",,,,\"70123456\",,,[8]],[,,\"800\\\\d{8}|80[01]\\\\d{4}\",,,,\"8001234\",,,[7,11]],[,,\"900\\\\d{4}(?:\\\\d{4})?\",,,,\"9001234\",,,[7,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SV\",503,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SX:[,[,,\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"7215(?:4[2-8]|8[239]|9[056])\\\\d{4}\",\n,,,\"7215425678\",,,,[7]],[,,\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\",,,,\"7215205678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"SX\",1,\"011\",\"1\",,,\"(5\\\\d{6})$|1\",\n\"721$1\",,,,,[,,,,,,,,,[-1]],,\"721\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SY:[,[,,\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"21\\\\d{6,7}|(?:1(?:[14]\\\\d|[2356])|2[235]|3(?:[13]\\\\d|4)|4[134]|5[1-3])\\\\d{6}\",,,,\"112345678\",,,,[6,7]],[,,\"(?:50|9[1-9])\\\\d{7}\",,,,\"944567890\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SY\",963,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"[59]\"],\"0$1\",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SZ:[,[,,\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",,,,,,,[8,9]],[,,\"[23][2-5]\\\\d{6}\",,,,\"22171234\",,,[8]],[,,\"7[5-9]\\\\d{6}\",,,,\"76123456\",,,[8]],[,,\"0800\\\\d{4}\",,,,\"08001234\",,,[8]],[,,\"900\\\\d{6}\",,,,\"900012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"70\\\\d{6}\",,,,\"70012345\",,,[8]],\"SZ\",268,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,\n,\"0800\\\\d{4}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TA:[,[,,\"8\\\\d{3}\",,,,,,,[4]],[,,\"8\\\\d{3}\",,,,\"8999\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TA\",290,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"8\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TC:[,[,,\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"649(?:266|712|9(?:4\\\\d|50))\\\\d{4}\",,,,\"6497121234\",,,,[7]],[,,\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\",,,,\"6492311234\",,,,[7]],\n[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"649(?:71[01]|966)\\\\d{4}\",,,,\"6497101234\",,,,[7]],\"TC\",1,\"011\",\"1\",,,\"([2-479]\\\\d{6})$|1\",\"649$1\",,,,,[,,,,,,,,,[-1]],,\"649\",[,,,,,,\n,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TD:[,[,,\"(?:22|30|[689]\\\\d|77)\\\\d{6}\",,,,,,,[8]],[,,\"22(?:[37-9]0|5[0-5]|6[89])\\\\d{4}\",,,,\"22501234\"],[,,\"(?:30|[69]\\\\d|77|8[56])\\\\d{6}\",,,,\"63012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TD\",235,\"00|16\",,,,,,\"00\",,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[236-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TG:[,[,,\"[279]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\\\d{5}\",\n,,,\"22212345\"],[,,\"(?:7[0-29]|9[0-36-9])\\\\d{6}\",,,,\"90112345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TG\",228,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TH:[,[,,\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",,,,,,,[8,9,10,13]],[,,\"(?:1[0689]|2\\\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\\\d{6}\",,,,\"21234567\",,,[8]],[,,\"67(?:1[0-8]|2[4-7])\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\",\n,,,\"812345678\",,,[9]],[,,\"(?:001800\\\\d|1800)\\\\d{6}\",,,,\"1800123456\",,,[10,13]],[,,\"1900\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"6[08]\\\\d{7}\",,,,\"601234567\",,,[9]],\"TH\",66,\"00[1-9]\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TJ:[,[,,\"[0-57-9]\\\\d{8}\",,,,,,,[9],[3,5,6,7]],[,,\"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\\\d{6}\",\n,,,\"372123456\",,,,[3,5,6,7]],[,,\"(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\\\d{6}|(?:[09]\\\\d|1[0-27-9]|2[0-27]|[34]0|5[05]|7[01578]|8[078])\\\\d{7}\",,,,\"917123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TJ\",992,\"810\",,,,,,\"8~10\",,[[,\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],\n,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TK:[,[,,\"[2-47]\\\\d{3,6}\",,,,,,,[4,5,6,7]],[,,\"(?:2[2-4]|[34]\\\\d)\\\\d{2,5}\",,,,\"3101\"],[,,\"7[2-4]\\\\d{2,5}\",,,,\"7290\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TK\",690,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TL:[,[,,\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",,,,,,,[7,8]],[,,\"(?:2[1-5]|3[1-9]|4[1-4])\\\\d{5}\",,,,\"2112345\",,,[7]],[,,\"7[2-8]\\\\d{6}\",,,,\"77212345\",\n,,[8]],[,,\"80\\\\d{5}\",,,,\"8012345\",,,[7]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,\"70\\\\d{5}\",,,,\"7012345\",,,[7]],[,,,,,,,,,[-1]],\"TL\",670,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TM:[,[,,\"(?:[1-6]\\\\d|71)\\\\d{6}\",,,,,,,[8]],[,,\"(?:1(?:2\\\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\\\d{5}\",,,,\"12345678\"],[,,\"(?:6\\\\d|71)\\\\d{6}\",\n,,,\"66123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TM\",993,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TN:[,[,,\"[2-57-9]\\\\d{7}\",,,,,,,[8]],[,,\"81200\\\\d{3}|(?:3[0-2]|7\\\\d)\\\\d{6}\",,,,\"30010123\"],[,,\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-8])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\",\n,,,\"20123456\"],[,,\"8010\\\\d{4}\",,,,\"80101234\"],[,,\"88\\\\d{6}\",,,,\"88123456\"],[,,\"8[12]10\\\\d{4}\",,,,\"81101234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TN\",216,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TO:[,[,,\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",,,,,,,[5,7]],[,,\"(?:2\\\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\\\d{3}\",,,,\"20123\",,,[5]],[,,\"(?:5(?:4[0-5]|5[4-6])|6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\",\n,,,\"7715123\",,,[7]],[,,\"0800\\\\d{3}\",,,,\"0800222\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"55[0-37-9]\\\\d{4}\",,,,\"5510123\",,,[7]],\"TO\",676,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TR:[,[,,\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[7,10,12,13]],[,,\"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\\\d{7}\",\n,,,\"2123456789\",,,[10]],[,,\"561(?:011|61\\\\d)\\\\d{4}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\",,,,\"5012345678\",,,[10]],[,,\"8(?:00\\\\d{7}(?:\\\\d{2,3})?|11\\\\d{7})\",,,,\"8001234567\",,,[10,12,13]],[,,\"(?:8[89]8|900)\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"592(?:21[12]|461)\\\\d{4}\",,,,\"5922121234\",,,[10]],[,,\"850\\\\d{7}\",,,,\"8500123456\",,,[10]],\"TR\",90,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d)(\\\\d{3})\",\"$1 $2 $3\",[\"444\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",,1],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",,1]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[24][1-8]|3[1-9]\"],\"(0$1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",,1]],[,,\"512\\\\d{7}\",,,,\"5123456789\",,,[10]],,,[,,\"(?:444|811\\\\d{3})\\\\d{4}\",,,,,,,[7,10]],[,,\"444\\\\d{4}\",,,,\"4441444\",,,[7]],,,[,,,,,,,,,[-1]]],TT:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"868(?:2(?:01|1[5-9]|[23]\\\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\\\d|7[0-79])|82[124])\\\\d{4}\",,,,\"8682211234\",,,,[7]],[,,\"868(?:(?:2[5-9]|3\\\\d)\\\\d|4(?:3[0-6]|[6-9]\\\\d)|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\",\n,,,\"8682911234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"TT\",1,\"011\",\"1\",,,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",,,,,[,,,,,,,,,[-1]],,\"868\",[,,,,,,,,,[-1]],[,,\n,,,,,,,[-1]],,,[,,\"868619\\\\d{4}\",,,,\"8686191234\",,,,[7]]],TV:[,[,,\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",,,,,,,[5,6,7]],[,,\"2[02-9]\\\\d{3}\",,,,\"20123\",,,[5]],[,,\"(?:7[01]\\\\d|90)\\\\d{4}\",,,,\"901234\",,,[6,7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TV\",688,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TW:[,[,,\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",\n,,,,,,[7,8,9,10,11]],[,,\"(?:2[2-8]\\\\d|370|55[01]|7[1-9])\\\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\\\d)|1[023]\\\\d)\\\\d{4,5}|(?:[239]\\\\d\\\\d|4(?:0[56]|12|49))\\\\d{5})|6(?:[01]\\\\d{7}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|8(?:(?:2(?:3\\\\d|4[0-269]|[578]0|66)|36[24-9]|90\\\\d\\\\d)\\\\d{4}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|(?:2(?:2(?:0\\\\d\\\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\\\d|1[0-4])|(?:4\\\\d|5[0-49]|6[0-29]|7[0-5])\\\\d)\\\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\\\d\\\\d|4(?:2(?:[089]\\\\d|7[1-9])|(?:3[0-4]|[78]\\\\d|9[01])\\\\d))\\\\d)\\\\d{3}\",\n,,,\"221234567\",,,[8,9]],[,,\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\",,,,\"912345678\",,,[9]],[,,\"80[0-79]\\\\d{6}|800\\\\d{5}\",,,,\"800123456\",,,[8,9]],[,,\"20(?:[013-9]\\\\d\\\\d|2)\\\\d{4}\",,,,\"203123456\",,,[7,9]],[,,,,,,,,,[-1]],[,,\"99\\\\d{7}\",,,,\"990123456\",,,[9]],[,,\"7010(?:[0-2679]\\\\d|3[0-7]|8[0-5])\\\\d{5}|70\\\\d{8}\",,,,\"7012345678\",,,[10,11]],\"TW\",886,\"0(?:0[25-79]|19)\",\"0\",\"#\",,\"0\",,,,[[,\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"50[0-46-9]\\\\d{6}\",,,,\"500123456\",,,[9]],,,[,,,,,,,,,[-1]]],TZ:[,[,,\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",,,,,,,[9]],[,,\"2[2-8]\\\\d{7}\",,,,\"222345678\"],[,,\"(?:6[125-9]|7[13-9])\\\\d{7}\",,,,\"621234567\"],[,,\"80[08]\\\\d{6}\",,,,\"800123456\"],[,,\"90\\\\d{7}\",,,,\"900123456\"],\n[,,\"8(?:40|6[01])\\\\d{6}\",,,,\"840123456\"],[,,,,,,,,,[-1]],[,,\"41\\\\d{7}\",,,,\"412345678\"],\"TZ\",255,\"00[056]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"(?:8(?:[04]0|6[01])|90\\\\d)\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UA:[,[,,\"[89]\\\\d{9}|[3-9]\\\\d{8}\",,,,,,,[9,10],[5,6,7]],[,,\"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\\\d{7}\",\n,,,\"311234567\",,,[9],[5,6,7]],[,,\"790\\\\d{6}|(?:39|50|6[36-8]|7[1-357]|9[1-9])\\\\d{7}\",,,,\"501234567\",,,[9]],[,,\"800[1-8]\\\\d{5,6}\",,,,\"800123456\"],[,,\"900[239]\\\\d{5,6}\",,,,\"900212345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"89[1-579]\\\\d{6}\",,,,\"891234567\",,,[9]],\"UA\",380,\"00\",\"0\",,,\"0\",,\"0~0\",,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\n\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UG:[,[,,\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",,,,,,,[9],[5,6,7]],[,,\"20(?:(?:240|30[67])\\\\d|6(?:00[0-2]|30[0-4]))\\\\d{3}|(?:20(?:[017]\\\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\\\d{3})\\\\d{5}\",\n,,,\"312345678\",,,,[5,6,7]],[,,\"72[48]0\\\\d{5}|7(?:[014-8]\\\\d|2[067]|36|9[0-289])\\\\d{6}\",,,,\"712345678\"],[,,\"800[1-3]\\\\d{5}\",,,,\"800123456\"],[,,\"90[1-3]\\\\d{6}\",,,,\"901123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UG\",256,\"00[057]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],US:[,[,,\"[2-9]\\\\d{9}|3\\\\d{6}\",\n,,,,,,[10],[7]],[,,\"3052(?:0[0-8]|[1-9]\\\\d)\\\\d{4}|(?:2742|305[3-9])\\\\d{6}|(?:472|983)[2-47-9]\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\\\d{6}\",\n,,,\"2015550123\",,,,[7]],[,,\"3052(?:0[0-8]|[1-9]\\\\d)\\\\d{4}|(?:2742|305[3-9])\\\\d{6}|(?:472|983)[2-47-9]\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\\\d{6}\",\n,,,\"2015550123\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"305209\\\\d{4}\",,,,\"3052090123\",,,,[7]],\"US\",1,\"011\",\"1\",,,\"1\",,,1,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],,,1],\n[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[24-9]|3(?:[02-9]|1[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],,,1]],[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-9]\"]]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UY:[,[,,\"0004\\\\d{2,9}|[1249]\\\\d{7}|2\\\\d{3,4}|(?:[49]\\\\d|80)\\\\d{5}\",,,,,,,[4,5,6,7,8,9,10,11,12,13]],[,,\"(?:1(?:770|9(?:20|[89]7))|(?:2\\\\d|4[2-7])\\\\d\\\\d)\\\\d{4}\",,,,\"21231234\",,,[8],[7]],[,,\"9[1-9]\\\\d{6}\",,,,\"94231234\",,\n,[8]],[,,\"0004\\\\d{2,9}|(?:405|80[05])\\\\d{4}\",,,,\"8001234\",,,[6,7,8,9,10,11,12,13]],[,,\"90[0-8]\\\\d{4}\",,,,\"9001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UY\",598,\"0(?:0|1[3-9]\\\\d)\",\"0\",\" int. \",,\"0\",,\"00\",,[[,\"(\\\\d{4,5})\",\"$1\",[\"21\"]],[,\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\n\"$1 $2 $3 $4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"21\\\\d{2,3}\",,,,\"21123\",,,[4,5]],,,[,,,,,,,,,[-1]]],UZ:[,[,,\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"(?:55\\\\d\\\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|[69]\\\\d\\\\d|7(?:[23]\\\\d|7[69]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|[168]\\\\d\\\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\\\d{5}\",,,,\"669050123\"],\n[,,\"(?:(?:[25]0|33|8[78]|9[0-57-9])\\\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079])))|7(?:[07]\\\\d{3}|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\",\n,,,\"912345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UZ\",998,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VA:[,[,,\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",,,,,,,[6,7,8,9,10,11,12]],[,,\"06698\\\\d{1,6}\",,,,\"0669812345\",,,[6,7,8,9,10,11]],[,,\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",,,,\"3123456789\",,,[9,10]],[,,\"80(?:0\\\\d{3}|3)\\\\d{3}\",\n,,,\"800123456\",,,[6,9]],[,,\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",,,,\"899123456\",,,[6,8,9,10]],[,,\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",,,,\"848123456\",,,[6,9]],[,,\"1(?:78\\\\d|99)\\\\d{6}\",,,,\"1781234567\",,,[9,10]],[,,\"55\\\\d{8}\",,,,\"5512345678\",,,[10]],\"VA\",39,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"06698\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"3[2-8]\\\\d{9,10}\",,,,\"33101234501\",,,[11,12]]],VC:[,[,,\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",,,,,,,[10],[7]],\n[,,\"784(?:266|3(?:6[6-9]|7\\\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\\\d{4}\",,,,\"7842661234\",,,,[7]],[,,\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\",,,,\"7844301234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,\"78451[0-2]\\\\d{4}\",,,,\"7845101234\",,,,[7]],\"VC\",1,\"011\",\"1\",,,\"([2-7]\\\\d{6})$|1\",\"784$1\",,,,,[,,,,,,,,,[-1]],,\"784\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VE:[,[,,\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",,,,,,,[10],[7]],[,,\"(?:2(?:12|3[457-9]|[467]\\\\d|[58][1-9]|9[1-6])|[4-6]00)\\\\d{7}\",,,,\"2121234567\",,,,[7]],[,,\"4(?:1[24-8]|2[246])\\\\d{7}\",,,,\"4121234567\"],[,,\"800\\\\d{7}\",,,,\"8001234567\"],[,,\"90[01]\\\\d{7}\",,,,\"9001234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n\"VE\",58,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\",\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"501\\\\d{7}\",,,,\"5010123456\",,,,[7]],,,[,,,,,,,,,[-1]]],VG:[,[,,\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\\\d{4}\",,,,\"2842291234\",,,,[7]],[,,\"284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\\\d{4}\",,,,\"2843001234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",\n,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VG\",1,\"011\",\"1\",,,\"([2-578]\\\\d{6})$|1\",\"284$1\",,,,,[,,,,,,,,,[-1]],,\"284\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VI:[,[,,\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",,,,,,,[10],[7]],[,,\"340(?:2(?:0\\\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\",\n,,,\"3406421234\",,,,[7]],[,,\"340(?:2(?:0\\\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\",,,,\"3406421234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VI\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"340$1\",,1,,,[,,,,,,,,,[-1]],,\"340\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VN:[,[,,\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",,,,,,,[7,8,9,10]],[,,\"2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\\\d{7}\",,,,\"2101234567\",,,[10]],[,,\"(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\\\d{6}|(?:3\\\\d|5[1689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\",,,,\"912345678\",,,[9]],[,,\"1800\\\\d{4,6}|12(?:0[13]|28)\\\\d{4}\",\n,,,\"1800123456\",,,[8,9,10]],[,,\"1900\\\\d{4,6}\",,,,\"1900123456\",,,[8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"672\\\\d{6}\",,,,\"672012345\",,,[9]],\"VN\",84,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[17]99\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"69\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],,,1],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2[48]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",,1]],[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],,,1],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",,1]],[,,,,,,,,,[-1]],,,[,,\"[17]99\\\\d{4}|69\\\\d{5,6}\",,,,,,,[7,8]],[,,\"(?:[17]99|80\\\\d)\\\\d{4}|69\\\\d{5,6}\",\n,,,\"1992000\",,,[7,8]],,,[,,,,,,,,,[-1]]],VU:[,[,,\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",,,,,,,[5,7]],[,,\"(?:38[0-8]|48[4-9])\\\\d\\\\d|(?:2[02-9]|3[4-7]|88)\\\\d{3}\",,,,\"22123\",,,[5]],[,,\"(?:[58]\\\\d|7[013-7])\\\\d{5}\",,,,\"5912345\",,,[7]],[,,\"81[18]\\\\d\\\\d\",,,,\"81123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:0[1-9]|1[01])\\\\d{4}\",,,,\"9010123\",,,[7]],\"VU\",678,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:3[03]|900\\\\d)\\\\d{3}\",,,,\"30123\"],,\n,[,,,,,,,,,[-1]]],WF:[,[,,\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",,,,,,,[6,9]],[,,\"72\\\\d{4}\",,,,\"721234\",,,[6]],[,,\"(?:72|8[23])\\\\d{4}\",,,,\"821234\",,,[6]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9[23]\\\\d{4}\",,,,\"921234\",,,[6]],\"WF\",681,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"[48]0\\\\d{4}\",,,,\"401234\",,,[6]]],WS:[,\n[,,\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",,,,,,,[5,6,7,10]],[,,\"6[1-9]\\\\d{3}|(?:[2-5]|60)\\\\d{4}\",,,,\"22123\",,,[5,6]],[,,\"(?:7[1-35-8]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\",,,,\"7212345\",,,[7,10]],[,,\"800\\\\d{3}\",,,,\"800123\",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"WS\",685,\"0\",,,,,,,,[[,\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],XK:[,\n[,,\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",,,,,,,[8,9,10,11,12]],[,,\"38\\\\d{6,10}|(?:2[89]|39)(?:0\\\\d{5,6}|[1-9]\\\\d{5})\",,,,\"28012345\"],[,,\"4[3-9]\\\\d{6}\",,,,\"43201234\",,,[8]],[,,\"800\\\\d{5}\",,,,\"80001234\",,,[8]],[,,\"900\\\\d{5}\",,,,\"90001234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"XK\",383,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7,10})\",\n\"$1 $2\",[\"3\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YE:[,[,,\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",,,,,,,[7,8,9],[6]],[,,\"78[0-7]\\\\d{4}|17\\\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\\\d{5}\",,,,\"1234567\",,,[7,8],[6]],[,,\"7[01378]\\\\d{7}\",,,,\"712345678\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"YE\",967,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YT:[,[,,\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",,,,,,,[9]],[,,\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\",,,,\"269601234\"],[,,\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\",,,,\"639012345\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\",,,,\"939801234\"],\"YT\",262,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZA:[,[,,\"[1-79]\\\\d{8}|8\\\\d{4,9}\",,,,,,,[5,6,7,8,9,10]],[,,\"(?:2(?:0330|4302)|52087)0\\\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\\\d|5[1346-8])\\\\d{7}\",,,,\"101234567\",,,[9]],[,,\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:50[0-2]|6\\\\d\\\\d|7(?:[0-46-9]\\\\d|5[0-4]))\\\\d\\\\d|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\",\n,,,\"711234567\",,,[5,6,7,8,9]],[,,\"80\\\\d{7}\",,,,\"801234567\",,,[9]],[,,\"(?:86[2-9]|9[0-2]\\\\d)\\\\d{6}\",,,,\"862345678\",,,[9]],[,,\"860\\\\d{6}\",,,,\"860123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\\\d)\\\\d{5}\",,,,\"871234567\",,,[9]],\"ZA\",27,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"861\\\\d{6,7}\",,,,\"861123456\",,,[9,10]],,,[,,,,,,,,,[-1]]],ZM:[,[,,\"800\\\\d{6}|(?:21|[579]\\\\d|63)\\\\d{7}\",,,,,,,[9],[6]],[,,\"21[1-8]\\\\d{6}\",,,,\"211234567\",,,,[6]],[,,\"(?:[59][5-8]|7[5-9])\\\\d{7}\",,,,\"955123456\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"63\\\\d{7}\",,,,\"630123456\"],\"ZM\",260,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[1-9]\"]],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZW:[,[,,\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",,,,,,,[5,6,7,8,9,10],[3,4]],[,,\"(?:1(?:(?:3\\\\d|9)\\\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\\\d\\\\d|[56](?:[14]\\\\d\\\\d|20)|7(?:[089]|2[03]|[35]\\\\d\\\\d))\\\\d|4(?:2\\\\d\\\\d|8))\\\\d|1(?:2|[39]\\\\d{4}))|3(?:(?:123|(?:29\\\\d|92)\\\\d)\\\\d\\\\d|7(?:[19]|[56]\\\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\\\d{3}|83)|5(?:25\\\\d\\\\d|[78])|[689]\\\\d)|6(?:(?:[16-8]21|28|52[013])\\\\d\\\\d|[39])|8(?:[1349]28|523)\\\\d\\\\d)\\\\d{3}|(?:4\\\\d\\\\d|9[2-9])\\\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\\\d|7[1-7])\\\\d|2(?:[278]\\\\d|92)|58(?:2\\\\d|3))|3(?:[26]|9\\\\d{3})|5(?:4\\\\d|5)\\\\d\\\\d)\\\\d|6(?:(?:(?:[0-246]|[78]\\\\d)\\\\d|37)\\\\d|5[2-8]))\\\\d\\\\d|(?:2(?:[569]\\\\d|8[2-57-9])|3(?:[013-59]\\\\d|8[37])|6[89]8)\\\\d{3}\",\n,,,\"1312345\",,,,[3,4]],[,,\"7(?:[1278]\\\\d|3[1-9])\\\\d{6}\",,,,\"712345678\",,,[9]],[,,\"80(?:[01]\\\\d|20|8[0-8])\\\\d{3}\",,,,\"8001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"86(?:1[12]|22|30|44|55|77|8[368])\\\\d{6}\",,,,\"8686123456\",,,[10]],\"ZW\",263,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],\n[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],800:[,[,,\"(?:00|[1-9]\\\\d)\\\\d{6}\",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:00|[1-9]\\\\d)\\\\d{6}\",,,,\"12345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",800,,,,,,,,1,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],808:[,[,,\"[1-9]\\\\d{7}\",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[1-9]\\\\d{7}\",,,,\"12345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",808,,,,,,,,1,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],870:[,[,,\"7\\\\d{11}|[235-7]\\\\d{8}\",,,,,,,[9,12]],[,,,,,,,,,[-1]],[,,\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\",,,,\"301234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\n\"2\\\\d{8}\",,,,\"201234567\",,,[9]],\"001\",870,,,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],878:[,[,,\"10\\\\d{10}\",,,,,,,[12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"10\\\\d{10}\",,,,\"101234567890\"],\"001\",878,,,,,,,,1,[[,\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],881:[,[,,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",\n,,,,,,[9,10]],[,,,,,,,,,[-1]],[,,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",,,,\"612345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",881,,,,,,,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],882:[,[,,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",,,,,,,[7,8,9,10,11,12]],[,,,,,,,,,[-1]],[,,\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",\n,,,\"3421234\",,,[7,8,9,10,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\",,,,\"390123456789\"],\"001\",882,,,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"16\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[,\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"348[57]\\\\d{7}\",,,,\"34851234567\",,,[11]]],883:[,[,,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",,,,,,,[8,9,10,11,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\",\n,,,\"510012345\"],\"001\",883,,,,,,,,1,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],888:[,[,,\"\\\\d{11}\",,,,,,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,\n,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",888,,,,,,,,1,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"\\\\d{11}\",,,,\"12345678901\"],,,[,,,,,,,,,[-1]]],979:[,[,,\"[1359]\\\\d{8}\",,,,,,,[9],[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[1359]\\\\d{8}\",,,,\"123456789\",,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",979,,,,,,,,1,[[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]]};/*\n\n Copyright (C) 2010 The Libphonenumber Authors.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nfunction K(){this.g={}}K.h=void 0;K.g=function(){return K.h?K.h:K.h=new K};\nvar Ea={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",\"\\uff10\":\"0\",\"\\uff11\":\"1\",\"\\uff12\":\"2\",\"\\uff13\":\"3\",\"\\uff14\":\"4\",\"\\uff15\":\"5\",\"\\uff16\":\"6\",\"\\uff17\":\"7\",\"\\uff18\":\"8\",\"\\uff19\":\"9\",\"\\u0660\":\"0\",\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u06f0\":\"0\",\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\"},Fa={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",\n7:\"7\",8:\"8\",9:\"9\",\"+\":\"+\",\"*\":\"*\",\"#\":\"#\"},Ga={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",\"\\uff10\":\"0\",\"\\uff11\":\"1\",\"\\uff12\":\"2\",\"\\uff13\":\"3\",\"\\uff14\":\"4\",\"\\uff15\":\"5\",\"\\uff16\":\"6\",\"\\uff17\":\"7\",\"\\uff18\":\"8\",\"\\uff19\":\"9\",\"\\u0660\":\"0\",\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u06f0\":\"0\",\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\",A:\"2\",\nB:\"2\",C:\"2\",D:\"3\",E:\"3\",F:\"3\",G:\"4\",H:\"4\",I:\"4\",J:\"5\",K:\"5\",L:\"5\",M:\"6\",N:\"6\",O:\"6\",P:\"7\",Q:\"7\",R:\"7\",S:\"7\",T:\"8\",U:\"8\",V:\"8\",W:\"9\",X:\"9\",Y:\"9\",Z:\"9\"},Ha=RegExp(\"[+\\uff0b]+\"),L=RegExp(\"^[+\\uff0b]+\"),Ia=RegExp(\"([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])\"),Ja=RegExp(\"[+\\uff0b0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]\"),Ka=/[\\\\\\/] *x/,La=RegExp(\"[^0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9A-Za-z#]+$\"),Ma=/(?:.*?[A-Za-z]){3}.*/,Na=RegExp(\"^\\\\+([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]|[\\\\-\\\\.\\\\(\\\\)]?)*[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]|[\\\\-\\\\.\\\\(\\\\)]?)*$\"),\nOa=RegExp(\"^([A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]+((\\\\-)*[A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])*\\\\.)*[A-Za-z]+((\\\\-)*[A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])*\\\\.?$\");function M(a){return\"([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]{1,\"+a+\"})\"}\nfunction Pa(){return\";ext=\"+M(\"20\")+\"|[ \\u00a0\\\\t,]*(?:e?xt(?:ensi(?:o\\u0301?|\\u00f3))?n?|\\uff45?\\uff58\\uff54\\uff4e?|\\u0434\\u043e\\u0431|anexo)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\"+(M(\"20\")+\"#?|[ \\u00a0\\\\t,]*(?:[x\\uff58#\\uff03~\\uff5e]|int|\\uff49\\uff4e\\uff54)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(M(\"9\")+\"#?|[- ]+\")+(M(\"6\")+\"#|[ \\u00a0\\\\t]*(?:,{2}|;)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(M(\"15\")+\"#?|[ \\u00a0\\\\t]*(?:,)+[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(M(\"9\")+\"#?\")}\nvar Qa=new RegExp(\"(?:\"+Pa()+\")$\",\"i\"),Ra=new RegExp(\"^[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]{2}$|^[+\\uff0b]*(?:[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e*]*[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]){3,}[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e*A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]*(?:\"+Pa()+\")?$\",\"i\"),Sa=/(\\$\\d)/,\nTa=/^\\(?\\$1\\)?$/;function Ua(a){return 2>a.length?!1:N(Ra,a)}function Va(a){return N(Ma,a)?O(a,Ga):O(a,Ea)}function Wa(a){var b=Va(a.toString());E(a);a.g(b)}function Xa(a){return null!=a&&(1!=x(a,9)||-1!=u(a,9)[0])}function O(a,b){for(var c=new D,d,e=a.length,f=0;f<e;++f)d=a.charAt(f),d=b[d.toUpperCase()],null!=d&&c.g(d);return c.toString()}function Ya(a){return 0==a.length||Ta.test(a)}function P(a){return null!=a&&isNaN(a)&&a.toUpperCase()in Da}\nK.prototype.format=function(a,b){if(0==r(a,2)&&q(a,5)){var c=w(a,5);if(0<c.length)return c}c=w(a,1);var d=Q(a);if(0==b)return Za(c,0,d,\"\");if(!(c in J))return d;var e=R(this,c,S(c));a=q(a,3)&&0!=r(a,3).length?3==b?\";ext=\"+r(a,3):q(e,13)?r(e,13)+w(a,3):\" ext. \"+w(a,3):\"\";a:{e=0==u(e,20).length||2==b?u(e,19):u(e,20);for(var f,g=e.length,h=0;h<g;++h){f=e[h];var l=x(f,3);if(0==l||0==d.search(r(f,3,l-1)))if(l=new RegExp(r(f,1)),N(l,d)){e=f;break a}}e=null}null!=e&&(g=e,e=w(g,2),f=new RegExp(r(g,1)),w(g,\n5),g=w(g,4),d=2==b&&null!=g&&0<g.length?d.replace(f,e.replace(Sa,g)):d.replace(f,e),3==b&&(d=d.replace(RegExp(\"^[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]+\"),\"\"),d=d.replace(RegExp(\"[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]+\",\"g\"),\"-\")));return Za(c,b,d,a)};function R(a,b,c){return\"001\"==c?T(a,\"\"+b):T(a,c)}\nfunction Q(a){if(!q(a,2))return\"\";var b=\"\"+r(a,2);return q(a,4)&&r(a,4)&&0<w(a,8)?Array(w(a,8)+1).join(\"0\")+b:b}function Za(a,b,c,d){switch(b){case 0:return\"+\"+a+c+d;case 1:return\"+\"+a+\" \"+c+d;case 3:return\"tel:+\"+a+\"-\"+c+d;default:return c+d}}\nfunction U(a,b){switch(b){case 4:return r(a,5);case 3:return r(a,4);case 1:return r(a,3);case 0:case 2:return r(a,2);case 5:return r(a,6);case 6:return r(a,8);case 7:return r(a,7);case 8:return r(a,21);case 9:return r(a,25);case 10:return r(a,28);default:return r(a,1)}}function $a(a,b){var c=ab(a,b);a=R(a,w(b,1),c);if(null==a)return-1;b=Q(b);return bb(b,a)}\nfunction bb(a,b){return V(a,r(b,1))?V(a,r(b,5))?4:V(a,r(b,4))?3:V(a,r(b,6))?5:V(a,r(b,8))?6:V(a,r(b,7))?7:V(a,r(b,21))?8:V(a,r(b,25))?9:V(a,r(b,28))?10:V(a,r(b,2))?r(b,18)||V(a,r(b,3))?2:0:!r(b,18)&&V(a,r(b,3))?1:-1:-1}function T(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.g[b];if(null==c){c=Da[b];if(null==c)return null;c=(new C).g(H.m(),c);a.g[b]=c}return c}function V(a,b){var c=a.length;return 0<x(b,9)&&-1==u(b,9).indexOf(c)?!1:N(w(b,2),a)}\nfunction cb(a,b){var c=ab(a,b);var d=w(b,1);var e=R(a,d,c);null==e||\"001\"!=c&&d!=db(a,c)?e=!1:(a=Q(b),e=-1!=bb(a,e));return e}function ab(a,b){if(null==b)return null;var c=w(b,1);c=J[c];if(null==c)a=null;else if(1==c.length)a=c[0];else a:{b=Q(b);for(var d,e=c.length,f=0;f<e;f++){d=c[f];var g=T(a,d);if(q(g,23)){if(0==b.search(r(g,23))){a=d;break a}}else if(-1!=bb(b,g)){a=d;break a}}a=null}return a}function S(a){a=J[a];return null==a?\"ZZ\":a[0]}\nfunction db(a,b){a=T(a,b);if(null==a)throw Error(\"Invalid region code: \"+b);return w(a,10)}function W(a,b,c,d){var e=U(c,d),f=0==x(e,9)?u(r(c,1),9):u(e,9);e=u(e,10);if(2==d)if(Xa(U(c,0)))a=U(c,1),Xa(a)&&(f=f.concat(0==x(a,9)?u(r(c,1),9):u(a,9)),f.sort(),0==e.length?e=u(a,10):(e=e.concat(u(a,10)),e.sort()));else return W(a,b,c,1);if(-1==f[0])return 5;b=b.length;if(-1<e.indexOf(b))return 4;c=f[0];return c==b?0:c>b?2:f[f.length-1]<b?3:-1<f.indexOf(b,1)?0:5}\nfunction X(a,b,c){var d=Q(b);b=w(b,1);if(!(b in J))return 1;b=R(a,b,S(b));return W(a,d,b,c)}function eb(a,b){a=a.toString();if(0==a.length||\"0\"==a.charAt(0))return 0;for(var c,d=a.length,e=1;3>=e&&e<=d;++e)if(c=parseInt(a.substring(0,e),10),c in J)return b.g(a.substring(e)),c;return 0}\nfunction fb(a,b,c,d,e,f){if(0==b.length)return 0;b=new D(b);var g;null!=c&&(g=r(c,11));null==g&&(g=\"NonMatch\");var h=b.toString();if(0==h.length)g=20;else if(L.test(h))h=h.replace(L,\"\"),E(b),b.g(Va(h)),g=1;else{h=new RegExp(g);Wa(b);g=b.toString();if(0==g.search(h)){h=g.match(h)[0].length;var l=g.substring(h).match(Ia);l&&null!=l[1]&&0<l[1].length&&\"0\"==O(l[1],Ea)?g=!1:(E(b),b.g(g.substring(h)),g=!0)}else g=!1;g=g?5:20}e&&t(f,6,g);if(20!=g){if(2>=b.h.length)throw Error(\"Phone number too short after IDD\");\na=eb(b,d);if(0!=a)return t(f,1,a),a;throw Error(\"Invalid country calling code\");}if(null!=c&&(g=w(c,10),h=\"\"+g,l=b.toString(),0==l.lastIndexOf(h,0)&&(h=new D(l.substring(h.length)),l=r(c,1),l=new RegExp(w(l,2)),gb(h,c,null),h=h.toString(),!N(l,b.toString())&&N(l,h)||3==W(a,b.toString(),c,-1))))return d.g(h),e&&t(f,6,10),t(f,1,g),g;t(f,1,0);return 0}\nfunction gb(a,b,c){var d=a.toString(),e=d.length,f=r(b,15);if(0!=e&&null!=f&&0!=f.length){var g=new RegExp(\"^(?:\"+f+\")\");if(e=g.exec(d)){f=new RegExp(w(r(b,1),2));var h=N(f,d),l=e.length-1;b=r(b,16);if(null==b||0==b.length||null==e[l]||0==e[l].length){if(!h||N(f,d.substring(e[0].length)))null!=c&&0<l&&null!=e[l]&&c.g(e[1]),a.set(d.substring(e[0].length))}else if(d=d.replace(g,b),!h||N(f,d))null!=c&&0<l&&c.g(e[1]),a.set(d)}}}\nfunction Y(a,b,c){if(!P(c)&&0<b.length&&\"+\"!=b.charAt(0))throw Error(\"Invalid country calling code\");return hb(a,b,c,!0)}\nfunction hb(a,b,c,d){if(null==b)throw Error(\"The string supplied did not seem to be a phone number\");if(250<b.length)throw Error(\"The string supplied is too long to be a phone number\");var e=new D;var f=b.indexOf(\";phone-context=\");if(-1===f)f=null;else if(f+=15,f>=b.length)f=\"\";else{var g=b.indexOf(\";\",f);f=-1!==g?b.substring(f,g):b.substring(f)}var h=f;null==h?g=!0:0===h.length?g=!1:(g=Na.exec(h),h=Oa.exec(h),g=null!==g||null!==h);if(!g)throw Error(\"The string supplied did not seem to be a phone number\");\nnull!=f?(\"+\"===f.charAt(0)&&e.g(f),f=b.indexOf(\"tel:\"),e.g(b.substring(0<=f?f+4:0,b.indexOf(\";phone-context=\")))):(f=e.g,g=b??\"\",h=g.search(Ja),0<=h?(g=g.substring(h),g=g.replace(La,\"\"),h=g.search(Ka),0<=h&&(g=g.substring(0,h))):g=\"\",f.call(e,g));f=e.toString();g=f.indexOf(\";isub=\");0<g&&(E(e),e.g(f.substring(0,g)));if(!Ua(e.toString()))throw Error(\"The string supplied did not seem to be a phone number\");f=e.toString();if(!(P(c)||null!=f&&0<f.length&&L.test(f)))throw Error(\"Invalid country calling code\");\nf=new I;d&&t(f,5,b);a:{b=e.toString();g=b.search(Qa);if(0<=g&&Ua(b.substring(0,g))){h=b.match(Qa);for(var l=h.length,A=1;A<l;++A)if(null!=h[A]&&0<h[A].length){E(e);e.g(b.substring(0,g));b=h[A];break a}}b=\"\"}0<b.length&&t(f,3,b);g=T(a,c);b=new D;h=0;l=e.toString();try{h=fb(a,l,g,b,d,f)}catch(ca){if(\"Invalid country calling code\"==ca.message&&L.test(l)){if(l=l.replace(L,\"\"),h=fb(a,l,g,b,d,f),0==h)throw ca;}else throw ca;}0!=h?(e=S(h),e!=c&&(g=R(a,h,e))):(Wa(e),b.g(e.toString()),null!=c?(h=w(g,10),t(f,\n1,h)):d&&(delete f.h[6],f.g&&delete f.g[6]));if(2>b.h.length)throw Error(\"The string supplied is too short to be a phone number\");null!=g&&(c=new D,e=new D(b.toString()),gb(e,g,c),a=W(a,e.toString(),g,-1),2!=a&&4!=a&&5!=a&&(b=e,d&&0<c.toString().length&&t(f,7,c.toString())));d=b.toString();a=d.length;if(2>a)throw Error(\"The string supplied is too short to be a phone number\");if(17<a)throw Error(\"The string supplied is too long to be a phone number\");if(1<d.length&&\"0\"==d.charAt(0)){t(f,4,!0);for(a=\n1;a<d.length-1&&\"0\"==d.charAt(a);)a++;1!=a&&t(f,8,a)}t(f,2,parseInt(d,10));return f}function N(a,b){return(a=b.match(new RegExp(\"^(?:\"+(\"string\"==typeof a?a:a.source)+\")$\",\"i\")))&&a[0].length==b.length?!0:!1};function ib(a){this.fa=RegExp(\"\\u2008\");this.ja=\"\";this.v=new D;this.da=\"\";this.s=new D;this.ba=new D;this.u=!0;this.ea=this.ca=this.la=!1;this.ga=K.g();this.$=0;this.h=new D;this.ha=!1;this.o=\"\";this.g=new D;this.j=[];this.ka=a;this.l=jb(this,this.ka)}var kb=new H;t(kb,11,\"NA\");\nvar lb=RegExp(\"^[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]*\\\\$1[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]*(\\\\$\\\\d[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]*)*$\"),mb=/[- ]/;\nfunction jb(a,b){var c=a.ga;b=P(b)?db(c,b):0;a=T(a.ga,S(b));return null!=a?a:kb}function nb(a){for(var b=a.j.length,c=0;c<b;++c){var d=a.j[c],e=w(d,1);if(a.da==e)return!1;var f=a;var g=d,h=w(g,1);E(f.v);var l=f;g=w(g,2);var A=\"999999999999999\".match(h)[0];A.length<l.g.h.length?l=\"\":(l=A.replace(new RegExp(h,\"g\"),g),l=l.replace(RegExp(\"9\",\"g\"),\"\\u2008\"));0<l.length?(f.v.g(l),f=!0):f=!1;if(f)return a.da=e,a.ha=mb.test(r(d,4)),a.$=0,!0}return a.u=!1}\nfunction ob(a,b){for(var c=[],d=b.length-3,e=a.j.length,f=0;f<e;++f){var g=a.j[f];0==x(g,3)?c.push(a.j[f]):(g=r(g,3,Math.min(d,x(g,3)-1)),0==b.search(g)&&c.push(a.j[f]))}a.j=c}\nfunction pb(a,b){a.s.g(b);var c=b;Ia.test(c)||1==a.s.h.length&&Ha.test(c)?(\"+\"==b?(c=b,a.ba.g(b)):(c=Ea[b],a.ba.g(c),a.g.g(c)),b=c):(a.u=!1,a.la=!0);if(!a.u){if(!a.la)if(qb(a)){if(rb(a))return sb(a)}else if(0<a.o.length&&(b=a.g.toString(),E(a.g),a.g.g(a.o),a.g.g(b),b=a.h.toString(),c=b.lastIndexOf(a.o),E(a.h),a.h.g(b.substring(0,c))),a.o!=tb(a))return a.h.g(\" \"),sb(a);return a.s.toString()}switch(a.ba.h.length){case 0:case 1:case 2:return a.s.toString();case 3:if(qb(a))a.ea=!0;else return a.o=tb(a),\nub(a);default:if(a.ea)return rb(a)&&(a.ea=!1),a.h.toString()+a.g.toString();if(0<a.j.length){b=vb(a,b);c=wb(a);if(0<c.length)return c;ob(a,a.g.toString());return nb(a)?xb(a):a.u?Z(a,b):a.s.toString()}return ub(a)}}function sb(a){a.u=!0;a.ea=!1;a.j=[];a.$=0;E(a.v);a.da=\"\";return ub(a)}\nfunction wb(a){for(var b=a.g.toString(),c=a.j.length,d=0;d<c;++d){var e=a.j[d],f=w(e,1);if((new RegExp(\"^(?:\"+f+\")$\")).test(b)&&(a.ha=mb.test(r(e,4)),e=b.replace(new RegExp(f,\"g\"),r(e,2)),e=Z(a,e),O(e,Fa)==a.ba))return e}return\"\"}function Z(a,b){var c=a.h.h.length;return a.ha&&0<c&&\" \"!=a.h.toString().charAt(c-1)?a.h+\" \"+b:a.h+b}\nfunction ub(a){var b=a.g.toString();if(3<=b.length){for(var c=a.ca&&0==a.o.length&&0<x(a.l,20)?u(a.l,20):u(a.l,19),d=c.length,e=0;e<d;++e){var f=c[e];0<a.o.length&&Ya(w(f,4))&&!r(f,6)&&!q(f,5)||(0!=a.o.length||a.ca||Ya(w(f,4))||r(f,6))&&lb.test(w(f,2))&&a.j.push(f)}ob(a,b);b=wb(a);return 0<b.length?b:nb(a)?xb(a):a.s.toString()}return Z(a,b)}function xb(a){var b=a.g.toString(),c=b.length;if(0<c){for(var d=\"\",e=0;e<c;e++)d=vb(a,b.charAt(e));return a.u?Z(a,d):a.s.toString()}return a.h.toString()}\nfunction tb(a){var b=a.g.toString(),c=0;if(1!=r(a.l,10))var d=!1;else d=a.g.toString(),d=\"1\"==d.charAt(0)&&\"0\"!=d.charAt(1)&&\"1\"!=d.charAt(1);d?(c=1,a.h.g(\"1\").g(\" \"),a.ca=!0):q(a.l,15)&&(d=new RegExp(\"^(?:\"+r(a.l,15)+\")\"),d=b.match(d),null!=d&&null!=d[0]&&0<d[0].length&&(a.ca=!0,c=d[0].length,a.h.g(b.substring(0,c))));E(a.g);a.g.g(b.substring(c));return b.substring(0,c)}\nfunction qb(a){var b=a.ba.toString(),c=new RegExp(\"^(?:\\\\+|\"+r(a.l,11)+\")\");c=b.match(c);return null!=c&&null!=c[0]&&0<c[0].length?(a.ca=!0,c=c[0].length,E(a.g),a.g.g(b.substring(c)),E(a.h),a.h.g(b.substring(0,c)),\"+\"!=b.charAt(0)&&a.h.g(\" \"),!0):!1}function rb(a){if(0==a.g.h.length)return!1;var b=new D,c=eb(a.g,b);if(0==c)return!1;E(a.g);a.g.g(b.toString());b=S(c);\"001\"==b?a.l=T(a.ga,\"\"+c):b!=a.ka&&(a.l=jb(a,b));a.h.g(\"\"+c).g(\" \");a.o=\"\";return!0}\nfunction vb(a,b){var c=a.v.toString();if(0<=c.substring(a.$).search(a.fa)){var d=c.search(a.fa);b=c.replace(a.fa,b);E(a.v);a.v.g(b);a.$=d;return b.substring(0,a.$+1)}1==a.j.length&&(a.u=!1);a.da=\"\";return a.s.toString()};const yb=a=>{const b=[];a.includes(\"FIXED_LINE_OR_MOBILE\")?(a.includes(\"MOBILE\")||b.push(\"MOBILE\"),a.includes(\"FIXED_LINE\")||b.push(\"FIXED_LINE\")):(a.includes(\"MOBILE\")||a.includes(\"FIXED_LINE\"))&&b.push(\"FIXED_LINE_OR_MOBILE\");return a.concat(b)},zb={FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3,PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1};m(\"intlTelInputUtilsTemp\",{});\nm(\"intlTelInputUtilsTemp.formatNumberAsYouType\",(a,b)=>{try{const c=a.replace(/[^+0-9]/g,\"\"),d=new ib(b);b=\"\";for(let e=0;e<c.length;e++)d.ja=pb(d,c.charAt(e)),b=d.ja;return b}catch{return a}});m(\"intlTelInputUtilsTemp.formatNumber\",(a,b,c)=>{try{const e=K.g(),f=Y(e,a,b);var d=X(e,f,-1);return 0==d||4==d?e.format(f,\"undefined\"===typeof c?0:c):a}catch{return a}});\nm(\"intlTelInputUtilsTemp.getExampleNumber\",(a,b,c,d)=>{try{const l=K.g();a:{var e=l;if(P(a)){var f=U(T(e,a),c);try{if(q(f,6)){var g=r(f,6);var h=hb(e,g,a,!1);break a}}catch(A){}}h=null}return l.format(h,d?0:b?2:1)}catch{return\"\"}});m(\"intlTelInputUtilsTemp.getExtension\",(a,b)=>{try{return r(Y(K.g(),a,b),3)}catch{return\"\"}});m(\"intlTelInputUtilsTemp.getNumberType\",(a,b)=>{try{const c=K.g(),d=Y(c,a,b);return $a(c,d)}catch{return-99}});\nm(\"intlTelInputUtilsTemp.getValidationError\",(a,b)=>{if(!b)return 1;try{const c=K.g(),d=Y(c,a,b);return X(c,d,-1)}catch(c){return\"Invalid country calling code\"===c.message?1:3>=a.length||\"Phone number too short after IDD\"===c.message||\"The string supplied is too short to be a phone number\"===c.message?2:\"The string supplied is too long to be a phone number\"===c.message?3:-99}});\nm(\"intlTelInputUtilsTemp.isValidNumber\",(a,b,c)=>{try{const d=K.g(),e=Y(d,a,b),f=cb(d,e);if(c){const g=yb(c).map(h=>zb[h]);return f&&g.includes($a(d,e))}return f}catch{return!1}});m(\"intlTelInputUtilsTemp.isPossibleNumber\",(a,b,c)=>{try{const d=K.g(),e=Y(d,a,b);if(c){const f=yb(c);for(let g of f)if(0===X(d,e,zb[g]))return!0;return!1}return 0===X(d,e,-1)}catch{return!1}});m(\"intlTelInputUtilsTemp.getCoreNumber\",(a,b)=>{try{return r(Y(K.g(),a,b),2).toString()}catch{return\"\"}});\nm(\"intlTelInputUtilsTemp.numberFormat\",{E164:0,INTERNATIONAL:1,NATIONAL:2,RFC3966:3});m(\"intlTelInputUtilsTemp.numberType\",zb);m(\"intlTelInputUtilsTemp.validationError\",{IS_POSSIBLE:0,INVALID_COUNTRY_CODE:1,TOO_SHORT:2,TOO_LONG:3,IS_POSSIBLE_LOCAL_ONLY:4,INVALID_LENGTH:5});})();\nconst globalContext = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this;\nconst utils = globalContext.intlTelInputUtilsTemp;\ndelete globalContext.intlTelInputUtilsTemp;\nexport default utils;\n", "/*\nTurbo 7.1.0\nCopyright \u00A9 2021 Basecamp, LLC\n */\n(function () {\n    if (window.Reflect === undefined || 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 =\n        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;\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    else {\n        prototype = window.Event.prototype;\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    constructor() {\n        super();\n        this.loaded = Promise.resolve();\n        this.delegate = new FrameElement.delegateConstructor(this);\n    }\n    static get observedAttributes() {\n        return [\"disabled\", \"loading\", \"src\"];\n    }\n    connectedCallback() {\n        this.delegate.connect();\n    }\n    disconnectedCallback() {\n        this.delegate.disconnect();\n    }\n    reload() {\n        const { src } = this;\n        this.src = null;\n        this.src = src;\n    }\n    attributeChangedCallback(name) {\n        if (name == \"loading\") {\n            this.delegate.loadingStyleChanged();\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\": return FrameLoadingStyle.lazy;\n        default: 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))$/);\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\n        ? url.href.slice(0, -(anchor.length + 1))\n        : 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 dispatch(eventName, { target, cancelable, detail } = {}) {\n    const event = new CustomEvent(eventName, { cancelable, bubbles: true, detail });\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.apply(null, { length: 36 }).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    }).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 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}\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\": return FetchMethod.get;\n        case \"post\": return FetchMethod.post;\n        case \"put\": return FetchMethod.put;\n        case \"patch\": return FetchMethod.patch;\n        case \"delete\": 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        var _a, _b;\n        const { fetchOptions } = this;\n        (_b = (_a = this.delegate).prepareHeadersForRequest) === null || _b === void 0 ? void 0 : _b.call(_a, this.headers, 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                this.delegate.requestErrored(this, error);\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\", { cancelable: true, detail: { fetchResponse }, target: this.target });\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.isIdempotent ? 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 isIdempotent() {\n        return this.method == FetchMethod.get;\n    }\n    get abortSignal() {\n        return this.abortController.signal;\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}\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    constructor(html) {\n        this.templateElement = document.createElement(\"template\");\n        this.templateElement.innerHTML = html;\n    }\n    static wrap(message) {\n        if (typeof message == \"string\") {\n            return new this(message);\n        }\n        else {\n            return message;\n        }\n    }\n    get fragment() {\n        const fragment = document.createDocumentFragment();\n        for (const element of this.foreignElements) {\n            fragment.appendChild(document.importNode(element, true));\n        }\n        return fragment;\n    }\n    get foreignElements() {\n        return this.templateChildren.reduce((streamElements, child) => {\n            if (child.tagName.toLowerCase() == \"turbo-stream\") {\n                return [...streamElements, child];\n            }\n            else {\n                return streamElements;\n            }\n        }, []);\n    }\n    get templateChildren() {\n        return Array.from(this.templateElement.content.children);\n    }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\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: return FormEnctype.multipart;\n        case FormEnctype.plain: return FormEnctype.plain;\n        default: return FormEnctype.urlEncoded;\n    }\n}\nclass FormSubmission {\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    static confirmMethod(message, element) {\n        return confirm(message);\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        return ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formaction\")) || this.formElement.getAttribute(\"action\") || formElementAction || \"\";\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 isIdempotent() {\n        return this.fetchRequest.isIdempotent;\n    }\n    get stringFormData() {\n        return [...this.formData].reduce((entries, [name, value]) => {\n            return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n        }, []);\n    }\n    get confirmationMessage() {\n        return this.formElement.getAttribute(\"data-turbo-confirm\");\n    }\n    get needsConfirmation() {\n        return this.confirmationMessage !== null;\n    }\n    async start() {\n        const { initialized, requesting } = FormSubmissionState;\n        if (this.needsConfirmation) {\n            const answer = FormSubmission.confirmMethod(this.confirmationMessage, this.formElement);\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    prepareHeadersForRequest(headers, request) {\n        if (!request.isIdempotent) {\n            const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n            if (token) {\n                headers[\"X-CSRF-Token\"] = token;\n            }\n            headers[\"Accept\"] = [StreamMessage.contentType, headers[\"Accept\"]].join(\", \");\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        dispatch(\"turbo:submit-start\", { target: this.formElement, detail: { formSubmission: this } });\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        dispatch(\"turbo:submit-end\", { target: this.formElement, detail: Object.assign({ formSubmission: this }, this.result) });\n        this.delegate.formSubmissionFinished(this);\n    }\n    requestMustRedirect(request) {\n        return !request.isIdempotent && this.mustRedirect;\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 && value != null && formData.get(name) != value) {\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 getMetaContent(name) {\n    const element = document.querySelector(`meta[name=\"${name}\"]`);\n    return element && element.content;\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 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        return this.element.querySelector(\"[autofocus]\");\n    }\n    get permanentElements() {\n        return [...this.element.querySelectorAll(\"[id][data-turbo-permanent]\")];\n    }\n    getPermanentElementById(id) {\n        return this.element.querySelector(`#${id}[data-turbo-permanent]`);\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}\n\nclass FormInterceptor {\n    constructor(delegate, element) {\n        this.submitBubbled = ((event) => {\n            const form = event.target;\n            if (!event.defaultPrevented && form instanceof HTMLFormElement && form.closest(\"turbo-frame, html\") == this.element) {\n                const submitter = event.submitter || undefined;\n                const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.method;\n                if (method != \"dialog\" && this.delegate.shouldInterceptFormSubmission(form, submitter)) {\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n                    this.delegate.formSubmissionIntercepted(form, submitter);\n                }\n            }\n        });\n        this.delegate = delegate;\n        this.element = element;\n    }\n    start() {\n        this.element.addEventListener(\"submit\", this.submitBubbled);\n    }\n    stop() {\n        this.element.removeEventListener(\"submit\", this.submitBubbled);\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                this.prepareToRenderSnapshot(renderer);\n                const renderInterception = new Promise(resolve => this.resolveInterceptionPromise = resolve);\n                const immediateRender = this.delegate.allowsImmediateRender(snapshot, this.resolveInterceptionPromise);\n                if (!immediateRender)\n                    await renderInterception;\n                await this.renderSnapshot(renderer);\n                this.delegate.viewRenderedSnapshot(snapshot, isPreview);\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();\n        }\n    }\n    invalidate() {\n        this.delegate.viewInvalidated();\n    }\n    prepareToRenderSnapshot(renderer) {\n        this.markAsPreview(renderer.isPreview);\n        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    invalidate() {\n        this.element.innerHTML = \"\";\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)) {\n                    this.clickEvent.preventDefault();\n                    event.preventDefault();\n                    this.delegate.linkClickIntercepted(event.target, event.detail.url);\n                }\n            }\n            delete this.clickEvent;\n        });\n        this.willVisit = () => {\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\n            ? target\n            : target instanceof Node\n                ? target.parentElement\n                : null;\n        return element && element.closest(\"turbo-frame, html\") == this.element;\n    }\n}\n\nclass Bardo {\n    constructor(permanentElementMap) {\n        this.permanentElementMap = permanentElementMap;\n    }\n    static preservingPermanentElements(permanentElementMap, callback) {\n        const bardo = new this(permanentElementMap);\n        bardo.enter();\n        callback();\n        bardo.leave();\n    }\n    enter() {\n        for (const id in this.permanentElementMap) {\n            const [, newPermanentElement] = this.permanentElementMap[id];\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        }\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, isPreview, willRender = true) {\n        this.currentSnapshot = currentSnapshot;\n        this.newSnapshot = newSnapshot;\n        this.isPreview = isPreview;\n        this.willRender = willRender;\n        this.promise = new Promise((resolve, reject) => this.resolvingFunctions = { resolve, reject });\n    }\n    get shouldRender() {\n        return true;\n    }\n    prepareToRender() {\n        return;\n    }\n    finishRendering() {\n        if (this.resolvingFunctions) {\n            this.resolvingFunctions.resolve();\n            delete this.resolvingFunctions;\n        }\n    }\n    createScriptElement(element) {\n        if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n            return element;\n        }\n        else {\n            const createdScriptElement = document.createElement(\"script\");\n            if (this.cspNonce) {\n                createdScriptElement.nonce = this.cspNonce;\n            }\n            createdScriptElement.textContent = element.textContent;\n            createdScriptElement.async = false;\n            copyElementAttributes(createdScriptElement, element);\n            return createdScriptElement;\n        }\n    }\n    preservingPermanentElements(callback) {\n        Bardo.preservingPermanentElements(this.permanentElementMap, callback);\n    }\n    focusFirstAutofocusableElement() {\n        const element = this.connectedSnapshot.firstAutofocusableElement;\n        if (elementIsFocusable(element)) {\n            element.focus();\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    get cspNonce() {\n        var _a;\n        return (_a = document.head.querySelector('meta[name=\"csp-nonce\"]')) === null || _a === void 0 ? void 0 : _a.getAttribute(\"content\");\n    }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n    for (const { name, value } of [...sourceElement.attributes]) {\n        destinationElement.setAttribute(name, value);\n    }\n}\nfunction elementIsFocusable(element) {\n    return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\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        var _a;\n        const destinationRange = document.createRange();\n        destinationRange.selectNodeContents(this.currentElement);\n        destinationRange.deleteContents();\n        const frameElement = this.newElement;\n        const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n        if (sourceRange) {\n            sourceRange.selectNodeContents(frameElement);\n            this.currentElement.appendChild(sourceRange.extractContents());\n        }\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            if (element) {\n                element.scrollIntoView({ block });\n                return true;\n            }\n        }\n        return false;\n    }\n    activateScriptElements() {\n        for (const inertScriptElement of this.newScriptElements) {\n            const activatedScriptElement = this.createScriptElement(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}\n\nclass ProgressBar {\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    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: 9999;\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    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        return element;\n    }\n    createProgressElement() {\n        const element = document.createElement(\"div\");\n        element.className = \"turbo-progress-bar\";\n        return element;\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\n            ? element.getAttribute(\"content\")\n            : 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.tagName.toLowerCase();\n    return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n    const tagName = element.tagName.toLowerCase();\n    return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n    const tagName = element.tagName.toLowerCase();\n    return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n    const tagName = element.tagName.toLowerCase();\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    constructor(element, headSnapshot) {\n        super(element);\n        this.headSnapshot = headSnapshot;\n    }\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    clone() {\n        return new PageSnapshot(this.element.cloneNode(true), 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};\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.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, snapshotHTML, response, visitCachedSnapshot, willRender } = Object.assign(Object.assign({}, defaultOptions), options);\n        this.action = action;\n        this.historyChanged = historyChanged;\n        this.referrer = referrer;\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.scrolled = !willRender;\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.adapter.visitCompleted(this);\n            this.delegate.visitCompleted(this);\n            this.followRedirect();\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) {\n            const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n            const method = this.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                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);\n                    this.adapter.visitRendered(this);\n                    this.complete();\n                }\n                else {\n                    await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML));\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);\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            });\n            this.followedRedirect = true;\n        }\n    }\n    goToSamePageAnchor() {\n        if (this.isSamePage) {\n            this.render(async () => {\n                this.cacheSnapshot();\n                this.adapter.visitRendered(this);\n            });\n        }\n    }\n    requestStarted() {\n        this.startRequest();\n    }\n    requestPreventedHandlingResponse(request, response) {\n    }\n    async requestSucceededWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({ statusCode: SystemStatusCode.contentTypeMismatch, redirected });\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({ statusCode: SystemStatusCode.contentTypeMismatch, redirected });\n        }\n        else {\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    requestErrored(request, error) {\n        this.recordResponse({ statusCode: SystemStatusCode.networkFailure, redirected: false });\n    }\n    requestFinished() {\n        this.finishRequest();\n    }\n    performScroll() {\n        if (!this.scrolled) {\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\": return history.replaceState;\n            case \"advance\":\n            case \"restore\": 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().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        this.performScroll();\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, uuid(), options);\n    }\n    visitStarted(visit) {\n        visit.loadCachedSnapshot();\n        visit.issueRequest();\n        visit.changeHistory();\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            default:\n                return visit.loadResponse();\n        }\n    }\n    visitRequestFinished(visit) {\n        this.progressBar.setValue(1);\n        this.hideVisitProgressBar();\n    }\n    visitCompleted(visit) {\n    }\n    pageInvalidated() {\n        this.reload();\n    }\n    visitFailed(visit) {\n    }\n    visitRendered(visit) {\n    }\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() {\n        window.location.reload();\n    }\n    get navigator() {\n        return this.session.navigator;\n    }\n}\n\nclass CacheObserver {\n    constructor() {\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n        }\n    }\n    removeStaleElements() {\n        const staleElements = [...document.querySelectorAll('[data-turbo-cache=\"false\"]')];\n        for (const element of staleElements) {\n            element.remove();\n        }\n    }\n}\n\nclass FormSubmitObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.submitCaptured = () => {\n            removeEventListener(\"submit\", this.submitBubbled, false);\n            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                    const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n                    if (method != \"dialog\" && this.delegate.willSubmitForm(form, submitter)) {\n                        event.preventDefault();\n                        this.delegate.formSubmitted(form, submitter);\n                    }\n                }\n            }\n        });\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"submit\", this.submitCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"submit\", this.submitCaptured, true);\n            this.started = false;\n        }\n    }\n}\n\nclass FrameRedirector {\n    constructor(element) {\n        this.element = element;\n        this.linkInterceptor = new LinkInterceptor(this, element);\n        this.formInterceptor = new FormInterceptor(this, element);\n    }\n    start() {\n        this.linkInterceptor.start();\n        this.formInterceptor.start();\n    }\n    stop() {\n        this.linkInterceptor.stop();\n        this.formInterceptor.stop();\n    }\n    shouldInterceptLinkClick(element, url) {\n        return this.shouldRedirect(element);\n    }\n    linkClickIntercepted(element, url) {\n        const frame = this.findFrameElement(element);\n        if (frame) {\n            frame.delegate.linkClickIntercepted(element, url);\n        }\n    }\n    shouldInterceptFormSubmission(element, submitter) {\n        return this.shouldSubmit(element, submitter);\n    }\n    formSubmissionIntercepted(element, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        if (frame) {\n            frame.removeAttribute(\"reloadable\");\n            frame.delegate.formSubmissionIntercepted(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 frame = this.findFrameElement(element, submitter);\n        return frame ? frame != element.closest(\"turbo-frame\") : false;\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 LinkClickObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.clickCaptured = () => {\n            removeEventListener(\"click\", this.clickBubbled, false);\n            addEventListener(\"click\", this.clickBubbled, false);\n        };\n        this.clickBubbled = (event) => {\n            if (this.clickEventIsSignificant(event)) {\n                const target = (event.composedPath && event.composedPath()[0]) || event.target;\n                const link = this.findLinkFromClickTarget(target);\n                if (link) {\n                    const location = this.getLocationForLink(link);\n                    if (this.delegate.willFollowLinkToLocation(link, location)) {\n                        event.preventDefault();\n                        this.delegate.followedLinkToLocation(link, location);\n                    }\n                }\n            }\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"click\", this.clickCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            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        if (target instanceof Element) {\n            return target.closest(\"a[href]:not([target^=_]):not([download])\");\n        }\n    }\n    getLocationForLink(link) {\n        return expandURL(link.getAttribute(\"href\") || \"\");\n    }\n}\n\nfunction isAction(action) {\n    return action == \"advance\" || action == \"replace\" || action == \"restore\";\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                if (formSubmission.method != FetchMethod.get) {\n                    this.view.clearSnapshotCache();\n                }\n                const { statusCode, redirected } = fetchResponse;\n                const action = this.getActionForFormSubmission(formSubmission);\n                const visitOptions = { action, response: { statusCode, responseHTML, redirected } };\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);\n            }\n            else {\n                await this.view.renderPage(snapshot);\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(formSubmission) {\n        const { formElement, submitter } = formSubmission;\n        const action = getAttribute(\"data-turbo-action\", submitter, formElement);\n        return isAction(action) ? action : \"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 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(new StreamMessage(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    async render() {\n        this.replaceHeadAndBody();\n        this.activateScriptElements();\n    }\n    replaceHeadAndBody() {\n        const { documentElement, head, body } = document;\n        documentElement.replaceChild(this.newHead, head);\n        documentElement.replaceChild(this.newElement, body);\n    }\n    activateScriptElements() {\n        for (const replaceableElement of this.scriptElements) {\n            const parentNode = replaceableElement.parentNode;\n            if (parentNode) {\n                const element = this.createScriptElement(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    get shouldRender() {\n        return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n    }\n    prepareToRender() {\n        this.mergeHead();\n    }\n    async render() {\n        if (this.willRender) {\n            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    mergeHead() {\n        this.copyNewHeadStylesheetElements();\n        this.copyNewHeadScriptElements();\n        this.removeCurrentHeadProvisionalElements();\n        this.copyNewHeadProvisionalElements();\n    }\n    replaceBody() {\n        this.preservingPermanentElements(() => {\n            this.activateNewBody();\n            this.assignNewBody();\n        });\n    }\n    get trackedElementsAreIdentical() {\n        return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n    }\n    copyNewHeadStylesheetElements() {\n        for (const element of this.newHeadStylesheetElements) {\n            document.head.appendChild(element);\n        }\n    }\n    copyNewHeadScriptElements() {\n        for (const element of this.newHeadScriptElements) {\n            document.head.appendChild(this.createScriptElement(element));\n        }\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 = this.createScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    assignNewBody() {\n        if (document.body && this.newElement instanceof HTMLBodyElement) {\n            document.body.replaceWith(this.newElement);\n        }\n        else {\n            document.documentElement.appendChild(this.newElement);\n        }\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    }\n    renderPage(snapshot, isPreview = false, willRender = true) {\n        const renderer = new PageRenderer(this.snapshot, snapshot, isPreview, willRender);\n        return this.render(renderer);\n    }\n    renderError(snapshot) {\n        const renderer = new ErrorRenderer(this.snapshot, snapshot, false);\n        return this.render(renderer);\n    }\n    clearSnapshotCache() {\n        this.snapshotCache.clear();\n    }\n    async cacheSnapshot() {\n        if (this.shouldCacheSnapshot) {\n            this.delegate.viewWillCacheSnapshot();\n            const { snapshot, 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    get shouldCacheSnapshot() {\n        return this.snapshot.isCacheable;\n    }\n}\n\nclass Session {\n    constructor() {\n        this.navigator = new Navigator(this);\n        this.history = new History(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);\n        this.formSubmitObserver = new FormSubmitObserver(this);\n        this.scrollObserver = new ScrollObserver(this);\n        this.streamObserver = new StreamObserver(this);\n        this.frameRedirector = new FrameRedirector(document.documentElement);\n        this.drive = true;\n        this.enabled = true;\n        this.progressBarDelay = 500;\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.pageObserver.start();\n            this.cacheObserver.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.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.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        this.navigator.proposeVisit(expandURL(location), options);\n    }\n    connectStreamSource(source) {\n        this.streamObserver.connectStreamSource(source);\n    }\n    disconnectStreamSource(source) {\n        this.streamObserver.disconnectStreamSource(source);\n    }\n    renderStreamMessage(message) {\n        document.documentElement.appendChild(StreamMessage.wrap(message).fragment);\n    }\n    clearCache() {\n        this.view.clearSnapshotCache();\n    }\n    setProgressBarDelay(delay) {\n        this.progressBarDelay = delay;\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, { action: \"restore\", historyChanged: true });\n        }\n        else {\n            this.adapter.pageInvalidated();\n        }\n    }\n    scrollPositionChanged(position) {\n        this.history.updateRestorationData({ scrollPosition: position });\n    }\n    willFollowLinkToLocation(link, location) {\n        return this.elementDriveEnabled(link)\n            && locationIsVisitable(location, this.snapshot.rootLocation)\n            && this.applicationAllowsFollowingLinkToLocation(link, location);\n    }\n    followedLinkToLocation(link, location) {\n        const action = this.getActionForLink(link);\n        this.convertLinkWithMethodClickToFormSubmission(link) || this.visit(location.href, { action });\n    }\n    convertLinkWithMethodClickToFormSubmission(link) {\n        const linkMethod = link.getAttribute(\"data-turbo-method\");\n        if (linkMethod) {\n            const form = document.createElement(\"form\");\n            form.method = linkMethod;\n            form.action = link.getAttribute(\"href\") || \"undefined\";\n            form.hidden = true;\n            if (link.hasAttribute(\"data-turbo-confirm\")) {\n                form.setAttribute(\"data-turbo-confirm\", link.getAttribute(\"data-turbo-confirm\"));\n            }\n            const frame = this.getTargetFrameForLink(link);\n            if (frame) {\n                form.setAttribute(\"data-turbo-frame\", frame);\n                form.addEventListener(\"turbo:submit-start\", () => form.remove());\n            }\n            else {\n                form.addEventListener(\"submit\", () => form.remove());\n            }\n            document.body.appendChild(form);\n            return dispatch(\"submit\", { cancelable: true, target: form });\n        }\n        else {\n            return false;\n        }\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        extendURLWithDeprecatedProperties(visit.location);\n        if (!visit.silent) {\n            this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n        }\n    }\n    visitCompleted(visit) {\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.elementDriveEnabled(form)\n            && (!submitter || this.elementDriveEnabled(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 }, resume) {\n        const event = this.notifyApplicationBeforeRender(element, resume);\n        return !event.defaultPrevented;\n    }\n    viewRenderedSnapshot(snapshot, isPreview) {\n        this.view.lastRenderedLocation = this.history.location;\n        this.notifyApplicationAfterRender();\n    }\n    viewInvalidated() {\n        this.adapter.pageInvalidated();\n    }\n    frameLoaded(frame) {\n        this.notifyApplicationAfterFrameLoad(frame);\n    }\n    frameRendered(fetchResponse, frame) {\n        this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n    }\n    applicationAllowsFollowingLinkToLocation(link, location) {\n        const event = this.notifyApplicationAfterClickingLinkToLocation(link, location);\n        return !event.defaultPrevented;\n    }\n    applicationAllowsVisitingLocation(location) {\n        const event = this.notifyApplicationBeforeVisitingLocation(location);\n        return !event.defaultPrevented;\n    }\n    notifyApplicationAfterClickingLinkToLocation(link, location) {\n        return dispatch(\"turbo:click\", { target: link, detail: { url: location.href }, cancelable: true });\n    }\n    notifyApplicationBeforeVisitingLocation(location) {\n        return dispatch(\"turbo:before-visit\", { detail: { url: location.href }, cancelable: true });\n    }\n    notifyApplicationAfterVisitingLocation(location, action) {\n        markAsBusy(document.documentElement);\n        return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n    }\n    notifyApplicationBeforeCachingSnapshot() {\n        return dispatch(\"turbo:before-cache\");\n    }\n    notifyApplicationBeforeRender(newBody, resume) {\n        return dispatch(\"turbo:before-render\", { detail: { newBody, resume }, cancelable: true });\n    }\n    notifyApplicationAfterRender() {\n        return dispatch(\"turbo:render\");\n    }\n    notifyApplicationAfterPageLoad(timing = {}) {\n        clearBusyState(document.documentElement);\n        return dispatch(\"turbo:load\", { detail: { url: this.location.href, timing } });\n    }\n    notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n        dispatchEvent(new HashChangeEvent(\"hashchange\", { oldURL: oldURL.toString(), newURL: newURL.toString() }));\n    }\n    notifyApplicationAfterFrameLoad(frame) {\n        return dispatch(\"turbo:frame-load\", { target: frame });\n    }\n    notifyApplicationAfterFrameRender(fetchResponse, frame) {\n        return dispatch(\"turbo:frame-render\", { detail: { fetchResponse }, target: frame, cancelable: true });\n    }\n    elementDriveEnabled(element) {\n        const container = element === null || element === void 0 ? void 0 : element.closest(\"[data-turbo]\");\n        if (this.drive) {\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        const action = link.getAttribute(\"data-turbo-action\");\n        return isAction(action) ? action : \"advance\";\n    }\n    getTargetFrameForLink(link) {\n        const frame = link.getAttribute(\"data-turbo-frame\");\n        if (frame) {\n            return frame;\n        }\n        else {\n            const container = link.closest(\"turbo-frame\");\n            if (container) {\n                return container.id;\n            }\n        }\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\nconst session = new 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    session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n    session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n    FormSubmission.confirmMethod = confirmMethod;\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    navigator: navigator$1,\n    session: session,\n    PageRenderer: PageRenderer,\n    PageSnapshot: PageSnapshot,\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});\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.settingSourceURL = false;\n        this.element = element;\n        this.view = new FrameView(this, this.element);\n        this.appearanceObserver = new AppearanceObserver(this, this.element);\n        this.linkInterceptor = new LinkInterceptor(this, this.element);\n        this.formInterceptor = new FormInterceptor(this, this.element);\n    }\n    connect() {\n        if (!this.connected) {\n            this.connected = true;\n            this.reloadable = false;\n            if (this.loadingStyle == FrameLoadingStyle.lazy) {\n                this.appearanceObserver.start();\n            }\n            this.linkInterceptor.start();\n            this.formInterceptor.start();\n            this.sourceURLChanged();\n        }\n    }\n    disconnect() {\n        if (this.connected) {\n            this.connected = false;\n            this.appearanceObserver.stop();\n            this.linkInterceptor.stop();\n            this.formInterceptor.stop();\n        }\n    }\n    disabledChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.eager) {\n            this.loadSourceURL();\n        }\n    }\n    sourceURLChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n            this.loadSourceURL();\n        }\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.settingSourceURL && this.enabled && this.isActive && (this.reloadable || this.sourceURL != this.currentURL)) {\n            const previousURL = this.currentURL;\n            this.currentURL = this.sourceURL;\n            if (this.sourceURL) {\n                try {\n                    this.element.loaded = this.visit(expandURL(this.sourceURL));\n                    this.appearanceObserver.stop();\n                    await this.element.loaded;\n                    this.hasBeenLoaded = true;\n                }\n                catch (error) {\n                    this.currentURL = previousURL;\n                    throw error;\n                }\n            }\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 { body } = parseHTMLDocument(html);\n                const snapshot = new Snapshot(await this.extractForeignFrameElement(body));\n                const renderer = new FrameRenderer(this.view.snapshot, snapshot, false, false);\n                if (this.view.renderPromise)\n                    await this.view.renderPromise;\n                await this.view.render(renderer);\n                session.frameRendered(fetchResponse, this.element);\n                session.frameLoaded(this.element);\n                this.fetchResponseLoaded(fetchResponse);\n            }\n        }\n        catch (error) {\n            console.error(error);\n            this.view.invalidate();\n        }\n        finally {\n            this.fetchResponseLoaded = () => { };\n        }\n    }\n    elementAppearedInViewport(element) {\n        this.loadSourceURL();\n    }\n    shouldInterceptLinkClick(element, url) {\n        if (element.hasAttribute(\"data-turbo-method\")) {\n            return false;\n        }\n        else {\n            return this.shouldInterceptNavigation(element);\n        }\n    }\n    linkClickIntercepted(element, url) {\n        this.reloadable = true;\n        this.navigateFrame(element, url);\n    }\n    shouldInterceptFormSubmission(element, submitter) {\n        return this.shouldInterceptNavigation(element, submitter);\n    }\n    formSubmissionIntercepted(element, submitter) {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n        }\n        this.reloadable = false;\n        this.formSubmission = new FormSubmission(this, element, submitter);\n        const { fetchRequest } = this.formSubmission;\n        this.prepareHeadersForRequest(fetchRequest.headers, fetchRequest);\n        this.formSubmission.start();\n    }\n    prepareHeadersForRequest(headers, request) {\n        headers[\"Turbo-Frame\"] = this.id;\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    requestFailedWithResponse(request, response) {\n        console.error(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        this.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n        frame.delegate.loadResponse(response);\n    }\n    formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        this.element.delegate.loadResponse(fetchResponse);\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished({ formElement }) {\n        clearBusyState(formElement, this.findFrameElement(formElement));\n    }\n    allowsImmediateRender(snapshot, resume) {\n        return true;\n    }\n    viewRenderedSnapshot(snapshot, isPreview) {\n    }\n    viewInvalidated() {\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        this.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n        frame.setAttribute(\"reloadable\", \"\");\n        frame.src = url;\n    }\n    proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n        const action = getAttribute(\"data-turbo-action\", submitter, element, frame);\n        if (isAction(action)) {\n            const { visitCachedSnapshot } = new SnapshotSubstitution(frame);\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                    session.visit(frame.src, { action, response, visitCachedSnapshot, willRender: false });\n                }\n            };\n        }\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            if (element = activateElement(container.querySelector(`turbo-frame#${id}`), this.currentURL)) {\n                return element;\n            }\n            if (element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.currentURL)) {\n                await element.loaded;\n                return await this.extractForeignFrameElement(element);\n            }\n            console.error(`Response has no matching <turbo-frame id=\"${id}\"> element`);\n        }\n        catch (error) {\n            console.error(error);\n        }\n        return new FrameElement();\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.elementDriveEnabled(element)) {\n            return false;\n        }\n        if (submitter && !session.elementDriveEnabled(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    get reloadable() {\n        const frame = this.findFrameElement(this.element);\n        return frame.hasAttribute(\"reloadable\");\n    }\n    set reloadable(value) {\n        const frame = this.findFrameElement(this.element);\n        if (value) {\n            frame.setAttribute(\"reloadable\", \"\");\n        }\n        else {\n            frame.removeAttribute(\"reloadable\");\n        }\n    }\n    set sourceURL(sourceURL) {\n        this.settingSourceURL = true;\n        this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n        this.currentURL = this.element.src;\n        this.settingSourceURL = false;\n    }\n    get loadingStyle() {\n        return this.element.loading;\n    }\n    get isLoading() {\n        return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\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}\nclass SnapshotSubstitution {\n    constructor(element) {\n        this.visitCachedSnapshot = ({ element }) => {\n            var _a;\n            const { id, clone } = this;\n            (_a = element.querySelector(\"#\" + id)) === null || _a === void 0 ? void 0 : _a.replaceWith(clone);\n        };\n        this.clone = element.cloneNode(true);\n        this.id = element.id;\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\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(e => {\n            e.innerHTML = \"\";\n            e.append(this.templateContent);\n        });\n    }\n};\n\nclass StreamElement extends HTMLElement {\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            if (this.dispatchEvent(this.beforeRenderEvent)) {\n                await nextAnimationFrame();\n                this.performAction();\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 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\", { bubbles: true, cancelable: true });\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\nFrameElement.delegateConstructor = FrameController;\ncustomElements.define(\"turbo-frame\", FrameElement);\ncustomElements.define(\"turbo-stream\", StreamElement);\n\n(() => {\n    let element = document.currentScript;\n    if (!element)\n        return;\n    if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n        return;\n    while (element = element.parentElement) {\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    }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { PageRenderer, PageSnapshot, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, 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, { received: this.dispatchMessageEvent.bind(this) })\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  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\ncustomElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n", "export function overrideMethodWithFormmethod({ detail: { formSubmission: { fetchRequest, submitter } } }) {\n  if (submitter && submitter.formMethod && fetchRequest.body.has(\"_method\")) {\n    fetchRequest.body.set(\"_method\", submitter.formMethod)\n  }\n}\n", "import \"./cable_stream_source_element\"\nimport { overrideMethodWithFormmethod } from \"./form_submissions\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\naddEventListener(\"turbo:submit-start\", overrideMethodWithFormmethod)\n", "/*\nStimulus 3.0.1\nCopyright \u00A9 2021 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    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())\n            .reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n    }\n    bindingConnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n    }\n    bindingDisconnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n    }\n    handleError(error, message, detail = {}) {\n        this.application.handleError(error, `Error ${message}`, detail);\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).sort().forEach(key => {\n            parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n        });\n        return parts.join(\":\");\n    }\n}\n\nconst descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n    const source = descriptorString.trim();\n    const matches = source.match(descriptorPattern) || [];\n    return {\n        eventTarget: parseEventTarget(matches[4]),\n        eventName: matches[2],\n        eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n        identifier: matches[5],\n        methodName: matches[7]\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.split(\":\").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 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) {\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    }\n    static forToken(token) {\n        return new this(token.element, token.index, parseActionDescriptorString(token.content));\n    }\n    toString() {\n        const eventNameSuffix = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n        return `${this.eventName}${eventNameSuffix}->${this.identifier}#${this.methodName}`;\n    }\n    get params() {\n        if (this.eventTarget instanceof Element) {\n            return this.getParamsFromEventTargetAttributes(this.eventTarget);\n        }\n        else {\n            return {};\n        }\n    }\n    getParamsFromEventTargetAttributes(eventTarget) {\n        const params = {};\n        const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`);\n        const attributes = Array.from(eventTarget.attributes);\n        attributes.forEach(({ name, value }) => {\n            const match = name.match(pattern);\n            const key = match && match[1];\n            if (key) {\n                Object.assign(params, { [camelize(key)]: typecast(value) });\n            }\n        });\n        return params;\n    }\n    get eventTargetName() {\n        return stringifyEventTarget(this.eventTarget);\n    }\n}\nconst defaultEventNames = {\n    \"a\": e => \"click\",\n    \"button\": e => \"click\",\n    \"form\": e => \"submit\",\n    \"details\": e => \"toggle\",\n    \"input\": e => e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\",\n    \"select\": e => \"change\",\n    \"textarea\": e => \"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)) {\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    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 (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\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\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 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)\n            .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.trim().split(/\\s+/).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));\n        this.bindingsByAction.clear();\n    }\n    parseValueForToken(token) {\n        const action = Action.forToken(token);\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        this.invokeChangedCallbacksForDefaultValues();\n    }\n    start() {\n        this.stringMapObserver.start();\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            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    }\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\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        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        try {\n            this.controller.connect();\n            this.logDebugActivity(\"connect\");\n        }\n        catch (error) {\n            this.handleError(error, \"connecting controller\");\n        }\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.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    invokeControllerMethod(methodName, ...args) {\n        const controller = this.controller;\n        if (typeof controller[methodName] == \"function\") {\n            controller[methodName](...args);\n        }\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\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) => [\n            ...Object.getOwnPropertyNames(object),\n            ...Object.getOwnPropertySymbols(object)\n        ];\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 () { this.a.call(this); };\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\n            || this.findTarget(targetName)\n            || 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 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    }\n    findElement(selector) {\n        return this.element.matches(selector)\n            ? this.element\n            : 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}\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    }\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};\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    }\n    static start(element, schema) {\n        const application = new Application(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        if (controllerConstructor.shouldLoad) {\n            this.load({ identifier, controllerConstructor });\n        }\n    }\n    load(head, ...rest) {\n        const definitions = Array.isArray(head) ? head : [head, ...rest];\n        definitions.forEach(definition => this.router.loadDefinition(definition));\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 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);\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) {\n    const definition = parseValueDefinitionPair(valueDefinitionPair);\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]) {\n    return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\nfunction parseValueTypeConstant(constant) {\n    switch (constant) {\n        case Array: return \"array\";\n        case Boolean: return \"boolean\";\n        case Number: return \"number\";\n        case Object: return \"object\";\n        case String: return \"string\";\n    }\n}\nfunction parseValueTypeDefault(defaultValue) {\n    switch (typeof defaultValue) {\n        case \"boolean\": return \"boolean\";\n        case \"number\": return \"number\";\n        case \"string\": 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(typeObject) {\n    const typeFromObject = parseValueTypeConstant(typeObject.type);\n    if (typeFromObject) {\n        const defaultValueType = parseValueTypeDefault(typeObject.default);\n        if (typeFromObject !== defaultValueType) {\n            throw new Error(`Type \"${typeFromObject}\" must match the type of the default value. Given default value: \"${typeObject.default}\" as \"${defaultValueType}\"`);\n        }\n        return typeFromObject;\n    }\n}\nfunction parseValueTypeDefinition(typeDefinition) {\n    const typeFromObject = parseValueTypeObject(typeDefinition);\n    const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n    const typeFromConstant = parseValueTypeConstant(typeDefinition);\n    const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n    if (type)\n        return type;\n    throw new Error(`Unknown value type \"${typeDefinition}\"`);\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(token, typeDefinition) {\n    const key = `${dasherize(token)}-value`;\n    const type = parseValueTypeDefinition(typeDefinition);\n    return {\n        type,\n        key,\n        name: camelize(key),\n        get defaultValue() { return defaultValueForDefinition(typeDefinition); },\n        get hasCustomDefaultValue() { return parseValueTypeDefault(typeDefinition) !== undefined; },\n        reader: readers[type],\n        writer: writers[type] || writers.default\n    };\n}\nconst defaultValuesByType = {\n    get array() { return []; },\n    boolean: false,\n    number: 0,\n    get object() { return {}; },\n    string: \"\"\n};\nconst readers = {\n    array(value) {\n        const array = JSON.parse(value);\n        if (!Array.isArray(array)) {\n            throw new TypeError(\"Expected array\");\n        }\n        return array;\n    },\n    boolean(value) {\n        return !(value == \"0\" || value == \"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 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    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 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 = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, 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\", \"button\"]\n\n  connect() {\n    // Unfold only the first content\n    this.contentTargets.forEach((content, index) => {\n      if (index !== 0) {\n        content.classList.add(\"hidden\")\n      }\n    })\n\n    this.buttonTargets.forEach((button, index) => {\n      button.setAttribute('aria-expanded', index === 0 ? 'true' : 'false')\n      this.iconTargets[index].classList.toggle('rotate-180', index === 0)\n    })\n  }\n\n  toggle(event) {\n    const index = parseInt(event.currentTarget.dataset.index)\n    this.contentTargets[index].classList.toggle(\"hidden\")\n    this.iconTargets[index].classList.toggle(\"rotate-180\")\n\n    const button = event.currentTarget\n    const expanded = button.getAttribute(\"aria-expanded\") === \"true\"\n    button.setAttribute(\"aria-expanded\", !expanded)\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['collapseContent', 'toggleCollapseButton'];\n\n  static values = {\n    showText: String,\n    hideText: String,\n  };\n\n  toggleCollapse(event) {\n    this.collapseContentTarget.classList.toggle('collapse-show');\n    if (this.collapseContentTarget.classList.contains('collapse-show')) {\n      this.toggleCollapseButtonTarget.innerHTML = this.hideTextValue;\n    } else {\n      this.toggleCollapseButtonTarget.innerHTML = this.showTextValue;\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['copyText'];\n  static values = { copiedText: String, initialText: String };\n\n  copyTextValue(event) {\n    event.preventDefault();\n\n    const targetValue = event.currentTarget.dataset.targetValue;\n\n    navigator.clipboard.writeText(targetValue);\n\n    this.copyTextTarget.innerText = this.copiedTextValue;\n  }\n\n  resetText(event) {\n    this.copyTextTarget.innerText = this.initialTextValue;\n  }\n}\n", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n// We're using a generic because languages have different plural rules.\n\n// eslint-disable-next-line no-use-before-define\n\nfunction insertReplacement(source, rx, replacement) {\n  const newParts = [];\n  source.forEach(chunk => {\n    // When the source contains multiple placeholders for interpolation,\n    // we should ignore chunks that are not strings, because those\n    // can be JSX objects and will be otherwise incorrectly turned into strings.\n    // Without this condition we\u2019d get this: [object Object] hello [object Object] my <button>\n    if (typeof chunk !== 'string') {\n      return newParts.push(chunk);\n    }\n    return rx[Symbol.split](chunk).forEach((raw, i, list) => {\n      if (raw !== '') {\n        newParts.push(raw);\n      }\n\n      // Interlace with the `replacement` value\n      if (i < list.length - 1) {\n        newParts.push(replacement);\n      }\n    });\n  });\n  return newParts;\n}\n\n/**\n * Takes a string with placeholder variables like `%{smart_count} file selected`\n * and replaces it with values from options `{smart_count: 5}`\n *\n * @license https://github.com/airbnb/polyglot.js/blob/master/LICENSE\n * taken from https://github.com/airbnb/polyglot.js/blob/master/lib/polyglot.js#L299\n *\n * @param phrase that needs interpolation, with placeholders\n * @param options with values that will be used to replace placeholders\n */\nfunction interpolate(phrase, options) {\n  const dollarRegex = /\\$/g;\n  const dollarBillsYall = '$$$$';\n  let interpolated = [phrase];\n  if (options == null) return interpolated;\n  for (const arg of Object.keys(options)) {\n    if (arg !== '_') {\n      // Ensure replacement value is escaped to prevent special $-prefixed\n      // regex replace tokens. the \"$$$$\" is needed because each \"$\" needs to\n      // be escaped with \"$\" itself, and we need two in the resulting output.\n      let replacement = options[arg];\n      if (typeof replacement === 'string') {\n        replacement = dollarRegex[Symbol.replace](replacement, dollarBillsYall);\n      }\n      // We create a new `RegExp` each time instead of using a more-efficient\n      // string replace so that the same argument can be replaced multiple times\n      // in the same phrase.\n      interpolated = insertReplacement(interpolated, new RegExp(`%\\\\{${arg}\\\\}`, 'g'), replacement);\n    }\n  }\n  return interpolated;\n}\nconst defaultOnMissingKey = key => {\n  throw new Error(`missing string: ${key}`);\n};\n\n/**\n * Translates strings with interpolation & pluralization support.\n * Extensible with custom dictionaries and pluralization functions.\n *\n * Borrows heavily from and inspired by Polyglot https://github.com/airbnb/polyglot.js,\n * basically a stripped-down version of it. Differences: pluralization functions are not hardcoded\n * and can be easily added among with dictionaries, nested objects are used for pluralization\n * as opposed to `||||` delimeter\n *\n * Usage example: `translator.translate('files_chosen', {smart_count: 3})`\n */\nvar _onMissingKey = /*#__PURE__*/_classPrivateFieldLooseKey(\"onMissingKey\");\nvar _apply = /*#__PURE__*/_classPrivateFieldLooseKey(\"apply\");\nexport default class Translator {\n  constructor(locales, _temp) {\n    let {\n      onMissingKey = defaultOnMissingKey\n    } = _temp === void 0 ? {} : _temp;\n    Object.defineProperty(this, _apply, {\n      value: _apply2\n    });\n    Object.defineProperty(this, _onMissingKey, {\n      writable: true,\n      value: void 0\n    });\n    this.locale = {\n      strings: {},\n      pluralize(n) {\n        if (n === 1) {\n          return 0;\n        }\n        return 1;\n      }\n    };\n    if (Array.isArray(locales)) {\n      locales.forEach(_classPrivateFieldLooseBase(this, _apply)[_apply], this);\n    } else {\n      _classPrivateFieldLooseBase(this, _apply)[_apply](locales);\n    }\n    _classPrivateFieldLooseBase(this, _onMissingKey)[_onMissingKey] = onMissingKey;\n  }\n  /**\n   * Public translate method\n   *\n   * @param key\n   * @param options with values that will be used later to replace placeholders in string\n   * @returns string translated (and interpolated)\n   */\n  translate(key, options) {\n    return this.translateArray(key, options).join('');\n  }\n\n  /**\n   * Get a translation and return the translated and interpolated parts as an array.\n   *\n   * @returns The translated and interpolated parts, in order.\n   */\n  translateArray(key, options) {\n    let string = this.locale.strings[key];\n    if (string == null) {\n      _classPrivateFieldLooseBase(this, _onMissingKey)[_onMissingKey](key);\n      string = key;\n    }\n    const hasPluralForms = typeof string === 'object';\n    if (hasPluralForms) {\n      if (options && typeof options.smart_count !== 'undefined') {\n        const plural = this.locale.pluralize(options.smart_count);\n        return interpolate(string[plural], options);\n      }\n      throw new Error('Attempted to use a string with plural forms, but no value was given for %{smart_count}');\n    }\n    if (typeof string !== 'string') {\n      throw new Error(`string was not a string`);\n    }\n    return interpolate(string, options);\n  }\n}\nfunction _apply2(locale) {\n  if (!(locale != null && locale.strings)) {\n    return;\n  }\n  const prevLocale = this.locale;\n  Object.assign(this.locale, {\n    strings: {\n      ...prevLocale.strings,\n      ...locale.strings\n    },\n    pluralize: locale.pluralize || prevLocale.pluralize\n  });\n}", "let _Symbol$for, _Symbol$for2;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n/* eslint-disable max-classes-per-file */\n/* global AggregateError */\n\nimport Translator from '@uppy/utils/lib/Translator';\nimport ee from 'namespace-emitter';\nimport { nanoid } from 'nanoid/non-secure';\nimport throttle from 'lodash/throttle.js';\nimport DefaultStore from '@uppy/store-default';\nimport getFileType from '@uppy/utils/lib/getFileType';\nimport getFileNameAndExtension from '@uppy/utils/lib/getFileNameAndExtension';\nimport { getSafeFileId } from '@uppy/utils/lib/generateFileID';\nimport supportsUploadProgress from './supportsUploadProgress.js';\nimport getFileName from './getFileName.js';\nimport { justErrorsLogger, debugLogger } from './loggers.js';\nimport { Restricter, defaultOptions as defaultRestrictionOptions, RestrictionError } from './Restricter.js';\nconst packageJson = {\n  \"version\": \"3.8.0\"\n};\nimport locale from './locale.js';\nconst getDefaultUploadState = () => ({\n  totalProgress: 0,\n  allowNewUpload: true,\n  error: null,\n  recoveredState: null\n});\n\n/**\n * Uppy Core module.\n * Manages plugins, state updates, acts as an event bus,\n * adds/removes files and metadata.\n */\nvar _plugins = /*#__PURE__*/_classPrivateFieldLooseKey(\"plugins\");\nvar _restricter = /*#__PURE__*/_classPrivateFieldLooseKey(\"restricter\");\nvar _storeUnsubscribe = /*#__PURE__*/_classPrivateFieldLooseKey(\"storeUnsubscribe\");\nvar _emitter = /*#__PURE__*/_classPrivateFieldLooseKey(\"emitter\");\nvar _preProcessors = /*#__PURE__*/_classPrivateFieldLooseKey(\"preProcessors\");\nvar _uploaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploaders\");\nvar _postProcessors = /*#__PURE__*/_classPrivateFieldLooseKey(\"postProcessors\");\nvar _informAndEmit = /*#__PURE__*/_classPrivateFieldLooseKey(\"informAndEmit\");\nvar _checkRequiredMetaFieldsOnFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkRequiredMetaFieldsOnFile\");\nvar _checkRequiredMetaFields = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkRequiredMetaFields\");\nvar _assertNewUploadAllowed = /*#__PURE__*/_classPrivateFieldLooseKey(\"assertNewUploadAllowed\");\nvar _transformFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"transformFile\");\nvar _startIfAutoProceed = /*#__PURE__*/_classPrivateFieldLooseKey(\"startIfAutoProceed\");\nvar _checkAndUpdateFileState = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkAndUpdateFileState\");\nvar _addListeners = /*#__PURE__*/_classPrivateFieldLooseKey(\"addListeners\");\nvar _updateOnlineStatus = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateOnlineStatus\");\nvar _requestClientById = /*#__PURE__*/_classPrivateFieldLooseKey(\"requestClientById\");\nvar _createUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createUpload\");\nvar _getUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUpload\");\nvar _removeUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"removeUpload\");\nvar _runUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"runUpload\");\n_Symbol$for = Symbol.for('uppy test: getPlugins');\n_Symbol$for2 = Symbol.for('uppy test: createUpload');\nclass Uppy {\n  /**\n   * Instantiate Uppy\n   *\n   * @param {object} opts \u2014 Uppy options\n   */\n  constructor(_opts) {\n    /**\n     * Run an upload. This picks up where it left off in case the upload is being restored.\n     *\n     * @private\n     */\n    Object.defineProperty(this, _runUpload, {\n      value: _runUpload2\n    });\n    /**\n     * Remove an upload, eg. if it has been canceled or completed.\n     *\n     * @param {string} uploadID The ID of the upload.\n     */\n    Object.defineProperty(this, _removeUpload, {\n      value: _removeUpload2\n    });\n    Object.defineProperty(this, _getUpload, {\n      value: _getUpload2\n    });\n    /**\n     * Create an upload for a bunch of files.\n     *\n     * @param {Array<string>} fileIDs File IDs to include in this upload.\n     * @returns {string} ID of this upload.\n     */\n    Object.defineProperty(this, _createUpload, {\n      value: _createUpload2\n    });\n    /**\n     * Registers listeners for all global actions, like:\n     * `error`, `file-removed`, `upload-progress`\n     */\n    Object.defineProperty(this, _addListeners, {\n      value: _addListeners2\n    });\n    Object.defineProperty(this, _checkAndUpdateFileState, {\n      value: _checkAndUpdateFileState2\n    });\n    // Schedule an upload if `autoProceed` is enabled.\n    Object.defineProperty(this, _startIfAutoProceed, {\n      value: _startIfAutoProceed2\n    });\n    /**\n     * Create a file state object based on user-provided `addFile()` options.\n     */\n    Object.defineProperty(this, _transformFile, {\n      value: _transformFile2\n    });\n    Object.defineProperty(this, _assertNewUploadAllowed, {\n      value: _assertNewUploadAllowed2\n    });\n    Object.defineProperty(this, _checkRequiredMetaFields, {\n      value: _checkRequiredMetaFields2\n    });\n    Object.defineProperty(this, _checkRequiredMetaFieldsOnFile, {\n      value: _checkRequiredMetaFieldsOnFile2\n    });\n    /*\n    * @constructs\n    * @param { Error[] } errors\n    * @param { undefined } file\n    */\n    /*\n    * @constructs\n    * @param { RestrictionError } error\n    */\n    Object.defineProperty(this, _informAndEmit, {\n      value: _informAndEmit2\n    });\n    /** @type {Record<string, BasePlugin[]>} */\n    Object.defineProperty(this, _plugins, {\n      writable: true,\n      value: Object.create(null)\n    });\n    Object.defineProperty(this, _restricter, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _storeUnsubscribe, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _emitter, {\n      writable: true,\n      value: ee()\n    });\n    Object.defineProperty(this, _preProcessors, {\n      writable: true,\n      value: new Set()\n    });\n    Object.defineProperty(this, _uploaders, {\n      writable: true,\n      value: new Set()\n    });\n    Object.defineProperty(this, _postProcessors, {\n      writable: true,\n      value: new Set()\n    });\n    // ___Why throttle at 500ms?\n    //    - We must throttle at >250ms for superfocus in Dashboard to work well\n    //    (because animation takes 0.25s, and we want to wait for all animations to be over before refocusing).\n    //    [Practical Check]: if thottle is at 100ms, then if you are uploading a file,\n    //    and click 'ADD MORE FILES', - focus won't activate in Firefox.\n    //    - We must throttle at around >500ms to avoid performance lags.\n    //    [Practical Check] Firefox, try to upload a big file for a prolonged period of time. Laptop will start to heat up.\n    this.calculateProgress = throttle((file, data) => {\n      const fileInState = this.getFile(file == null ? void 0 : file.id);\n      if (file == null || !fileInState) {\n        this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n        return;\n      }\n      if (fileInState.progress.percentage === 100) {\n        this.log(`Not setting progress for a file that has been already uploaded: ${file.id}`);\n        return;\n      }\n\n      // bytesTotal may be null or zero; in that case we can't divide by it\n      const canHavePercentage = Number.isFinite(data.bytesTotal) && data.bytesTotal > 0;\n      this.setFileState(file.id, {\n        progress: {\n          ...fileInState.progress,\n          bytesUploaded: data.bytesUploaded,\n          bytesTotal: data.bytesTotal,\n          percentage: canHavePercentage ? Math.round(data.bytesUploaded / data.bytesTotal * 100) : 0\n        }\n      });\n      this.calculateTotalProgress();\n    }, 500, {\n      leading: true,\n      trailing: true\n    });\n    Object.defineProperty(this, _updateOnlineStatus, {\n      writable: true,\n      value: this.updateOnlineStatus.bind(this)\n    });\n    // We need to store request clients by a unique ID, so we can share RequestClient instances across files\n    // this allows us to do rate limiting and synchronous operations like refreshing provider tokens\n    // example: refreshing tokens: if each file has their own requestclient,\n    // we don't have any way to synchronize all requests in order to\n    // - block all requests\n    // - refresh the token\n    // - unblock all requests and allow them to run with a the new access token\n    // back when we had a requestclient per file, once an access token expired,\n    // all 6 files would go ahead and refresh the token at the same time\n    // (calling /refresh-token up to 6 times), which will probably fail for some providers\n    Object.defineProperty(this, _requestClientById, {\n      writable: true,\n      value: new Map()\n    });\n    this.defaultLocale = locale;\n    const defaultOptions = {\n      id: 'uppy',\n      autoProceed: false,\n      allowMultipleUploadBatches: true,\n      debug: false,\n      restrictions: defaultRestrictionOptions,\n      meta: {},\n      onBeforeFileAdded: (file, files) => !Object.hasOwn(files, file.id),\n      onBeforeUpload: files => files,\n      store: new DefaultStore(),\n      logger: justErrorsLogger,\n      infoTimeout: 5000\n    };\n\n    // Merge default options with the ones set by user,\n    // making sure to merge restrictions too\n    this.opts = {\n      ...defaultOptions,\n      ..._opts,\n      restrictions: {\n        ...defaultOptions.restrictions,\n        ...(_opts && _opts.restrictions)\n      }\n    };\n\n    // Support debug: true for backwards-compatability, unless logger is set in opts\n    // opts instead of this.opts to avoid comparing objects \u2014 we set logger: justErrorsLogger in defaultOptions\n    if (_opts && _opts.logger && _opts.debug) {\n      this.log('You are using a custom `logger`, but also set `debug: true`, which uses built-in logger to output logs to console. Ignoring `debug: true` and using your custom `logger`.', 'warning');\n    } else if (_opts && _opts.debug) {\n      this.opts.logger = debugLogger;\n    }\n    this.log(`Using Core v${this.constructor.VERSION}`);\n    this.i18nInit();\n    this.store = this.opts.store;\n    this.setState({\n      ...getDefaultUploadState(),\n      plugins: {},\n      files: {},\n      currentUploads: {},\n      capabilities: {\n        uploadProgress: supportsUploadProgress(),\n        individualCancellation: true,\n        resumableUploads: false\n      },\n      meta: {\n        ...this.opts.meta\n      },\n      info: []\n    });\n    _classPrivateFieldLooseBase(this, _restricter)[_restricter] = new Restricter(() => this.opts, this.i18n);\n    _classPrivateFieldLooseBase(this, _storeUnsubscribe)[_storeUnsubscribe] = this.store.subscribe((prevState, nextState, patch) => {\n      this.emit('state-update', prevState, nextState, patch);\n      this.updateAll(nextState);\n    });\n\n    // Exposing uppy object on window for debugging and testing\n    if (this.opts.debug && typeof window !== 'undefined') {\n      window[this.opts.id] = this;\n    }\n    _classPrivateFieldLooseBase(this, _addListeners)[_addListeners]();\n  }\n  emit(event) {\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    _classPrivateFieldLooseBase(this, _emitter)[_emitter].emit(event, ...args);\n  }\n  on(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(event, callback);\n    return this;\n  }\n  once(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].once(event, callback);\n    return this;\n  }\n  off(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].off(event, callback);\n    return this;\n  }\n\n  /**\n   * Iterate on all plugins and run `update` on them.\n   * Called each time state changes.\n   *\n   */\n  updateAll(state) {\n    this.iteratePlugins(plugin => {\n      plugin.update(state);\n    });\n  }\n\n  /**\n   * Updates state with a patch\n   *\n   * @param {object} patch {foo: 'bar'}\n   */\n  setState(patch) {\n    this.store.setState(patch);\n  }\n\n  /**\n   * Returns current state.\n   *\n   * @returns {object}\n   */\n  getState() {\n    return this.store.getState();\n  }\n  patchFilesState(filesWithNewState) {\n    const existingFilesState = this.getState().files;\n    this.setState({\n      files: {\n        ...existingFilesState,\n        ...Object.fromEntries(Object.entries(filesWithNewState).map(_ref => {\n          let [fileID, newFileState] = _ref;\n          return [fileID, {\n            ...existingFilesState[fileID],\n            ...newFileState\n          }];\n        }))\n      }\n    });\n  }\n\n  /**\n   * Shorthand to set state for a specific file.\n   */\n  setFileState(fileID, state) {\n    if (!this.getState().files[fileID]) {\n      throw new Error(`Can\u2019t set state for ${fileID} (the file could have been removed)`);\n    }\n    this.patchFilesState({\n      [fileID]: state\n    });\n  }\n  i18nInit() {\n    const onMissingKey = key => this.log(`Missing i18n string: ${key}`, 'error');\n    const translator = new Translator([this.defaultLocale, this.opts.locale], {\n      onMissingKey\n    });\n    this.i18n = translator.translate.bind(translator);\n    this.i18nArray = translator.translateArray.bind(translator);\n    this.locale = translator.locale;\n  }\n  setOptions(newOpts) {\n    this.opts = {\n      ...this.opts,\n      ...newOpts,\n      restrictions: {\n        ...this.opts.restrictions,\n        ...(newOpts && newOpts.restrictions)\n      }\n    };\n    if (newOpts.meta) {\n      this.setMeta(newOpts.meta);\n    }\n    this.i18nInit();\n    if (newOpts.locale) {\n      this.iteratePlugins(plugin => {\n        plugin.setOptions(newOpts);\n      });\n    }\n\n    // Note: this is not the preact `setState`, it's an internal function that has the same name.\n    this.setState(); // so that UI re-renders with new options\n  }\n\n  // todo next major: rename to something better? (it doesn't just reset progress)\n  resetProgress() {\n    const defaultProgress = {\n      percentage: 0,\n      bytesUploaded: 0,\n      uploadComplete: false,\n      uploadStarted: null\n    };\n    const files = {\n      ...this.getState().files\n    };\n    const updatedFiles = {};\n    Object.keys(files).forEach(fileID => {\n      updatedFiles[fileID] = {\n        ...files[fileID],\n        progress: {\n          ...files[fileID].progress,\n          ...defaultProgress\n        }\n      };\n    });\n    this.setState({\n      files: updatedFiles,\n      ...getDefaultUploadState()\n    });\n    this.emit('reset-progress');\n  }\n\n  /** @protected */\n  clearUploadedFiles() {\n    this.setState({\n      ...getDefaultUploadState(),\n      files: {}\n    });\n  }\n  addPreProcessor(fn) {\n    _classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors].add(fn);\n  }\n  removePreProcessor(fn) {\n    return _classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors].delete(fn);\n  }\n  addPostProcessor(fn) {\n    _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].add(fn);\n  }\n  removePostProcessor(fn) {\n    return _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].delete(fn);\n  }\n  addUploader(fn) {\n    _classPrivateFieldLooseBase(this, _uploaders)[_uploaders].add(fn);\n  }\n  removeUploader(fn) {\n    return _classPrivateFieldLooseBase(this, _uploaders)[_uploaders].delete(fn);\n  }\n  setMeta(data) {\n    const updatedMeta = {\n      ...this.getState().meta,\n      ...data\n    };\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    Object.keys(updatedFiles).forEach(fileID => {\n      updatedFiles[fileID] = {\n        ...updatedFiles[fileID],\n        meta: {\n          ...updatedFiles[fileID].meta,\n          ...data\n        }\n      };\n    });\n    this.log('Adding metadata:');\n    this.log(data);\n    this.setState({\n      meta: updatedMeta,\n      files: updatedFiles\n    });\n  }\n  setFileMeta(fileID, data) {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    if (!updatedFiles[fileID]) {\n      this.log('Was trying to set metadata for a file that has been removed: ', fileID);\n      return;\n    }\n    const newMeta = {\n      ...updatedFiles[fileID].meta,\n      ...data\n    };\n    updatedFiles[fileID] = {\n      ...updatedFiles[fileID],\n      meta: newMeta\n    };\n    this.setState({\n      files: updatedFiles\n    });\n  }\n\n  /**\n   * Get a file object.\n   *\n   * @param {string} fileID The ID of the file object to return.\n   */\n  getFile(fileID) {\n    return this.getState().files[fileID];\n  }\n\n  /**\n   * Get all files in an array.\n   */\n  getFiles() {\n    const {\n      files\n    } = this.getState();\n    return Object.values(files);\n  }\n  getFilesByIds(ids) {\n    return ids.map(id => this.getFile(id));\n  }\n  getObjectOfFilesPerState() {\n    const {\n      files: filesObject,\n      totalProgress,\n      error\n    } = this.getState();\n    const files = Object.values(filesObject);\n    const inProgressFiles = files.filter(_ref2 => {\n      let {\n        progress\n      } = _ref2;\n      return !progress.uploadComplete && progress.uploadStarted;\n    });\n    const newFiles = files.filter(file => !file.progress.uploadStarted);\n    const startedFiles = files.filter(file => file.progress.uploadStarted || file.progress.preprocess || file.progress.postprocess);\n    const uploadStartedFiles = files.filter(file => file.progress.uploadStarted);\n    const pausedFiles = files.filter(file => file.isPaused);\n    const completeFiles = files.filter(file => file.progress.uploadComplete);\n    const erroredFiles = files.filter(file => file.error);\n    const inProgressNotPausedFiles = inProgressFiles.filter(file => !file.isPaused);\n    const processingFiles = files.filter(file => file.progress.preprocess || file.progress.postprocess);\n    return {\n      newFiles,\n      startedFiles,\n      uploadStartedFiles,\n      pausedFiles,\n      completeFiles,\n      erroredFiles,\n      inProgressFiles,\n      inProgressNotPausedFiles,\n      processingFiles,\n      isUploadStarted: uploadStartedFiles.length > 0,\n      isAllComplete: totalProgress === 100 && completeFiles.length === files.length && processingFiles.length === 0,\n      isAllErrored: !!error && erroredFiles.length === files.length,\n      isAllPaused: inProgressFiles.length !== 0 && pausedFiles.length === inProgressFiles.length,\n      isUploadInProgress: inProgressFiles.length > 0,\n      isSomeGhost: files.some(file => file.isGhost)\n    };\n  }\n  validateRestrictions(file, files) {\n    if (files === void 0) {\n      files = this.getFiles();\n    }\n    try {\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validate(files, [file]);\n    } catch (err) {\n      return err;\n    }\n    return null;\n  }\n  checkIfFileAlreadyExists(fileID) {\n    const {\n      files\n    } = this.getState();\n    if (files[fileID] && !files[fileID].isGhost) {\n      return true;\n    }\n    return false;\n  }\n  /**\n   * Add a new file to `state.files`. This will run `onBeforeFileAdded`,\n   * try to guess file type in a clever way, check file against restrictions,\n   * and start an upload if `autoProceed === true`.\n   *\n   * @param {object} file object to add\n   * @returns {string} id for the added file\n   */\n  addFile(file) {\n    _classPrivateFieldLooseBase(this, _assertNewUploadAllowed)[_assertNewUploadAllowed](file);\n    const {\n      nextFilesState,\n      validFilesToAdd,\n      errors\n    } = _classPrivateFieldLooseBase(this, _checkAndUpdateFileState)[_checkAndUpdateFileState]([file]);\n    const restrictionErrors = errors.filter(error => error.isRestriction);\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit](restrictionErrors);\n    if (errors.length > 0) throw errors[0];\n    this.setState({\n      files: nextFilesState\n    });\n    const [firstValidFileToAdd] = validFilesToAdd;\n    this.emit('file-added', firstValidFileToAdd);\n    this.emit('files-added', validFilesToAdd);\n    this.log(`Added file: ${firstValidFileToAdd.name}, ${firstValidFileToAdd.id}, mime type: ${firstValidFileToAdd.type}`);\n    _classPrivateFieldLooseBase(this, _startIfAutoProceed)[_startIfAutoProceed]();\n    return firstValidFileToAdd.id;\n  }\n\n  /**\n   * Add multiple files to `state.files`. See the `addFile()` documentation.\n   *\n   * If an error occurs while adding a file, it is logged and the user is notified.\n   * This is good for UI plugins, but not for programmatic use.\n   * Programmatic users should usually still use `addFile()` on individual files.\n   */\n  addFiles(fileDescriptors) {\n    _classPrivateFieldLooseBase(this, _assertNewUploadAllowed)[_assertNewUploadAllowed]();\n    const {\n      nextFilesState,\n      validFilesToAdd,\n      errors\n    } = _classPrivateFieldLooseBase(this, _checkAndUpdateFileState)[_checkAndUpdateFileState](fileDescriptors);\n    const restrictionErrors = errors.filter(error => error.isRestriction);\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit](restrictionErrors);\n    const nonRestrictionErrors = errors.filter(error => !error.isRestriction);\n    if (nonRestrictionErrors.length > 0) {\n      let message = 'Multiple errors occurred while adding files:\\n';\n      nonRestrictionErrors.forEach(subError => {\n        message += `\\n * ${subError.message}`;\n      });\n      this.info({\n        message: this.i18n('addBulkFilesFailed', {\n          smart_count: nonRestrictionErrors.length\n        }),\n        details: message\n      }, 'error', this.opts.infoTimeout);\n      if (typeof AggregateError === 'function') {\n        throw new AggregateError(nonRestrictionErrors, message);\n      } else {\n        const err = new Error(message);\n        err.errors = nonRestrictionErrors;\n        throw err;\n      }\n    }\n\n    // OK, we haven't thrown an error, we can start updating state and emitting events now:\n\n    this.setState({\n      files: nextFilesState\n    });\n    validFilesToAdd.forEach(file => {\n      this.emit('file-added', file);\n    });\n    this.emit('files-added', validFilesToAdd);\n    if (validFilesToAdd.length > 5) {\n      this.log(`Added batch of ${validFilesToAdd.length} files`);\n    } else {\n      Object.values(validFilesToAdd).forEach(file => {\n        this.log(`Added file: ${file.name}\\n id: ${file.id}\\n type: ${file.type}`);\n      });\n    }\n    if (validFilesToAdd.length > 0) {\n      _classPrivateFieldLooseBase(this, _startIfAutoProceed)[_startIfAutoProceed]();\n    }\n  }\n  removeFiles(fileIDs, reason) {\n    const {\n      files,\n      currentUploads\n    } = this.getState();\n    const updatedFiles = {\n      ...files\n    };\n    const updatedUploads = {\n      ...currentUploads\n    };\n    const removedFiles = Object.create(null);\n    fileIDs.forEach(fileID => {\n      if (files[fileID]) {\n        removedFiles[fileID] = files[fileID];\n        delete updatedFiles[fileID];\n      }\n    });\n\n    // Remove files from the `fileIDs` list in each upload.\n    function fileIsNotRemoved(uploadFileID) {\n      return removedFiles[uploadFileID] === undefined;\n    }\n    Object.keys(updatedUploads).forEach(uploadID => {\n      const newFileIDs = currentUploads[uploadID].fileIDs.filter(fileIsNotRemoved);\n\n      // Remove the upload if no files are associated with it anymore.\n      if (newFileIDs.length === 0) {\n        delete updatedUploads[uploadID];\n        return;\n      }\n      const {\n        capabilities\n      } = this.getState();\n      if (newFileIDs.length !== currentUploads[uploadID].fileIDs.length && !capabilities.individualCancellation) {\n        throw new Error('individualCancellation is disabled');\n      }\n      updatedUploads[uploadID] = {\n        ...currentUploads[uploadID],\n        fileIDs: newFileIDs\n      };\n    });\n    const stateUpdate = {\n      currentUploads: updatedUploads,\n      files: updatedFiles\n    };\n\n    // If all files were removed - allow new uploads,\n    // and clear recoveredState\n    if (Object.keys(updatedFiles).length === 0) {\n      stateUpdate.allowNewUpload = true;\n      stateUpdate.error = null;\n      stateUpdate.recoveredState = null;\n    }\n    this.setState(stateUpdate);\n    this.calculateTotalProgress();\n    const removedFileIDs = Object.keys(removedFiles);\n    removedFileIDs.forEach(fileID => {\n      this.emit('file-removed', removedFiles[fileID], reason);\n    });\n    if (removedFileIDs.length > 5) {\n      this.log(`Removed ${removedFileIDs.length} files`);\n    } else {\n      this.log(`Removed files: ${removedFileIDs.join(', ')}`);\n    }\n  }\n  removeFile(fileID, reason) {\n    if (reason === void 0) {\n      reason = null;\n    }\n    this.removeFiles([fileID], reason);\n  }\n  pauseResume(fileID) {\n    if (!this.getState().capabilities.resumableUploads || this.getFile(fileID).uploadComplete) {\n      return undefined;\n    }\n    const wasPaused = this.getFile(fileID).isPaused || false;\n    const isPaused = !wasPaused;\n    this.setFileState(fileID, {\n      isPaused\n    });\n    this.emit('upload-pause', fileID, isPaused);\n    return isPaused;\n  }\n  pauseAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const inProgressUpdatedFiles = Object.keys(updatedFiles).filter(file => {\n      return !updatedFiles[file].progress.uploadComplete && updatedFiles[file].progress.uploadStarted;\n    });\n    inProgressUpdatedFiles.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: true\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles\n    });\n    this.emit('pause-all');\n  }\n  resumeAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const inProgressUpdatedFiles = Object.keys(updatedFiles).filter(file => {\n      return !updatedFiles[file].progress.uploadComplete && updatedFiles[file].progress.uploadStarted;\n    });\n    inProgressUpdatedFiles.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: false,\n        error: null\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles\n    });\n    this.emit('resume-all');\n  }\n  retryAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const filesToRetry = Object.keys(updatedFiles).filter(file => {\n      return updatedFiles[file].error;\n    });\n    filesToRetry.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: false,\n        error: null\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles,\n      error: null\n    });\n    this.emit('retry-all', filesToRetry);\n    if (filesToRetry.length === 0) {\n      return Promise.resolve({\n        successful: [],\n        failed: []\n      });\n    }\n    const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](filesToRetry, {\n      forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n    });\n\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  cancelAll(_temp) {\n    let {\n      reason = 'user'\n    } = _temp === void 0 ? {} : _temp;\n    this.emit('cancel-all', {\n      reason\n    });\n\n    // Only remove existing uploads if user is canceling\n    if (reason === 'user') {\n      const {\n        files\n      } = this.getState();\n      const fileIDs = Object.keys(files);\n      if (fileIDs.length) {\n        this.removeFiles(fileIDs, 'cancel-all');\n      }\n      this.setState(getDefaultUploadState());\n      // todo should we call this.emit('reset-progress') like we do for resetProgress?\n    }\n  }\n\n  retryUpload(fileID) {\n    this.setFileState(fileID, {\n      error: null,\n      isPaused: false\n    });\n    this.emit('upload-retry', fileID);\n    const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload]([fileID], {\n      forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n    });\n\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  logout() {\n    this.iteratePlugins(plugin => {\n      if (plugin.provider && plugin.provider.logout) {\n        plugin.provider.logout();\n      }\n    });\n  }\n  calculateTotalProgress() {\n    // calculate total progress, using the number of files currently uploading,\n    // multiplied by 100 and the summ of individual progress of each file\n    const files = this.getFiles();\n    const inProgress = files.filter(file => {\n      return file.progress.uploadStarted || file.progress.preprocess || file.progress.postprocess;\n    });\n    if (inProgress.length === 0) {\n      this.emit('progress', 0);\n      this.setState({\n        totalProgress: 0\n      });\n      return;\n    }\n    const sizedFiles = inProgress.filter(file => file.progress.bytesTotal != null);\n    const unsizedFiles = inProgress.filter(file => file.progress.bytesTotal == null);\n    if (sizedFiles.length === 0) {\n      const progressMax = inProgress.length * 100;\n      const currentProgress = unsizedFiles.reduce((acc, file) => {\n        return acc + file.progress.percentage;\n      }, 0);\n      const totalProgress = Math.round(currentProgress / progressMax * 100);\n      this.setState({\n        totalProgress\n      });\n      return;\n    }\n    let totalSize = sizedFiles.reduce((acc, file) => {\n      return acc + file.progress.bytesTotal;\n    }, 0);\n    const averageSize = totalSize / sizedFiles.length;\n    totalSize += averageSize * unsizedFiles.length;\n    let uploadedSize = 0;\n    sizedFiles.forEach(file => {\n      uploadedSize += file.progress.bytesUploaded;\n    });\n    unsizedFiles.forEach(file => {\n      uploadedSize += averageSize * (file.progress.percentage || 0) / 100;\n    });\n    let totalProgress = totalSize === 0 ? 0 : Math.round(uploadedSize / totalSize * 100);\n\n    // hot fix, because:\n    // uploadedSize ended up larger than totalSize, resulting in 1325% total\n    if (totalProgress > 100) {\n      totalProgress = 100;\n    }\n    this.setState({\n      totalProgress\n    });\n    this.emit('progress', totalProgress);\n  }\n  updateOnlineStatus() {\n    const online = typeof window.navigator.onLine !== 'undefined' ? window.navigator.onLine : true;\n    if (!online) {\n      this.emit('is-offline');\n      this.info(this.i18n('noInternetConnection'), 'error', 0);\n      this.wasOffline = true;\n    } else {\n      this.emit('is-online');\n      if (this.wasOffline) {\n        this.emit('back-online');\n        this.info(this.i18n('connectedToInternet'), 'success', 3000);\n        this.wasOffline = false;\n      }\n    }\n  }\n  getID() {\n    return this.opts.id;\n  }\n\n  /**\n   * Registers a plugin with Core.\n   *\n   * @param {object} Plugin object\n   * @param {object} [opts] object with options to be passed to Plugin\n   * @returns {object} self for chaining\n   */\n  // eslint-disable-next-line no-shadow\n  use(Plugin, opts) {\n    if (typeof Plugin !== 'function') {\n      const msg = `Expected a plugin class, but got ${Plugin === null ? 'null' : typeof Plugin}.` + ' Please verify that the plugin was imported and spelled correctly.';\n      throw new TypeError(msg);\n    }\n\n    // Instantiate\n    const plugin = new Plugin(this, opts);\n    const pluginId = plugin.id;\n    if (!pluginId) {\n      throw new Error('Your plugin must have an id');\n    }\n    if (!plugin.type) {\n      throw new Error('Your plugin must have a type');\n    }\n    const existsPluginAlready = this.getPlugin(pluginId);\n    if (existsPluginAlready) {\n      const msg = `Already found a plugin named '${existsPluginAlready.id}'. ` + `Tried to use: '${pluginId}'.\\n` + 'Uppy plugins must have unique `id` options. See https://uppy.io/docs/plugins/#id.';\n      throw new Error(msg);\n    }\n    if (Plugin.VERSION) {\n      this.log(`Using ${pluginId} v${Plugin.VERSION}`);\n    }\n    if (plugin.type in _classPrivateFieldLooseBase(this, _plugins)[_plugins]) {\n      _classPrivateFieldLooseBase(this, _plugins)[_plugins][plugin.type].push(plugin);\n    } else {\n      _classPrivateFieldLooseBase(this, _plugins)[_plugins][plugin.type] = [plugin];\n    }\n    plugin.install();\n    this.emit('plugin-added', plugin);\n    return this;\n  }\n\n  /**\n   * Find one Plugin by name.\n   *\n   * @param {string} id plugin id\n   * @returns {BasePlugin|undefined}\n   */\n  getPlugin(id) {\n    for (const plugins of Object.values(_classPrivateFieldLooseBase(this, _plugins)[_plugins])) {\n      const foundPlugin = plugins.find(plugin => plugin.id === id);\n      if (foundPlugin != null) return foundPlugin;\n    }\n    return undefined;\n  }\n  [_Symbol$for](type) {\n    return _classPrivateFieldLooseBase(this, _plugins)[_plugins][type];\n  }\n\n  /**\n   * Iterate through all `use`d plugins.\n   *\n   * @param {Function} method that will be run on each plugin\n   */\n  iteratePlugins(method) {\n    Object.values(_classPrivateFieldLooseBase(this, _plugins)[_plugins]).flat(1).forEach(method);\n  }\n\n  /**\n   * Uninstall and remove a plugin.\n   *\n   * @param {object} instance The plugin instance to remove.\n   */\n  removePlugin(instance) {\n    this.log(`Removing plugin ${instance.id}`);\n    this.emit('plugin-remove', instance);\n    if (instance.uninstall) {\n      instance.uninstall();\n    }\n    const list = _classPrivateFieldLooseBase(this, _plugins)[_plugins][instance.type];\n    // list.indexOf failed here, because Vue3 converted the plugin instance\n    // to a Proxy object, which failed the strict comparison test:\n    // obj !== objProxy\n    const index = list.findIndex(item => item.id === instance.id);\n    if (index !== -1) {\n      list.splice(index, 1);\n    }\n    const state = this.getState();\n    const updatedState = {\n      plugins: {\n        ...state.plugins,\n        [instance.id]: undefined\n      }\n    };\n    this.setState(updatedState);\n  }\n\n  /**\n   * Uninstall all plugins and close down this Uppy instance.\n   */\n  close(_temp2) {\n    let {\n      reason\n    } = _temp2 === void 0 ? {} : _temp2;\n    this.log(`Closing Uppy instance ${this.opts.id}: removing all files and uninstalling plugins`);\n    this.cancelAll({\n      reason\n    });\n    _classPrivateFieldLooseBase(this, _storeUnsubscribe)[_storeUnsubscribe]();\n    this.iteratePlugins(plugin => {\n      this.removePlugin(plugin);\n    });\n    if (typeof window !== 'undefined' && window.removeEventListener) {\n      window.removeEventListener('online', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n      window.removeEventListener('offline', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    }\n  }\n  hideInfo() {\n    const {\n      info\n    } = this.getState();\n    this.setState({\n      info: info.slice(1)\n    });\n    this.emit('info-hidden');\n  }\n\n  /**\n   * Set info message in `state.info`, so that UI plugins like `Informer`\n   * can display the message.\n   *\n   * @param {string | object} message Message to be displayed by the informer\n   * @param {string} [type]\n   * @param {number} [duration]\n   */\n  info(message, type, duration) {\n    if (type === void 0) {\n      type = 'info';\n    }\n    if (duration === void 0) {\n      duration = 3000;\n    }\n    const isComplexMessage = typeof message === 'object';\n    this.setState({\n      info: [...this.getState().info, {\n        type,\n        message: isComplexMessage ? message.message : message,\n        details: isComplexMessage ? message.details : null\n      }]\n    });\n    setTimeout(() => this.hideInfo(), duration);\n    this.emit('info-visible');\n  }\n\n  /**\n   * Passes messages to a function, provided in `opts.logger`.\n   * If `opts.logger: Uppy.debugLogger` or `opts.debug: true`, logs to the browser console.\n   *\n   * @param {string|object} message to log\n   * @param {string} [type] optional `error` or `warning`\n   */\n  log(message, type) {\n    const {\n      logger\n    } = this.opts;\n    switch (type) {\n      case 'error':\n        logger.error(message);\n        break;\n      case 'warning':\n        logger.warn(message);\n        break;\n      default:\n        logger.debug(message);\n        break;\n    }\n  }\n  registerRequestClient(id, client) {\n    _classPrivateFieldLooseBase(this, _requestClientById)[_requestClientById].set(id, client);\n  }\n\n  /** @protected */\n  getRequestClientForFile(file) {\n    if (!file.remote) throw new Error(`Tried to get RequestClient for a non-remote file ${file.id}`);\n    const requestClient = _classPrivateFieldLooseBase(this, _requestClientById)[_requestClientById].get(file.remote.requestClientId);\n    if (requestClient == null) throw new Error(`requestClientId \"${file.remote.requestClientId}\" not registered for file \"${file.id}\"`);\n    return requestClient;\n  }\n\n  /**\n   * Restore an upload by its ID.\n   */\n  restore(uploadID) {\n    this.log(`Core: attempting to restore upload \"${uploadID}\"`);\n    if (!this.getState().currentUploads[uploadID]) {\n      _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n      return Promise.reject(new Error('Nonexistent upload'));\n    }\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  [_Symbol$for2]() {\n    return _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](...arguments);\n  }\n  /**\n   * Add data to an upload's result object.\n   *\n   * @param {string} uploadID The ID of the upload.\n   * @param {object} data Data properties to add to the result object.\n   */\n  addResultData(uploadID, data) {\n    if (!_classPrivateFieldLooseBase(this, _getUpload)[_getUpload](uploadID)) {\n      this.log(`Not setting result for an upload that has been removed: ${uploadID}`);\n      return;\n    }\n    const {\n      currentUploads\n    } = this.getState();\n    const currentUpload = {\n      ...currentUploads[uploadID],\n      result: {\n        ...currentUploads[uploadID].result,\n        ...data\n      }\n    };\n    this.setState({\n      currentUploads: {\n        ...currentUploads,\n        [uploadID]: currentUpload\n      }\n    });\n  }\n  /**\n   * Start an upload for all the files that are not currently being uploaded.\n   *\n   * @returns {Promise}\n   */\n  upload() {\n    var _classPrivateFieldLoo;\n    if (!((_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _plugins)[_plugins].uploader) != null && _classPrivateFieldLoo.length)) {\n      this.log('No uploader type plugins are used', 'warning');\n    }\n    let {\n      files\n    } = this.getState();\n    const onBeforeUploadResult = this.opts.onBeforeUpload(files);\n    if (onBeforeUploadResult === false) {\n      return Promise.reject(new Error('Not starting the upload because onBeforeUpload returned false'));\n    }\n    if (onBeforeUploadResult && typeof onBeforeUploadResult === 'object') {\n      files = onBeforeUploadResult;\n      // Updating files in state, because uploader plugins receive file IDs,\n      // and then fetch the actual file object from state\n      this.setState({\n        files\n      });\n    }\n    return Promise.resolve().then(() => _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateMinNumberOfFiles(files)).catch(err => {\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([err]);\n      throw err;\n    }).then(() => {\n      if (!_classPrivateFieldLooseBase(this, _checkRequiredMetaFields)[_checkRequiredMetaFields](files)) {\n        throw new RestrictionError(this.i18n('missingRequiredMetaField'));\n      }\n    }).catch(err => {\n      // Doing this in a separate catch because we already emited and logged\n      // all the errors in `checkRequiredMetaFields` so we only throw a generic\n      // missing fields error here.\n      throw err;\n    }).then(() => {\n      const {\n        currentUploads\n      } = this.getState();\n      // get a list of files that are currently assigned to uploads\n      const currentlyUploadingFiles = Object.values(currentUploads).flatMap(curr => curr.fileIDs);\n      const waitingFileIDs = [];\n      Object.keys(files).forEach(fileID => {\n        const file = this.getFile(fileID);\n        // if the file hasn't started uploading and hasn't already been assigned to an upload..\n        if (!file.progress.uploadStarted && currentlyUploadingFiles.indexOf(fileID) === -1) {\n          waitingFileIDs.push(file.id);\n        }\n      });\n      const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](waitingFileIDs);\n      return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n    }).catch(err => {\n      this.emit('error', err);\n      this.log(err, 'error');\n      throw err;\n    });\n  }\n}\nfunction _informAndEmit2(errors) {\n  for (const error of errors) {\n    const {\n      file,\n      isRestriction\n    } = error;\n    if (isRestriction) {\n      this.emit('restriction-failed', file, error);\n    } else {\n      this.emit('error', error);\n    }\n    this.log(error, 'warning');\n  }\n  const userFacingErrors = errors.filter(error => error.isUserFacing);\n\n  // don't flood the user: only show the first 4 toasts\n  const maxNumToShow = 4;\n  const firstErrors = userFacingErrors.slice(0, maxNumToShow);\n  const additionalErrors = userFacingErrors.slice(maxNumToShow);\n  firstErrors.forEach(_ref3 => {\n    let {\n      message,\n      details = ''\n    } = _ref3;\n    this.info({\n      message,\n      details\n    }, 'error', this.opts.infoTimeout);\n  });\n  if (additionalErrors.length > 0) {\n    this.info({\n      message: this.i18n('additionalRestrictionsFailed', {\n        count: additionalErrors.length\n      })\n    });\n  }\n}\nfunction _checkRequiredMetaFieldsOnFile2(file) {\n  const {\n    missingFields,\n    error\n  } = _classPrivateFieldLooseBase(this, _restricter)[_restricter].getMissingRequiredMetaFields(file);\n  if (missingFields.length > 0) {\n    this.setFileState(file.id, {\n      missingRequiredMetaFields: missingFields\n    });\n    this.log(error.message);\n    this.emit('restriction-failed', file, error);\n    return false;\n  }\n  return true;\n}\nfunction _checkRequiredMetaFields2(files) {\n  let success = true;\n  for (const file of Object.values(files)) {\n    if (!_classPrivateFieldLooseBase(this, _checkRequiredMetaFieldsOnFile)[_checkRequiredMetaFieldsOnFile](file)) {\n      success = false;\n    }\n  }\n  return success;\n}\nfunction _assertNewUploadAllowed2(file) {\n  const {\n    allowNewUpload\n  } = this.getState();\n  if (allowNewUpload === false) {\n    const error = new RestrictionError(this.i18n('noMoreFilesAllowed'), {\n      file\n    });\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([error]);\n    throw error;\n  }\n}\nfunction _transformFile2(fileDescriptorOrFile) {\n  // Uppy expects files in { name, type, size, data } format.\n  // If the actual File object is passed from input[type=file] or drag-drop,\n  // we normalize it to match Uppy file object\n  const fileDescriptor = fileDescriptorOrFile instanceof File ? {\n    name: fileDescriptorOrFile.name,\n    type: fileDescriptorOrFile.type,\n    size: fileDescriptorOrFile.size,\n    data: fileDescriptorOrFile\n  } : fileDescriptorOrFile;\n  const fileType = getFileType(fileDescriptor);\n  const fileName = getFileName(fileType, fileDescriptor);\n  const fileExtension = getFileNameAndExtension(fileName).extension;\n  const isRemote = Boolean(fileDescriptor.isRemote);\n  const id = getSafeFileId(fileDescriptor);\n  const meta = fileDescriptor.meta || {};\n  meta.name = fileName;\n  meta.type = fileType;\n\n  // `null` means the size is unknown.\n  const size = Number.isFinite(fileDescriptor.data.size) ? fileDescriptor.data.size : null;\n  return {\n    source: fileDescriptor.source || '',\n    id,\n    name: fileName,\n    extension: fileExtension || '',\n    meta: {\n      ...this.getState().meta,\n      ...meta\n    },\n    type: fileType,\n    data: fileDescriptor.data,\n    progress: {\n      percentage: 0,\n      bytesUploaded: 0,\n      bytesTotal: size,\n      uploadComplete: false,\n      uploadStarted: null\n    },\n    size,\n    isRemote,\n    remote: fileDescriptor.remote || '',\n    preview: fileDescriptor.preview\n  };\n}\nfunction _startIfAutoProceed2() {\n  if (this.opts.autoProceed && !this.scheduledAutoProceed) {\n    this.scheduledAutoProceed = setTimeout(() => {\n      this.scheduledAutoProceed = null;\n      this.upload().catch(err => {\n        if (!err.isRestriction) {\n          this.log(err.stack || err.message || err);\n        }\n      });\n    }, 4);\n  }\n}\nfunction _checkAndUpdateFileState2(filesToAdd) {\n  const {\n    files: existingFiles\n  } = this.getState();\n\n  // create a copy of the files object only once\n  const nextFilesState = {\n    ...existingFiles\n  };\n  const validFilesToAdd = [];\n  const errors = [];\n  for (const fileToAdd of filesToAdd) {\n    try {\n      var _existingFiles$newFil;\n      let newFile = _classPrivateFieldLooseBase(this, _transformFile)[_transformFile](fileToAdd);\n\n      // If a file has been recovered (Golden Retriever), but we were unable to recover its data (probably too large),\n      // users are asked to re-select these half-recovered files and then this method will be called again.\n      // In order to keep the progress, meta and everthing else, we keep the existing file,\n      // but we replace `data`, and we remove `isGhost`, because the file is no longer a ghost now\n      const isGhost = (_existingFiles$newFil = existingFiles[newFile.id]) == null ? void 0 : _existingFiles$newFil.isGhost;\n      if (isGhost) {\n        const {\n          isGhost: _,\n          ...existingFileState\n        } = existingFiles[newFile.id];\n        newFile = {\n          ...existingFileState,\n          data: fileToAdd.data\n        };\n        this.log(`Replaced the blob in the restored ghost file: ${newFile.name}, ${newFile.id}`);\n      }\n      const onBeforeFileAddedResult = this.opts.onBeforeFileAdded(newFile, nextFilesState);\n      if (!onBeforeFileAddedResult && this.checkIfFileAlreadyExists(newFile.id)) {\n        throw new RestrictionError(this.i18n('noDuplicates', {\n          fileName: newFile.name\n        }), {\n          file: fileToAdd\n        });\n      }\n\n      // Pass through reselected files from Golden Retriever\n      if (onBeforeFileAddedResult === false && !isGhost) {\n        // Don\u2019t show UI info for this error, as it should be done by the developer\n        throw new RestrictionError('Cannot add the file because onBeforeFileAdded returned false.', {\n          isUserFacing: false,\n          file: fileToAdd\n        });\n      } else if (typeof onBeforeFileAddedResult === 'object' && onBeforeFileAddedResult !== null) {\n        newFile = onBeforeFileAddedResult;\n      }\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateSingleFile(newFile);\n\n      // need to add it to the new local state immediately, so we can use the state to validate the next files too\n      nextFilesState[newFile.id] = newFile;\n      validFilesToAdd.push(newFile);\n    } catch (err) {\n      errors.push(err);\n    }\n  }\n  try {\n    // need to run this separately because it's much more slow, so if we run it inside the for-loop it will be very slow\n    // when many files are added\n    _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateAggregateRestrictions(Object.values(existingFiles), validFilesToAdd);\n  } catch (err) {\n    errors.push(err);\n\n    // If we have any aggregate error, don't allow adding this batch\n    return {\n      nextFilesState: existingFiles,\n      validFilesToAdd: [],\n      errors\n    };\n  }\n  return {\n    nextFilesState,\n    validFilesToAdd,\n    errors\n  };\n}\nfunction _addListeners2() {\n  /**\n   * @param {Error} error\n   * @param {object} [file]\n   * @param {object} [response]\n   */\n  const errorHandler = (error, file, response) => {\n    let errorMsg = error.message || 'Unknown error';\n    if (error.details) {\n      errorMsg += ` ${error.details}`;\n    }\n    this.setState({\n      error: errorMsg\n    });\n    if (file != null && file.id in this.getState().files) {\n      this.setFileState(file.id, {\n        error: errorMsg,\n        response\n      });\n    }\n  };\n  this.on('error', errorHandler);\n  this.on('upload-error', (file, error, response) => {\n    errorHandler(error, file, response);\n    if (typeof error === 'object' && error.message) {\n      this.log(error.message, 'error');\n      const newError = new Error(this.i18n('failedToUpload', {\n        file: file == null ? void 0 : file.name\n      }));\n      newError.isUserFacing = true; // todo maybe don't do this with all errors?\n      newError.details = error.message;\n      if (error.details) {\n        newError.details += ` ${error.details}`;\n      }\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([newError]);\n    } else {\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([error]);\n    }\n  });\n  let uploadStalledWarningRecentlyEmitted;\n  this.on('upload-stalled', (error, files) => {\n    const {\n      message\n    } = error;\n    const details = files.map(file => file.meta.name).join(', ');\n    if (!uploadStalledWarningRecentlyEmitted) {\n      this.info({\n        message,\n        details\n      }, 'warning', this.opts.infoTimeout);\n      uploadStalledWarningRecentlyEmitted = setTimeout(() => {\n        uploadStalledWarningRecentlyEmitted = null;\n      }, this.opts.infoTimeout);\n    }\n    this.log(`${message} ${details}`.trim(), 'warning');\n  });\n  this.on('upload', () => {\n    this.setState({\n      error: null\n    });\n  });\n  const onUploadStarted = files => {\n    const filesFiltered = files.filter(file => {\n      const exists = file != null && this.getFile(file.id);\n      if (!exists) this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return exists;\n    });\n    const filesState = Object.fromEntries(filesFiltered.map(file => [file.id, {\n      progress: {\n        uploadStarted: Date.now(),\n        uploadComplete: false,\n        percentage: 0,\n        bytesUploaded: 0,\n        bytesTotal: file.size\n      }\n    }]));\n    this.patchFilesState(filesState);\n  };\n  this.on('upload-start', files => {\n    files.forEach(file => {\n      // todo backward compat, remove this event in a next major\n      this.emit('upload-started', file);\n    });\n    onUploadStarted(files);\n  });\n  this.on('upload-progress', this.calculateProgress);\n  this.on('upload-success', (file, uploadResp) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const currentProgress = this.getFile(file.id).progress;\n    this.setFileState(file.id, {\n      progress: {\n        ...currentProgress,\n        postprocess: _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].size > 0 ? {\n          mode: 'indeterminate'\n        } : null,\n        uploadComplete: true,\n        percentage: 100,\n        bytesUploaded: currentProgress.bytesTotal\n      },\n      response: uploadResp,\n      uploadURL: uploadResp.uploadURL,\n      isPaused: false\n    });\n\n    // Remote providers sometimes don't tell us the file size,\n    // but we can know how many bytes we uploaded once the upload is complete.\n    if (file.size == null) {\n      this.setFileState(file.id, {\n        size: uploadResp.bytesUploaded || currentProgress.bytesTotal\n      });\n    }\n    this.calculateTotalProgress();\n  });\n  this.on('preprocess-progress', (file, progress) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    this.setFileState(file.id, {\n      progress: {\n        ...this.getFile(file.id).progress,\n        preprocess: progress\n      }\n    });\n  });\n  this.on('preprocess-complete', file => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const files = {\n      ...this.getState().files\n    };\n    files[file.id] = {\n      ...files[file.id],\n      progress: {\n        ...files[file.id].progress\n      }\n    };\n    delete files[file.id].progress.preprocess;\n    this.setState({\n      files\n    });\n  });\n  this.on('postprocess-progress', (file, progress) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    this.setFileState(file.id, {\n      progress: {\n        ...this.getState().files[file.id].progress,\n        postprocess: progress\n      }\n    });\n  });\n  this.on('postprocess-complete', file => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const files = {\n      ...this.getState().files\n    };\n    files[file.id] = {\n      ...files[file.id],\n      progress: {\n        ...files[file.id].progress\n      }\n    };\n    delete files[file.id].progress.postprocess;\n    this.setState({\n      files\n    });\n  });\n  this.on('restored', () => {\n    // Files may have changed--ensure progress is still accurate.\n    this.calculateTotalProgress();\n  });\n  this.on('dashboard:file-edit-complete', file => {\n    if (file) {\n      _classPrivateFieldLooseBase(this, _checkRequiredMetaFieldsOnFile)[_checkRequiredMetaFieldsOnFile](file);\n    }\n  });\n\n  // show informer if offline\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('online', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    window.addEventListener('offline', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    setTimeout(_classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus], 3000);\n  }\n}\nfunction _createUpload2(fileIDs, opts) {\n  if (opts === void 0) {\n    opts = {};\n  }\n  // uppy.retryAll sets this to true \u2014 when retrying we want to ignore `allowNewUpload: false`\n  const {\n    forceAllowNewUpload = false\n  } = opts;\n  const {\n    allowNewUpload,\n    currentUploads\n  } = this.getState();\n  if (!allowNewUpload && !forceAllowNewUpload) {\n    throw new Error('Cannot create a new upload: already uploading.');\n  }\n  const uploadID = nanoid();\n  this.emit('upload', {\n    id: uploadID,\n    fileIDs\n  });\n  this.setState({\n    allowNewUpload: this.opts.allowMultipleUploadBatches !== false && this.opts.allowMultipleUploads !== false,\n    currentUploads: {\n      ...currentUploads,\n      [uploadID]: {\n        fileIDs,\n        step: 0,\n        result: {}\n      }\n    }\n  });\n  return uploadID;\n}\nfunction _getUpload2(uploadID) {\n  const {\n    currentUploads\n  } = this.getState();\n  return currentUploads[uploadID];\n}\nfunction _removeUpload2(uploadID) {\n  const currentUploads = {\n    ...this.getState().currentUploads\n  };\n  delete currentUploads[uploadID];\n  this.setState({\n    currentUploads\n  });\n}\nasync function _runUpload2(uploadID) {\n  const getCurrentUpload = () => {\n    const {\n      currentUploads\n    } = this.getState();\n    return currentUploads[uploadID];\n  };\n  let currentUpload = getCurrentUpload();\n  const steps = [..._classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors], ..._classPrivateFieldLooseBase(this, _uploaders)[_uploaders], ..._classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors]];\n  try {\n    for (let step = currentUpload.step || 0; step < steps.length; step++) {\n      if (!currentUpload) {\n        break;\n      }\n      const fn = steps[step];\n      this.setState({\n        currentUploads: {\n          ...this.getState().currentUploads,\n          [uploadID]: {\n            ...currentUpload,\n            step\n          }\n        }\n      });\n      const {\n        fileIDs\n      } = currentUpload;\n\n      // TODO give this the `updatedUpload` object as its only parameter maybe?\n      // Otherwise when more metadata may be added to the upload this would keep getting more parameters\n      await fn(fileIDs, uploadID);\n\n      // Update currentUpload value in case it was modified asynchronously.\n      currentUpload = getCurrentUpload();\n    }\n  } catch (err) {\n    _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n    throw err;\n  }\n\n  // Set result data.\n  if (currentUpload) {\n    // Mark postprocessing step as complete if necessary; this addresses a case where we might get\n    // stuck in the postprocessing UI while the upload is fully complete.\n    // If the postprocessing steps do not do any work, they may not emit postprocessing events at\n    // all, and never mark the postprocessing as complete. This is fine on its own but we\n    // introduced code in the @uppy/core upload-success handler to prepare postprocessing progress\n    // state if any postprocessors are registered. That is to avoid a \"flash of completed state\"\n    // before the postprocessing plugins can emit events.\n    //\n    // So, just in case an upload with postprocessing plugins *has* completed *without* emitting\n    // postprocessing completion, we do it instead.\n    currentUpload.fileIDs.forEach(fileID => {\n      const file = this.getFile(fileID);\n      if (file && file.progress.postprocess) {\n        this.emit('postprocess-complete', file);\n      }\n    });\n    const files = currentUpload.fileIDs.map(fileID => this.getFile(fileID));\n    const successful = files.filter(file => !file.error);\n    const failed = files.filter(file => file.error);\n    await this.addResultData(uploadID, {\n      successful,\n      failed,\n      uploadID\n    });\n\n    // Update currentUpload value in case it was modified asynchronously.\n    currentUpload = getCurrentUpload();\n  }\n  // Emit completion events.\n  // This is in a separate function so that the `currentUploads` variable\n  // always refers to the latest state. In the handler right above it refers\n  // to an outdated object without the `.result` property.\n  let result;\n  if (currentUpload) {\n    result = currentUpload.result;\n    this.emit('complete', result);\n    _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n  }\n  if (result == null) {\n    this.log(`Not setting result for an upload that has been removed: ${uploadID}`);\n  }\n  return result;\n}\nUppy.VERSION = packageJson.version;\nexport default Uppy;", "let urlAlphabet =\n  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n  return (size = defaultSize) => {\n    let id = ''\n    let i = size\n    while (i--) {\n      id += alphabet[(Math.random() * alphabet.length) | 0]\n    }\n    return id\n  }\n}\nexport let nanoid = (size = 21) => {\n  let id = ''\n  let i = size\n  while (i--) {\n    id += urlAlphabet[(Math.random() * 64) | 0]\n  }\n  return id\n}\n", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.2.0\"\n};\nvar _callbacks = /*#__PURE__*/_classPrivateFieldLooseKey(\"callbacks\");\nvar _publish = /*#__PURE__*/_classPrivateFieldLooseKey(\"publish\");\n/**\n * Default store that keeps state in a simple object.\n */\nclass DefaultStore {\n  constructor() {\n    Object.defineProperty(this, _publish, {\n      value: _publish2\n    });\n    this.state = {};\n    Object.defineProperty(this, _callbacks, {\n      writable: true,\n      value: new Set()\n    });\n  }\n  getState() {\n    return this.state;\n  }\n  setState(patch) {\n    const prevState = {\n      ...this.state\n    };\n    const nextState = {\n      ...this.state,\n      ...patch\n    };\n    this.state = nextState;\n    _classPrivateFieldLooseBase(this, _publish)[_publish](prevState, nextState, patch);\n  }\n  subscribe(listener) {\n    _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].add(listener);\n    return () => {\n      _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].delete(listener);\n    };\n  }\n}\nfunction _publish2() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].forEach(listener => {\n    listener(...args);\n  });\n}\nDefaultStore.VERSION = packageJson.version;\nexport default DefaultStore;", "/**\n * Takes a full filename string and returns an object {name, extension}\n */\nexport default function getFileNameAndExtension(fullFileName) {\n  const lastDot = fullFileName.lastIndexOf('.');\n  // these count as no extension: \"no-dot\", \"trailing-dot.\"\n  if (lastDot === -1 || lastDot === fullFileName.length - 1) {\n    return {\n      name: fullFileName,\n      extension: undefined\n    };\n  }\n  return {\n    name: fullFileName.slice(0, lastDot),\n    extension: fullFileName.slice(lastDot + 1)\n  };\n}", "// ___Why not add the mime-types package?\n//    It's 19.7kB gzipped, and we only need mime types for well-known extensions (for file previews).\n// ___Where to take new extensions from?\n//    https://github.com/jshttp/mime-db/blob/master/db.json\n\nexport default {\n  __proto__: null,\n  md: 'text/markdown',\n  markdown: 'text/markdown',\n  mp4: 'video/mp4',\n  mp3: 'audio/mp3',\n  svg: 'image/svg+xml',\n  jpg: 'image/jpeg',\n  png: 'image/png',\n  webp: 'image/webp',\n  gif: 'image/gif',\n  heic: 'image/heic',\n  heif: 'image/heif',\n  yaml: 'text/yaml',\n  yml: 'text/yaml',\n  csv: 'text/csv',\n  tsv: 'text/tab-separated-values',\n  tab: 'text/tab-separated-values',\n  avi: 'video/x-msvideo',\n  mks: 'video/x-matroska',\n  mkv: 'video/x-matroska',\n  mov: 'video/quicktime',\n  dicom: 'application/dicom',\n  doc: 'application/msword',\n  docm: 'application/vnd.ms-word.document.macroenabled.12',\n  docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n  dot: 'application/msword',\n  dotm: 'application/vnd.ms-word.template.macroenabled.12',\n  dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n  xla: 'application/vnd.ms-excel',\n  xlam: 'application/vnd.ms-excel.addin.macroenabled.12',\n  xlc: 'application/vnd.ms-excel',\n  xlf: 'application/x-xliff+xml',\n  xlm: 'application/vnd.ms-excel',\n  xls: 'application/vnd.ms-excel',\n  xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n  xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12',\n  xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n  xlt: 'application/vnd.ms-excel',\n  xltm: 'application/vnd.ms-excel.template.macroenabled.12',\n  xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n  xlw: 'application/vnd.ms-excel',\n  txt: 'text/plain',\n  text: 'text/plain',\n  conf: 'text/plain',\n  log: 'text/plain',\n  pdf: 'application/pdf',\n  zip: 'application/zip',\n  '7z': 'application/x-7z-compressed',\n  rar: 'application/x-rar-compressed',\n  tar: 'application/x-tar',\n  gz: 'application/gzip',\n  dmg: 'application/x-apple-diskimage'\n};", "import getFileNameAndExtension from \"./getFileNameAndExtension.js\";\nimport mimeTypes from \"./mimeTypes.js\";\nexport default function getFileType(file) {\n  var _getFileNameAndExtens;\n  if (file.type) return file.type;\n  const fileExtension = file.name ? (_getFileNameAndExtens = getFileNameAndExtension(file.name).extension) == null ? void 0 : _getFileNameAndExtens.toLowerCase() : null;\n  if (fileExtension && fileExtension in mimeTypes) {\n    // else, see if we can map extension to a mime type\n    return mimeTypes[fileExtension];\n  }\n  // if all fails, fall back to a generic byte stream type\n  return 'application/octet-stream';\n}", "import getFileType from \"./getFileType.js\";\nfunction encodeCharacter(character) {\n  return character.charCodeAt(0).toString(32);\n}\nfunction encodeFilename(name) {\n  let suffix = '';\n  return name.replace(/[^A-Z0-9]/gi, character => {\n    suffix += `-${encodeCharacter(character)}`;\n    return '/';\n  }) + suffix;\n}\n\n/**\n * Takes a file object and turns it into fileID, by converting file.name to lowercase,\n * removing extra characters and adding type, size and lastModified\n */\nexport default function generateFileID(file, instanceId) {\n  // It's tempting to do `[items].filter(Boolean).join('-')` here, but that\n  // is slower! simple string concatenation is fast\n\n  let id = instanceId || 'uppy';\n  if (typeof file.name === 'string') {\n    id += `-${encodeFilename(file.name.toLowerCase())}`;\n  }\n  if (file.type !== undefined) {\n    id += `-${file.type}`;\n  }\n  if (file.meta && typeof file.meta.relativePath === 'string') {\n    id += `-${encodeFilename(file.meta.relativePath.toLowerCase())}`;\n  }\n  if (file.data.size !== undefined) {\n    id += `-${file.data.size}`;\n  }\n  if (file.data.lastModified !== undefined) {\n    id += `-${file.data.lastModified}`;\n  }\n  return id;\n}\n\n// If the provider has a stable, unique ID, then we can use that to identify the file.\n// Then we don't have to generate our own ID, and we can add the same file many times if needed (different path)\nfunction hasFileStableId(file) {\n  if (!file.isRemote || !file.remote) return false;\n  // These are the providers that it seems like have stable IDs for their files. The other's I haven't checked yet.\n  const stableIdProviders = new Set(['box', 'dropbox', 'drive', 'facebook', 'unsplash']);\n  return stableIdProviders.has(file.remote.provider);\n}\nexport function getSafeFileId(file, instanceId) {\n  if (hasFileStableId(file)) return file.id;\n  const fileType = getFileType(file);\n  return generateFileID({\n    ...file,\n    type: fileType\n  }, instanceId);\n}", "// Edge 15.x does not fire 'progress' events on uploads.\n// See https://github.com/transloadit/uppy/issues/945\n// And https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12224510/\nexport default function supportsUploadProgress(userAgent) {\n  // Allow passing in userAgent for tests\n  if (userAgent == null && typeof navigator !== 'undefined') {\n    // eslint-disable-next-line no-param-reassign\n    userAgent = navigator.userAgent;\n  }\n  // Assume it works because basically everything supports progress events.\n  if (!userAgent) return true;\n  const m = /Edge\\/(\\d+\\.\\d+)/.exec(userAgent);\n  if (!m) return true;\n  const edgeVersion = m[1];\n  let [major, minor] = edgeVersion.split('.');\n  major = parseInt(major, 10);\n  minor = parseInt(minor, 10);\n\n  // Worked before:\n  // Edge 40.15063.0.0\n  // Microsoft EdgeHTML 15.15063\n  if (major < 15 || major === 15 && minor < 15063) {\n    return true;\n  }\n\n  // Fixed in:\n  // Microsoft EdgeHTML 18.18218\n  if (major > 18 || major === 18 && minor >= 18218) {\n    return true;\n  }\n\n  // other versions don't work.\n  return false;\n}", "export default function getFileName(fileType, fileDescriptor) {\n  if (fileDescriptor.name) {\n    return fileDescriptor.name;\n  }\n  if (fileType.split('/')[0] === 'image') {\n    return `${fileType.split('/')[0]}.${fileType.split('/')[1]}`;\n  }\n  return 'noname';\n}", "/**\n * Adds zero to strings shorter than two characters.\n */\nfunction pad(number) {\n  return number < 10 ? `0${number}` : number.toString();\n}\n\n/**\n * Returns a timestamp in the format of `hours:minutes:seconds`\n */\nexport default function getTimeStamp() {\n  const date = new Date();\n  const hours = pad(date.getHours());\n  const minutes = pad(date.getMinutes());\n  const seconds = pad(date.getSeconds());\n  return `${hours}:${minutes}:${seconds}`;\n}", "/* eslint-disable no-console */\nimport getTimeStamp from '@uppy/utils/lib/getTimeStamp';\n\n// Swallow all logs, except errors.\n// default if logger is not set or debug: false\nconst justErrorsLogger = {\n  debug: () => {},\n  warn: () => {},\n  error: function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return console.error(`[Uppy] [${getTimeStamp()}]`, ...args);\n  }\n};\n\n// Print logs to console with namespace + timestamp,\n// set by logger: Uppy.debugLogger or debug: true\nconst debugLogger = {\n  debug: function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return console.debug(`[Uppy] [${getTimeStamp()}]`, ...args);\n  },\n  warn: function () {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    return console.warn(`[Uppy] [${getTimeStamp()}]`, ...args);\n  },\n  error: function () {\n    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n    return console.error(`[Uppy] [${getTimeStamp()}]`, ...args);\n  }\n};\nexport { justErrorsLogger, debugLogger };", "/* eslint-disable max-classes-per-file, class-methods-use-this */\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport match from 'mime-match';\nconst defaultOptions = {\n  maxFileSize: null,\n  minFileSize: null,\n  maxTotalFileSize: null,\n  maxNumberOfFiles: null,\n  minNumberOfFiles: null,\n  allowedFileTypes: null,\n  requiredMetaFields: []\n};\nclass RestrictionError extends Error {\n  constructor(message, _temp) {\n    let {\n      isUserFacing = true,\n      file\n    } = _temp === void 0 ? {} : _temp;\n    super(message);\n    this.isRestriction = true;\n    this.isUserFacing = isUserFacing;\n    if (file != null) this.file = file; // only some restriction errors are related to a particular file\n  }\n}\n\nclass Restricter {\n  constructor(getOpts, i18n) {\n    this.i18n = i18n;\n    this.getOpts = () => {\n      const opts = getOpts();\n      if (opts.restrictions.allowedFileTypes != null && !Array.isArray(opts.restrictions.allowedFileTypes)) {\n        throw new TypeError('`restrictions.allowedFileTypes` must be an array');\n      }\n      return opts;\n    };\n  }\n\n  // Because these operations are slow, we cannot run them for every file (if we are adding multiple files)\n  validateAggregateRestrictions(existingFiles, addingFiles) {\n    const {\n      maxTotalFileSize,\n      maxNumberOfFiles\n    } = this.getOpts().restrictions;\n    if (maxNumberOfFiles) {\n      const nonGhostFiles = existingFiles.filter(f => !f.isGhost);\n      if (nonGhostFiles.length + addingFiles.length > maxNumberOfFiles) {\n        throw new RestrictionError(`${this.i18n('youCanOnlyUploadX', {\n          smart_count: maxNumberOfFiles\n        })}`);\n      }\n    }\n    if (maxTotalFileSize) {\n      let totalFilesSize = existingFiles.reduce((total, f) => total + f.size, 0);\n      for (const addingFile of addingFiles) {\n        if (addingFile.size != null) {\n          // We can't check maxTotalFileSize if the size is unknown.\n          totalFilesSize += addingFile.size;\n          if (totalFilesSize > maxTotalFileSize) {\n            throw new RestrictionError(this.i18n('exceedsSize', {\n              size: prettierBytes(maxTotalFileSize),\n              file: addingFile.name\n            }));\n          }\n        }\n      }\n    }\n  }\n  validateSingleFile(file) {\n    const {\n      maxFileSize,\n      minFileSize,\n      allowedFileTypes\n    } = this.getOpts().restrictions;\n    if (allowedFileTypes) {\n      const isCorrectFileType = allowedFileTypes.some(type => {\n        // check if this is a mime-type\n        if (type.includes('/')) {\n          if (!file.type) return false;\n          return match(file.type.replace(/;.*?$/, ''), type);\n        }\n\n        // otherwise this is likely an extension\n        if (type[0] === '.' && file.extension) {\n          return file.extension.toLowerCase() === type.slice(1).toLowerCase();\n        }\n        return false;\n      });\n      if (!isCorrectFileType) {\n        const allowedFileTypesString = allowedFileTypes.join(', ');\n        throw new RestrictionError(this.i18n('youCanOnlyUploadFileTypes', {\n          types: allowedFileTypesString\n        }), {\n          file\n        });\n      }\n    }\n\n    // We can't check maxFileSize if the size is unknown.\n    if (maxFileSize && file.size != null && file.size > maxFileSize) {\n      throw new RestrictionError(this.i18n('exceedsSize', {\n        size: prettierBytes(maxFileSize),\n        file: file.name\n      }), {\n        file\n      });\n    }\n\n    // We can't check minFileSize if the size is unknown.\n    if (minFileSize && file.size != null && file.size < minFileSize) {\n      throw new RestrictionError(this.i18n('inferiorSize', {\n        size: prettierBytes(minFileSize)\n      }), {\n        file\n      });\n    }\n  }\n  validate(existingFiles, addingFiles) {\n    addingFiles.forEach(addingFile => {\n      this.validateSingleFile(addingFile);\n    });\n    this.validateAggregateRestrictions(existingFiles, addingFiles);\n  }\n  validateMinNumberOfFiles(files) {\n    const {\n      minNumberOfFiles\n    } = this.getOpts().restrictions;\n    if (Object.keys(files).length < minNumberOfFiles) {\n      throw new RestrictionError(this.i18n('youHaveToAtLeastSelectX', {\n        smart_count: minNumberOfFiles\n      }));\n    }\n  }\n  getMissingRequiredMetaFields(file) {\n    const error = new RestrictionError(this.i18n('missingRequiredMetaFieldOnFile', {\n      fileName: file.name\n    }));\n    const {\n      requiredMetaFields\n    } = this.getOpts().restrictions;\n    const missingFields = [];\n    for (const field of requiredMetaFields) {\n      if (!Object.hasOwn(file.meta, field) || file.meta[field] === '') {\n        missingFields.push(field);\n      }\n    }\n    return {\n      missingFields,\n      error\n    };\n  }\n}\nexport { Restricter, defaultOptions, RestrictionError };", "export default {\n  strings: {\n    addBulkFilesFailed: {\n      0: 'Failed to add %{smart_count} file due to an internal error',\n      1: 'Failed to add %{smart_count} files due to internal errors'\n    },\n    youCanOnlyUploadX: {\n      0: 'You can only upload %{smart_count} file',\n      1: 'You can only upload %{smart_count} files'\n    },\n    youHaveToAtLeastSelectX: {\n      0: 'You have to select at least %{smart_count} file',\n      1: 'You have to select at least %{smart_count} files'\n    },\n    exceedsSize: '%{file} exceeds maximum allowed size of %{size}',\n    missingRequiredMetaField: 'Missing required meta fields',\n    missingRequiredMetaFieldOnFile: 'Missing required meta fields in %{fileName}',\n    inferiorSize: 'This file is smaller than the allowed size of %{size}',\n    youCanOnlyUploadFileTypes: 'You can only upload: %{types}',\n    noMoreFilesAllowed: 'Cannot add more files',\n    noDuplicates: \"Cannot add the duplicate file '%{fileName}', it already exists\",\n    companionError: 'Connection with Companion failed',\n    authAborted: 'Authentication aborted',\n    companionUnauthorizeHint: 'To unauthorize to your %{provider} account, please go to %{url}',\n    failedToUpload: 'Failed to upload %{file}',\n    noInternetConnection: 'No Internet connection',\n    connectedToInternet: 'Connected to the Internet',\n    // Strings for remote providers\n    noFilesFound: 'You have no files or folders here',\n    noSearchResults: 'Unfortunately, there are no results for this search',\n    selectX: {\n      0: 'Select %{smart_count}',\n      1: 'Select %{smart_count}'\n    },\n    allFilesFromFolderNamed: 'All files from folder %{name}',\n    openFolderNamed: 'Open folder %{name}',\n    cancel: 'Cancel',\n    logOut: 'Log out',\n    filter: 'Filter',\n    resetFilter: 'Reset filter',\n    loading: 'Loading...',\n    loadedXFiles: 'Loaded %{numFiles} files',\n    authenticateWithTitle: 'Please authenticate with %{pluginName} to select files',\n    authenticateWith: 'Connect to %{pluginName}',\n    signInWithGoogle: 'Sign in with Google',\n    searchImages: 'Search for images',\n    enterTextToSearch: 'Enter text to search for images',\n    search: 'Search',\n    resetSearch: 'Reset search',\n    emptyFolderAdded: 'No files were added from empty folder',\n    addedNumFiles: 'Added %{numFiles} file(s)',\n    folderAlreadyAdded: 'The folder \"%{folder}\" was already added',\n    folderAdded: {\n      0: 'Added %{smart_count} file from %{folder}',\n      1: 'Added %{smart_count} files from %{folder}'\n    },\n    additionalRestrictionsFailed: '%{count} additional restrictions were not fulfilled'\n  }\n};", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {preact.ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the\n * virtual node\n * @returns {VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor == undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tparentDom = component._parentDom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {Component} a\n * @param {Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Component[]} */\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType =\n\t\tcontext);\n}\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR, INSERT_VNODE, MATCHED } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\tnewParentVNode._nextDom = oldDom;\n\tconstructNewChildrenArray(newParentVNode, renderResult, oldChildren);\n\toldDom = newParentVNode._nextDom;\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (\n\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\tchildVNode._nextDom !== undefined\n\t\t) {\n\t\t\t// Since Fragments or components that return Fragment like VNodes can\n\t\t\t// contain multiple DOM nodes as the same level, continue the diff from\n\t\t\t// the sibling of last DOM child of this child VNode\n\t\t\toldDom = childVNode._nextDom;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because it\n\t\t// is only used by `diffChildren` to determine where to resume the diff\n\t\t// after diffing Components and Fragments. Once we store it the nextDOM\n\t\t// local var, we can clean up the property. Also prevents us hanging on to\n\t\t// DOM nodes that may have been unmounted.\n\t\tchildVNode._nextDom = undefined;\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\t// TODO: With new child diffing algo, consider alt ways to diff Fragments.\n\t// Such as dropping oldDom and moving fragments in place\n\t//\n\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t// _nextDom property to the nextSibling of its last child DOM node.\n\t//\n\t// `oldDom` contains the correct value here because if the last child\n\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t// node's nextSibling.\n\tnewParentVNode._nextDom = oldDom;\n\tnewParentVNode._dom = firstChildDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(newParentVNode, renderResult, oldChildren) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tconst newChildrenLength = renderResult.length;\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === undefined && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t//   const reuse = <div />\n\t\t\t//   <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Handle unmounting null placeholders, i.e. VNode => null in unkeyed children\n\t\tif (childVNode == null) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode && oldVNode.key == null && oldVNode._dom) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode, false);\n\n\t\t\t\t// Explicitly nullify this position in oldChildren instead of just\n\t\t\t\t// setting `_match=true` to prevent other routines (e.g.\n\t\t\t\t// `findMatchingIndex` or `getDomSibling`) from thinking VNodes or DOM\n\t\t\t\t// nodes in this position are still available to be used in diffing when\n\t\t\t\t// they have actually already been unmounted. For example, by only\n\t\t\t\t// setting `_match=true` here, the unmounting loop later would attempt\n\t\t\t\t// to unmount this VNode again seeing `_match==true`.  Further,\n\t\t\t\t// getDomSibling doesn't know about _match and so would incorrectly\n\t\t\t\t// assume DOM nodes in this subtree are mounted and usable.\n\t\t\t\toldChildren[i] = null;\n\t\t\t\tremainingOldChildren--;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\tconst skewedIndex = i + skew;\n\t\tconst matchingIndex = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t);\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tchildVNode._index = matchingIndex;\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\tif (matchingIndex === skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else if (matchingIndex > skewedIndex) {\n\t\t\t\tif (remainingOldChildren > newChildrenLength - skewedIndex) {\n\t\t\t\t\tskew += matchingIndex - skewedIndex;\n\t\t\t\t} else {\n\t\t\t\t\t// ### Change from keyed: I think this was missing from the algo...\n\t\t\t\t\tskew--;\n\t\t\t\t}\n\t\t\t} else if (matchingIndex < skewedIndex) {\n\t\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\t\tskew = matchingIndex - skewedIndex;\n\t\t\t\t} else {\n\t\t\t\t\tskew = 0;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tskew = 0;\n\t\t\t}\n\n\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t// match the new skew index (i + new skew)\n\t\t\tif (matchingIndex !== i + skew) {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) === 0) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\treturn oldDom && oldDom.nextSibling;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet x = skewedIndex - 1;\n\tlet y = skewedIndex + 1;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\tlet shouldSearch =\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) === 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode && key == oldVNode.key && type === oldVNode.type)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n", "import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture =\n\t\t\tname !== (name = name.replace(/(PointerCapture)$|Capture$/, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = Date.now();\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'width' &&\n\t\t\tname !== 'height' &&\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname !== 'rowSpan' &&\n\t\t\tname !== 'colSpan' &&\n\t\t\tname !== 'role' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] === '-')) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {PreactEvent} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tconst eventHandler = this._listeners[e.type + false];\n\t/**\n\t * This trick is inspired by Vue https://github.com/vuejs/core/blob/main/packages/runtime-dom/src/modules/events.ts#L90-L101\n\t * when the dom performs an event it leaves micro-ticks in between bubbling up which means that an event can trigger on a newly\n\t * created DOM-node while the event bubbles up, this can cause quirky behavior as seen in https://github.com/preactjs/preact/issues/3927\n\t */\n\tif (!e._dispatched) {\n\t\t// When an event has no _dispatched we know this is the first event-target in the chain\n\t\t// so we set the initial dispatched time.\n\t\te._dispatched = Date.now();\n\t\t// When the _dispatched is smaller than the time when the targetted event handler was attached\n\t\t// we know we have bubbled up to an element that was added during patching the dom.\n\t} else if (e._dispatched <= eventHandler._attached) {\n\t\treturn;\n\t}\n\treturn eventHandler(options.event ? options.event(e) : e);\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {PreactEvent} e The event object from the browser\n * @private\n */\nfunction eventProxyCapture(e) {\n\treturn this._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n", "import {\n\tEMPTY_OBJ,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original === oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t: MODE_HYDRATE;\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\t// ^ could possibly be simplified to:\n\t\t\t\t// excessDomChildren.length = 0;\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original === oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\tnewVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n}\n\n/**\n * @param {Array<Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\troot._nextDom = undefined;\n\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value === !!nodeType &&\n\t\t\t\t(nodeType ? value.localName === nodeType : value.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS('http://www.w3.org/2000/svg', nodeType);\n\t\t} else {\n\t\t\tdom = document.createElement(nodeType, newProps.is && newProps);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (i !== 'key' && !(i in newProps)) {\n\t\t\t\tsetProperty(dom, i, null, value, isSvg);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\ti !== 'key' &&\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], isSvg);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (\n\t\t\t\tinputValue !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType === 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && inputValue !== oldProps[i]))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, inputValue, oldProps[i], false);\n\t\t\t}\n\n\t\t\ti = 'checked';\n\t\t\tif (checked !== undefined && checked !== dom[i]) {\n\t\t\t\tsetProperty(dom, i, checked, oldProps[i], false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {Ref<any>} ref\n * @param {any} value\n * @param {VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {VNode} vnode The virtual node to unmount\n * @param {VNode} parentVNode The parent of the VNode that initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t\tvnode._component = undefined;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type !== 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n", "import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to render into\n * @param {PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating && replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n", "import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<ComponentChildren>} rest Any additional arguments will be used\n * as replacement children.\n * @returns {VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\n\tlet defaultProps;\n\n\tif (vnode.type && vnode.type.defaultProps) {\n\t\tdefaultProps = vnode.type.defaultProps;\n\t}\n\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse if (props[i] === undefined && defaultProps !== undefined) {\n\t\t\tnormalizedProps[i] = defaultProps[i];\n\t\t} else {\n\t\t\tnormalizedProps[i] = props[i];\n\t\t}\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n", "/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {VNode} [oldVNode]\n * @param {ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {Component} */\n\tlet component,\n\t\t/** @type {ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n", "/**\n * Check if an object is a DOM element. Duck-typing based on `nodeType`.\n */\nexport default function isDOMElement(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  if (!('nodeType' in obj)) return false;\n  return obj.nodeType === Node.ELEMENT_NODE;\n}", "import isDOMElement from \"./isDOMElement.js\";\nfunction findDOMElement(element, context) {\n  if (context === void 0) {\n    context = document;\n  }\n  if (typeof element === 'string') {\n    return context.querySelector(element);\n  }\n  if (isDOMElement(element)) {\n    return element;\n  }\n  return null;\n}\nexport default findDOMElement;", "/**\n * Get the declared text direction for an element.\n */\n\nfunction getTextDirection(element) {\n  var _element;\n  // There is another way to determine text direction using getComputedStyle(), as done here:\n  // https://github.com/pencil-js/text-direction/blob/2a235ce95089b3185acec3b51313cbba921b3811/text-direction.js\n  //\n  // We do not use that approach because we are interested specifically in the _declared_ text direction.\n  // If no text direction is declared, we have to provide our own explicit text direction so our\n  // bidirectional CSS style sheets work.\n  while (element && !element.dir) {\n    // eslint-disable-next-line no-param-reassign\n    element = element.parentNode;\n  }\n  return (_element = element) == null ? void 0 : _element.dir;\n}\nexport default getTextDirection;", "/**\n * Core plugin logic that all plugins share.\n *\n * BasePlugin does not contain DOM rendering so it can be used for plugins\n * without a user interface.\n *\n * See `Plugin` for the extended version with Preact rendering for interfaces.\n */\n\nimport Translator from '@uppy/utils/lib/Translator';\nexport default class BasePlugin {\n  constructor(uppy, opts) {\n    if (opts === void 0) {\n      opts = {};\n    }\n    this.uppy = uppy;\n    this.opts = opts;\n  }\n  getPluginState() {\n    const {\n      plugins\n    } = this.uppy.getState();\n    return plugins[this.id] || {};\n  }\n  setPluginState(update) {\n    const {\n      plugins\n    } = this.uppy.getState();\n    this.uppy.setState({\n      plugins: {\n        ...plugins,\n        [this.id]: {\n          ...plugins[this.id],\n          ...update\n        }\n      }\n    });\n  }\n  setOptions(newOpts) {\n    this.opts = {\n      ...this.opts,\n      ...newOpts\n    };\n    this.setPluginState(); // so that UI re-renders with new options\n    this.i18nInit();\n  }\n  i18nInit() {\n    const onMissingKey = key => this.uppy.log(`Missing i18n string: ${key}`, 'error');\n    const translator = new Translator([this.defaultLocale, this.uppy.locale, this.opts.locale], {\n      onMissingKey\n    });\n    this.i18n = translator.translate.bind(translator);\n    this.i18nArray = translator.translateArray.bind(translator);\n    this.setPluginState(); // so that UI re-renders and we see the updated locale\n  }\n\n  /**\n   * Extendable methods\n   * ==================\n   * These methods are here to serve as an overview of the extendable methods as well as\n   * making them not conditional in use, such as `if (this.afterUpdate)`.\n   */\n\n  // eslint-disable-next-line class-methods-use-this\n  addTarget() {\n    throw new Error('Extend the addTarget method to add your plugin to another plugin\\'s target');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  install() {}\n\n  // eslint-disable-next-line class-methods-use-this\n  uninstall() {}\n\n  /**\n   * Called when plugin is mounted, whether in DOM or into another plugin.\n   * Needed because sometimes plugins are mounted separately/after `install`,\n   * so this.el and this.parent might not be available in `install`.\n   * This is the case with @uppy/react plugins, for example.\n   */\n  render() {\n    throw new Error('Extend the render method to add your plugin to a DOM element');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  update() {}\n\n  // Called after every state update, after everything's mounted. Debounced.\n  // eslint-disable-next-line class-methods-use-this\n  afterUpdate() {}\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { render } from 'preact';\nimport findDOMElement from '@uppy/utils/lib/findDOMElement';\nimport getTextDirection from '@uppy/utils/lib/getTextDirection';\nimport BasePlugin from './BasePlugin.js';\n\n/**\n * Defer a frequent call to the microtask queue.\n *\n * @param {() => T} fn\n * @returns {Promise<T>}\n */\nfunction debounce(fn) {\n  let calling = null;\n  let latestArgs = null;\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    latestArgs = args;\n    if (!calling) {\n      calling = Promise.resolve().then(() => {\n        calling = null;\n        // At this point `args` may be different from the most\n        // recent state, if multiple calls happened since this task\n        // was queued. So we use the `latestArgs`, which definitely\n        // is the most recent call.\n        return fn(...latestArgs);\n      });\n    }\n    return calling;\n  };\n}\n\n/**\n * UIPlugin is the extended version of BasePlugin to incorporate rendering with Preact.\n * Use this for plugins that need a user interface.\n *\n * For plugins without an user interface, see BasePlugin.\n */\nvar _updateUI = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateUI\");\nclass UIPlugin extends BasePlugin {\n  constructor() {\n    super(...arguments);\n    Object.defineProperty(this, _updateUI, {\n      writable: true,\n      value: void 0\n    });\n  }\n  getTargetPlugin(target) {\n    let targetPlugin;\n    if (typeof target === 'object' && target instanceof UIPlugin) {\n      // Targeting a plugin *instance*\n      targetPlugin = target;\n    } else if (typeof target === 'function') {\n      // Targeting a plugin type\n      const Target = target;\n      // Find the target plugin instance.\n      this.uppy.iteratePlugins(p => {\n        if (p instanceof Target) {\n          targetPlugin = p;\n        }\n      });\n    }\n    return targetPlugin;\n  }\n\n  /**\n   * Check if supplied `target` is a DOM element or an `object`.\n   * If it\u2019s an object \u2014 target is a plugin, and we search `plugins`\n   * for a plugin with same name and return its target.\n   */\n  mount(target, plugin) {\n    const callerPluginName = plugin.id;\n    const targetElement = findDOMElement(target);\n    if (targetElement) {\n      this.isTargetDOMEl = true;\n      // When target is <body> with a single <div> element,\n      // Preact thinks it\u2019s the Uppy root element in there when doing a diff,\n      // and destroys it. So we are creating a fragment (could be empty div)\n      const uppyRootElement = document.createElement('div');\n      uppyRootElement.classList.add('uppy-Root');\n\n      // API for plugins that require a synchronous rerender.\n      _classPrivateFieldLooseBase(this, _updateUI)[_updateUI] = debounce(state => {\n        // plugin could be removed, but this.rerender is debounced below,\n        // so it could still be called even after uppy.removePlugin or uppy.close\n        // hence the check\n        if (!this.uppy.getPlugin(this.id)) return;\n        render(this.render(state), uppyRootElement);\n        this.afterUpdate();\n      });\n      this.uppy.log(`Installing ${callerPluginName} to a DOM element '${target}'`);\n      if (this.opts.replaceTargetContent) {\n        // Doing render(h(null), targetElement), which should have been\n        // a better way, since because the component might need to do additional cleanup when it is removed,\n        // stopped working \u2014 Preact just adds null into target, not replacing\n        targetElement.innerHTML = '';\n      }\n      render(this.render(this.uppy.getState()), uppyRootElement);\n      this.el = uppyRootElement;\n      targetElement.appendChild(uppyRootElement);\n\n      // Set the text direction if the page has not defined one.\n      uppyRootElement.dir = this.opts.direction || getTextDirection(uppyRootElement) || 'ltr';\n      this.onMount();\n      return this.el;\n    }\n    const targetPlugin = this.getTargetPlugin(target);\n    if (targetPlugin) {\n      this.uppy.log(`Installing ${callerPluginName} to ${targetPlugin.id}`);\n      this.parent = targetPlugin;\n      this.el = targetPlugin.addTarget(plugin);\n      this.onMount();\n      return this.el;\n    }\n    this.uppy.log(`Not installing ${callerPluginName}`);\n    let message = `Invalid target option given to ${callerPluginName}.`;\n    if (typeof target === 'function') {\n      message += ' The given target is not a Plugin class. ' + 'Please check that you\\'re not specifying a React Component instead of a plugin. ' + 'If you are using @uppy/* packages directly, make sure you have only 1 version of @uppy/core installed: ' + 'run `npm ls @uppy/core` on the command line and verify that all the versions match and are deduped correctly.';\n    } else {\n      message += 'If you meant to target an HTML element, please make sure that the element exists. ' + 'Check that the <script> tag initializing Uppy is right before the closing </body> tag at the end of the page. ' + '(see https://github.com/transloadit/uppy/issues/1042)\\n\\n' + 'If you meant to target a plugin, please confirm that your `import` statements or `require` calls are correct.';\n    }\n    throw new Error(message);\n  }\n  update(state) {\n    if (this.el != null) {\n      var _classPrivateFieldLoo, _classPrivateFieldLoo2;\n      (_classPrivateFieldLoo = (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _updateUI))[_updateUI]) == null ? void 0 : _classPrivateFieldLoo.call(_classPrivateFieldLoo2, state);\n    }\n  }\n  unmount() {\n    if (this.isTargetDOMEl) {\n      var _this$el;\n      (_this$el = this.el) == null ? void 0 : _this$el.remove();\n    }\n    this.onUnmount();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  onMount() {}\n\n  // eslint-disable-next-line class-methods-use-this\n  onUnmount() {}\n}\nexport default UIPlugin;", "/**\n * Low-pass filter using Exponential Moving Averages (aka exponential smoothing)\n * Filters a sequence of values by updating the mixing the previous output value\n * with the new input using the exponential window function\n *\n * @param newValue the n-th value of the sequence\n * @param previousSmoothedValue the exponential average of the first n-1 values\n * @param halfLife value of `dt` to move the smoothed value halfway between `previousFilteredValue` and `newValue`\n * @param dt time elapsed between adding the (n-1)th and the n-th values\n * @returns the exponential average of the first n values\n */\nexport default function emaFilter(newValue, previousSmoothedValue, halfLife, dt) {\n  if (halfLife === 0 || newValue === previousSmoothedValue) return newValue;\n  if (dt === 0) return previousSmoothedValue;\n  return newValue + (previousSmoothedValue - newValue) * 2 ** (-dt / halfLife);\n}", "export default {\n  STATE_ERROR: 'error',\n  STATE_WAITING: 'waiting',\n  STATE_PREPROCESSING: 'preprocessing',\n  STATE_UPLOADING: 'uploading',\n  STATE_POSTPROCESSING: 'postprocessing',\n  STATE_COMPLETE: 'complete'\n};", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport statusBarStates from \"./StatusBarStates.js\";\nimport calculateProcessingProgress from \"./calculateProcessingProgress.js\";\nimport { UploadBtn, RetryBtn, CancelBtn, PauseResumeButton, DoneBtn, ProgressBarProcessing, ProgressBarError, ProgressBarUploading, ProgressBarComplete } from \"./Components.js\";\nconst {\n  STATE_ERROR,\n  STATE_WAITING,\n  STATE_PREPROCESSING,\n  STATE_UPLOADING,\n  STATE_POSTPROCESSING,\n  STATE_COMPLETE\n} = statusBarStates;\n// TODO: rename the function to StatusBarUI on the next major.\nexport default function StatusBar(props) {\n  const {\n    newFiles,\n    allowNewUpload,\n    isUploadInProgress,\n    isAllPaused,\n    resumableUploads,\n    error,\n    hideUploadButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    hideRetryButton,\n    recoveredState,\n    uploadState,\n    totalProgress,\n    files,\n    supportsUploadProgress,\n    hideAfterFinish,\n    isSomeGhost,\n    doneButtonHandler,\n    isUploadStarted,\n    i18n,\n    startUpload,\n    uppy,\n    isAllComplete,\n    showProgressDetails,\n    numUploads,\n    complete,\n    totalSize,\n    totalETA,\n    totalUploadedSize\n  } = props;\n  function getProgressValue() {\n    switch (uploadState) {\n      case STATE_POSTPROCESSING:\n      case STATE_PREPROCESSING:\n        {\n          const progress = calculateProcessingProgress(files);\n          if (progress.mode === 'determinate') {\n            return progress.value * 100;\n          }\n          return totalProgress;\n        }\n      case STATE_ERROR:\n        {\n          return null;\n        }\n      case STATE_UPLOADING:\n        {\n          if (!supportsUploadProgress) {\n            return null;\n          }\n          return totalProgress;\n        }\n      default:\n        return totalProgress;\n    }\n  }\n  function getIsIndeterminate() {\n    switch (uploadState) {\n      case STATE_POSTPROCESSING:\n      case STATE_PREPROCESSING:\n        {\n          const {\n            mode\n          } = calculateProcessingProgress(files);\n          return mode === 'indeterminate';\n        }\n      case STATE_UPLOADING:\n        {\n          if (!supportsUploadProgress) {\n            return true;\n          }\n          return false;\n        }\n      default:\n        return false;\n    }\n  }\n  function getIsHidden() {\n    if (recoveredState) {\n      return false;\n    }\n    switch (uploadState) {\n      case STATE_WAITING:\n        return hideUploadButton || newFiles === 0;\n      case STATE_COMPLETE:\n        return hideAfterFinish;\n      default:\n        return false;\n    }\n  }\n  const progressValue = getProgressValue();\n  const isHidden = getIsHidden();\n  const width = progressValue != null ? progressValue : 100;\n  const showUploadBtn = !error && newFiles && !isUploadInProgress && !isAllPaused && allowNewUpload && !hideUploadButton;\n  const showCancelBtn = !hideCancelButton && uploadState !== STATE_WAITING && uploadState !== STATE_COMPLETE;\n  const showPauseResumeBtn = resumableUploads && !hidePauseResumeButton && uploadState === STATE_UPLOADING;\n  const showRetryBtn = error && !isAllComplete && !hideRetryButton;\n  const showDoneBtn = doneButtonHandler && uploadState === STATE_COMPLETE;\n  const progressClassNames = classNames('uppy-StatusBar-progress', {\n    'is-indeterminate': getIsIndeterminate()\n  });\n  const statusBarClassNames = classNames('uppy-StatusBar', `is-${uploadState}`, {\n    'has-ghosts': isSomeGhost\n  });\n  return h(\"div\", {\n    className: statusBarClassNames,\n    \"aria-hidden\": isHidden\n  }, h(\"div\", {\n    className: progressClassNames,\n    style: {\n      width: `${width}%`\n    },\n    role: \"progressbar\",\n    \"aria-label\": `${width}%`,\n    \"aria-valuetext\": `${width}%`,\n    \"aria-valuemin\": 0,\n    \"aria-valuemax\": 100,\n    \"aria-valuenow\": progressValue\n  }), (() => {\n    switch (uploadState) {\n      case STATE_PREPROCESSING:\n      case STATE_POSTPROCESSING:\n        return h(ProgressBarProcessing, {\n          progress: calculateProcessingProgress(files)\n        });\n      case STATE_COMPLETE:\n        return h(ProgressBarComplete, {\n          i18n: i18n\n        });\n      case STATE_ERROR:\n        return h(ProgressBarError, {\n          error: error,\n          i18n: i18n,\n          numUploads: numUploads,\n          complete: complete\n        });\n      case STATE_UPLOADING:\n        return h(ProgressBarUploading, {\n          i18n: i18n,\n          supportsUploadProgress: supportsUploadProgress,\n          totalProgress: totalProgress,\n          showProgressDetails: showProgressDetails,\n          isUploadStarted: isUploadStarted,\n          isAllComplete: isAllComplete,\n          isAllPaused: isAllPaused,\n          newFiles: newFiles,\n          numUploads: numUploads,\n          complete: complete,\n          totalUploadedSize: totalUploadedSize,\n          totalSize: totalSize,\n          totalETA: totalETA,\n          startUpload: startUpload\n        });\n      default:\n        return null;\n    }\n  })(), h(\"div\", {\n    className: \"uppy-StatusBar-actions\"\n  }, recoveredState || showUploadBtn ? h(UploadBtn, {\n    newFiles: newFiles,\n    isUploadStarted: isUploadStarted,\n    recoveredState: recoveredState,\n    i18n: i18n,\n    isSomeGhost: isSomeGhost,\n    startUpload: startUpload,\n    uploadState: uploadState\n  }) : null, showRetryBtn ? h(RetryBtn, {\n    i18n: i18n,\n    uppy: uppy\n  }) : null, showPauseResumeBtn ? h(PauseResumeButton, {\n    isAllPaused: isAllPaused,\n    i18n: i18n,\n    isAllComplete: isAllComplete,\n    resumableUploads: resumableUploads,\n    uppy: uppy\n  }) : null, showCancelBtn ? h(CancelBtn, {\n    i18n: i18n,\n    uppy: uppy\n  }) : null, showDoneBtn ? h(DoneBtn, {\n    i18n: i18n,\n    doneButtonHandler: doneButtonHandler\n  }) : null));\n}\nStatusBar.defaultProps = {\n  doneButtonHandler: undefined,\n  hideAfterFinish: false,\n  hideCancelButton: false,\n  hidePauseResumeButton: false,\n  hideRetryButton: false,\n  hideUploadButton: undefined,\n  showProgressDetails: undefined\n};", "export default function calculateProcessingProgress(files) {\n  const values = [];\n  let mode = 'indeterminate';\n  let message;\n  for (const {\n    progress\n  } of Object.values(files)) {\n    const {\n      preprocess,\n      postprocess\n    } = progress;\n    // In the future we should probably do this differently. For now we'll take the\n    // mode and message from the first file\u2026\n    if (message == null && (preprocess || postprocess)) {\n      ;\n      ({\n        mode,\n        message\n      } = preprocess || postprocess);\n    }\n    if ((preprocess == null ? void 0 : preprocess.mode) === 'determinate') values.push(preprocess.value);\n    if ((postprocess == null ? void 0 : postprocess.mode) === 'determinate') values.push(postprocess.value);\n  }\n  const value = values.reduce((total, progressValue) => {\n    return total + progressValue / values.length;\n  }, 0);\n  return {\n    mode,\n    message,\n    value\n  };\n}", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport prettyETA from '@uppy/utils/lib/prettyETA';\nimport statusBarStates from \"./StatusBarStates.js\";\nconst DOT = `\\u00B7`;\nconst renderDot = () => ` ${DOT} `;\nfunction UploadBtn(props) {\n  const {\n    newFiles,\n    isUploadStarted,\n    recoveredState,\n    i18n,\n    uploadState,\n    isSomeGhost,\n    startUpload\n  } = props;\n  const uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--upload', {\n    'uppy-c-btn-primary': uploadState === statusBarStates.STATE_WAITING\n  }, {\n    'uppy-StatusBar-actionBtn--disabled': isSomeGhost\n  });\n  const uploadBtnText = newFiles && isUploadStarted && !recoveredState ? i18n('uploadXNewFiles', {\n    smart_count: newFiles\n  }) : i18n('uploadXFiles', {\n    smart_count: newFiles\n  });\n  return h(\"button\", {\n    type: \"button\",\n    className: uploadBtnClassNames,\n    \"aria-label\": i18n('uploadXFiles', {\n      smart_count: newFiles\n    }),\n    onClick: startUpload,\n    disabled: isSomeGhost,\n    \"data-uppy-super-focusable\": true\n  }, uploadBtnText);\n}\nfunction RetryBtn(props) {\n  const {\n    i18n,\n    uppy\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--retry\",\n    \"aria-label\": i18n('retryUpload'),\n    onClick: () => uppy.retryAll().catch(() => {\n      /* Error reported and handled via an event */\n    }),\n    \"data-uppy-super-focusable\": true,\n    \"data-cy\": \"retry\"\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"8\",\n    height: \"10\",\n    viewBox: \"0 0 8 10\"\n  }, h(\"path\", {\n    d: \"M4 2.408a2.75 2.75 0 1 0 2.75 2.75.626.626 0 0 1 1.25.018v.023a4 4 0 1 1-4-4.041V.25a.25.25 0 0 1 .389-.208l2.299 1.533a.25.25 0 0 1 0 .416l-2.3 1.533A.25.25 0 0 1 4 3.316v-.908z\"\n  })), i18n('retry'));\n}\nfunction CancelBtn(props) {\n  const {\n    i18n,\n    uppy\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n    title: i18n('cancel'),\n    \"aria-label\": i18n('cancel'),\n    onClick: () => uppy.cancelAll(),\n    \"data-cy\": \"cancel\",\n    \"data-uppy-super-focusable\": true\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\"\n  }, h(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#888\",\n    cx: \"8\",\n    cy: \"8\",\n    r: \"8\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: \"M9.283 8l2.567 2.567-1.283 1.283L8 9.283 5.433 11.85 4.15 10.567 6.717 8 4.15 5.433 5.433 4.15 8 6.717l2.567-2.567 1.283 1.283z\"\n  }))));\n}\nfunction PauseResumeButton(props) {\n  const {\n    isAllPaused,\n    i18n,\n    isAllComplete,\n    resumableUploads,\n    uppy\n  } = props;\n  const title = isAllPaused ? i18n('resume') : i18n('pause');\n  function togglePauseResume() {\n    if (isAllComplete) return;\n    if (!resumableUploads) {\n      uppy.cancelAll();\n      return;\n    }\n    if (isAllPaused) {\n      uppy.resumeAll();\n      return;\n    }\n    uppy.pauseAll();\n  }\n  return h(\"button\", {\n    title: title,\n    \"aria-label\": title,\n    className: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n    type: \"button\",\n    onClick: togglePauseResume,\n    \"data-cy\": \"togglePauseResume\",\n    \"data-uppy-super-focusable\": true\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\"\n  }, h(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#888\",\n    cx: \"8\",\n    cy: \"8\",\n    r: \"8\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: isAllPaused ? 'M6 4.25L11.5 8 6 11.75z' : 'M5 4.5h2v7H5v-7zm4 0h2v7H9v-7z'\n  }))));\n}\nfunction DoneBtn(props) {\n  const {\n    i18n,\n    doneButtonHandler\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--done\",\n    onClick: doneButtonHandler,\n    \"data-uppy-super-focusable\": true\n  }, i18n('done'));\n}\nfunction LoadingSpinner() {\n  return h(\"svg\", {\n    className: \"uppy-StatusBar-spinner\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"14\",\n    height: \"14\"\n  }, h(\"path\", {\n    d: \"M13.983 6.547c-.12-2.509-1.64-4.893-3.939-5.936-2.48-1.127-5.488-.656-7.556 1.094C.524 3.367-.398 6.048.162 8.562c.556 2.495 2.46 4.52 4.94 5.183 2.932.784 5.61-.602 7.256-3.015-1.493 1.993-3.745 3.309-6.298 2.868-2.514-.434-4.578-2.349-5.153-4.84a6.226 6.226 0 0 1 2.98-6.778C6.34.586 9.74 1.1 11.373 3.493c.407.596.693 1.282.842 1.988.127.598.073 1.197.161 1.794.078.525.543 1.257 1.15.864.525-.341.49-1.05.456-1.592-.007-.15.02.3 0 0\",\n    fillRule: \"evenodd\"\n  }));\n}\nfunction ProgressBarProcessing(props) {\n  const {\n    progress\n  } = props;\n  const {\n    value,\n    mode,\n    message\n  } = progress;\n  const dot = `\\u00B7`;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\"\n  }, h(LoadingSpinner, null), mode === 'determinate' ? `${Math.round(value * 100)}% ${dot} ` : '', message);\n}\nfunction ProgressDetails(props) {\n  const {\n    numUploads,\n    complete,\n    totalUploadedSize,\n    totalSize,\n    totalETA,\n    i18n\n  } = props;\n  const ifShowFilesUploadedOfTotal = numUploads > 1;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, ifShowFilesUploadedOfTotal && i18n('filesUploadedOfTotal', {\n    complete,\n    smart_count: numUploads\n  }), h(\"span\", {\n    className: \"uppy-StatusBar-additionalInfo\"\n  }, ifShowFilesUploadedOfTotal && renderDot(), i18n('dataUploadedOfTotal', {\n    complete: prettierBytes(totalUploadedSize),\n    total: prettierBytes(totalSize)\n  }), renderDot(), i18n('xTimeLeft', {\n    time: prettyETA(totalETA)\n  })));\n}\nfunction FileUploadCount(props) {\n  const {\n    i18n,\n    complete,\n    numUploads\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, i18n('filesUploadedOfTotal', {\n    complete,\n    smart_count: numUploads\n  }));\n}\nfunction UploadNewlyAddedFiles(props) {\n  const {\n    i18n,\n    newFiles,\n    startUpload\n  } = props;\n  const uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--uploadNewlyAdded');\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondaryHint\"\n  }, i18n('xMoreFilesAdded', {\n    smart_count: newFiles\n  })), h(\"button\", {\n    type: \"button\",\n    className: uploadBtnClassNames,\n    \"aria-label\": i18n('uploadXFiles', {\n      smart_count: newFiles\n    }),\n    onClick: startUpload\n  }, i18n('upload')));\n}\nfunction ProgressBarUploading(props) {\n  const {\n    i18n,\n    supportsUploadProgress,\n    totalProgress,\n    showProgressDetails,\n    isUploadStarted,\n    isAllComplete,\n    isAllPaused,\n    newFiles,\n    numUploads,\n    complete,\n    totalUploadedSize,\n    totalSize,\n    totalETA,\n    startUpload\n  } = props;\n  const showUploadNewlyAddedFiles = newFiles && isUploadStarted;\n  if (!isUploadStarted || isAllComplete) {\n    return null;\n  }\n  const title = isAllPaused ? i18n('paused') : i18n('uploading');\n  function renderProgressDetails() {\n    if (!isAllPaused && !showUploadNewlyAddedFiles && showProgressDetails) {\n      if (supportsUploadProgress) {\n        return h(ProgressDetails, {\n          numUploads: numUploads,\n          complete: complete,\n          totalUploadedSize: totalUploadedSize,\n          totalSize: totalSize,\n          totalETA: totalETA,\n          i18n: i18n\n        });\n      }\n      return h(FileUploadCount, {\n        i18n: i18n,\n        complete: complete,\n        numUploads: numUploads\n      });\n    }\n    return null;\n  }\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    \"aria-label\": title,\n    title: title\n  }, !isAllPaused ? h(LoadingSpinner, null) : null, h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, supportsUploadProgress ? `${title}: ${totalProgress}%` : title), renderProgressDetails(), showUploadNewlyAddedFiles ? h(UploadNewlyAddedFiles, {\n    i18n: i18n,\n    newFiles: newFiles,\n    startUpload: startUpload\n  }) : null));\n}\nfunction ProgressBarComplete(props) {\n  const {\n    i18n\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    role: \"status\",\n    title: i18n('complete')\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n    width: \"15\",\n    height: \"11\",\n    viewBox: \"0 0 15 11\"\n  }, h(\"path\", {\n    d: \"M.414 5.843L1.627 4.63l3.472 3.472L13.202 0l1.212 1.213L5.1 10.528z\"\n  })), i18n('complete'))));\n}\nfunction ProgressBarError(props) {\n  const {\n    error,\n    i18n,\n    complete,\n    numUploads\n  } = props;\n  function displayErrorAlert() {\n    const errorMessage = `${i18n('uploadFailed')} \\n\\n ${error}`;\n    // eslint-disable-next-line no-alert\n    alert(errorMessage); // TODO: move to custom alert implementation\n  }\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    title: i18n('uploadFailed')\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n    width: \"11\",\n    height: \"11\",\n    viewBox: \"0 0 11 11\"\n  }, h(\"path\", {\n    d: \"M4.278 5.5L0 1.222 1.222 0 5.5 4.278 9.778 0 11 1.222 6.722 5.5 11 9.778 9.778 11 5.5 6.722 1.222 11 0 9.778z\"\n  })), h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, i18n('uploadFailed'), h(\"button\", {\n    className: \"uppy-u-reset uppy-StatusBar-details\",\n    \"aria-label\": i18n('showErrorDetails'),\n    \"data-microtip-position\": \"top-right\",\n    \"data-microtip-size\": \"medium\",\n    onClick: displayErrorAlert,\n    type: \"button\"\n  }, \"?\")), h(FileUploadCount, {\n    i18n: i18n,\n    complete: complete,\n    numUploads: numUploads\n  })));\n}\nexport { UploadBtn, RetryBtn, CancelBtn, PauseResumeButton, DoneBtn, LoadingSpinner, ProgressDetails, ProgressBarProcessing, ProgressBarError, ProgressBarUploading, ProgressBarComplete };", "export default function secondsToTime(rawSeconds) {\n  const hours = Math.floor(rawSeconds / 3600) % 24;\n  const minutes = Math.floor(rawSeconds / 60) % 60;\n  const seconds = Math.floor(rawSeconds % 60);\n  return {\n    hours,\n    minutes,\n    seconds\n  };\n}", "import secondsToTime from \"./secondsToTime.js\";\nexport default function prettyETA(seconds) {\n  const time = secondsToTime(seconds);\n\n  // Only display hours and minutes if they are greater than 0 but always\n  // display minutes if hours is being displayed\n  // Display a leading zero if the there is a preceding unit: 1m 05s, but 5s\n  const hoursStr = time.hours === 0 ? '' : `${time.hours}h`;\n  const minutesStr = time.minutes === 0 ? '' : `${time.hours === 0 ? time.minutes : ` ${time.minutes.toString(10).padStart(2, '0')}`}m`;\n  const secondsStr = time.hours !== 0 ? '' : `${time.minutes === 0 ? time.seconds : ` ${time.seconds.toString(10).padStart(2, '0')}`}s`;\n  return `${hoursStr}${minutesStr}${secondsStr}`;\n}", "export default {\n  strings: {\n    // Shown in the status bar while files are being uploaded.\n    uploading: 'Uploading',\n    // Shown in the status bar once all files have been uploaded.\n    complete: 'Complete',\n    // Shown in the status bar if an upload failed.\n    uploadFailed: 'Upload failed',\n    // Shown in the status bar while the upload is paused.\n    paused: 'Paused',\n    // Used as the label for the button that retries an upload.\n    retry: 'Retry',\n    // Used as the label for the button that cancels an upload.\n    cancel: 'Cancel',\n    // Used as the label for the button that pauses an upload.\n    pause: 'Pause',\n    // Used as the label for the button that resumes an upload.\n    resume: 'Resume',\n    // Used as the label for the button that resets the upload state after an upload\n    done: 'Done',\n    // When `showProgressDetails` is set, shows the number of files that have been fully uploaded so far.\n    filesUploadedOfTotal: {\n      0: '%{complete} of %{smart_count} file uploaded',\n      1: '%{complete} of %{smart_count} files uploaded'\n    },\n    // When `showProgressDetails` is set, shows the amount of bytes that have been uploaded so far.\n    dataUploadedOfTotal: '%{complete} of %{total}',\n    // When `showProgressDetails` is set, shows an estimation of how long the upload will take to complete.\n    xTimeLeft: '%{time} left',\n    // Used as the label for the button that starts an upload.\n    uploadXFiles: {\n      0: 'Upload %{smart_count} file',\n      1: 'Upload %{smart_count} files'\n    },\n    // Used as the label for the button that starts an upload, if another upload has been started in the past\n    // and new files were added later.\n    uploadXNewFiles: {\n      0: 'Upload +%{smart_count} file',\n      1: 'Upload +%{smart_count} files'\n    },\n    upload: 'Upload',\n    retryUpload: 'Retry upload',\n    xMoreFilesAdded: {\n      0: '%{smart_count} more file added',\n      1: '%{smart_count} more files added'\n    },\n    showErrorDetails: 'Show error details'\n  }\n};", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { UIPlugin } from '@uppy/core';\nimport emaFilter from '@uppy/utils/lib/emaFilter';\nimport getTextDirection from '@uppy/utils/lib/getTextDirection';\nimport statusBarStates from \"./StatusBarStates.js\";\nimport StatusBarUI from \"./StatusBarUI.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.3.3\"\n};\nimport locale from \"./locale.js\";\nconst speedFilterHalfLife = 2000;\nconst ETAFilterHalfLife = 2000;\nfunction getUploadingState(error, isAllComplete, recoveredState, files) {\n  if (error) {\n    return statusBarStates.STATE_ERROR;\n  }\n  if (isAllComplete) {\n    return statusBarStates.STATE_COMPLETE;\n  }\n  if (recoveredState) {\n    return statusBarStates.STATE_WAITING;\n  }\n  let state = statusBarStates.STATE_WAITING;\n  const fileIDs = Object.keys(files);\n  for (let i = 0; i < fileIDs.length; i++) {\n    const {\n      progress\n    } = files[fileIDs[i]];\n    // If ANY files are being uploaded right now, show the uploading state.\n    if (progress.uploadStarted && !progress.uploadComplete) {\n      return statusBarStates.STATE_UPLOADING;\n    }\n    // If files are being preprocessed AND postprocessed at this time, we show the\n    // preprocess state. If any files are being uploaded we show uploading.\n    if (progress.preprocess) {\n      state = statusBarStates.STATE_PREPROCESSING;\n    }\n    // If NO files are being preprocessed or uploaded right now, but some files are\n    // being postprocessed, show the postprocess state.\n    if (progress.postprocess && state !== statusBarStates.STATE_PREPROCESSING) {\n      state = statusBarStates.STATE_POSTPROCESSING;\n    }\n  }\n  return state;\n}\n\n// set default options, must be kept in sync with @uppy/react/src/StatusBar.js\nconst defaultOptions = {\n  target: 'body',\n  hideUploadButton: false,\n  hideRetryButton: false,\n  hidePauseResumeButton: false,\n  hideCancelButton: false,\n  showProgressDetails: false,\n  hideAfterFinish: true,\n  doneButtonHandler: null\n};\n\n/**\n * StatusBar: renders a status bar with upload/pause/resume/cancel/retry buttons,\n * progress percentage and time remaining.\n */\nvar _lastUpdateTime = /*#__PURE__*/_classPrivateFieldLooseKey(\"lastUpdateTime\");\nvar _previousUploadedBytes = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousUploadedBytes\");\nvar _previousSpeed = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousSpeed\");\nvar _previousETA = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousETA\");\nvar _computeSmoothETA = /*#__PURE__*/_classPrivateFieldLooseKey(\"computeSmoothETA\");\nvar _onUploadStart = /*#__PURE__*/_classPrivateFieldLooseKey(\"onUploadStart\");\nexport default class StatusBar extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, {\n      ...defaultOptions,\n      ...opts\n    });\n    Object.defineProperty(this, _computeSmoothETA, {\n      value: _computeSmoothETA2\n    });\n    Object.defineProperty(this, _lastUpdateTime, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousUploadedBytes, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousSpeed, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousETA, {\n      writable: true,\n      value: void 0\n    });\n    this.startUpload = () => {\n      return this.uppy.upload().catch(() => {\n        // Error logged in Core\n      });\n    };\n    Object.defineProperty(this, _onUploadStart, {\n      writable: true,\n      value: () => {\n        const {\n          recoveredState\n        } = this.uppy.getState();\n        _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] = null;\n        _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] = null;\n        if (recoveredState) {\n          _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = Object.values(recoveredState.files).reduce((pv, _ref) => {\n            let {\n              progress\n            } = _ref;\n            return pv + progress.bytesUploaded;\n          }, 0);\n\n          // We don't set `#lastUpdateTime` at this point because the upload won't\n          // actually resume until the user asks for it.\n\n          this.uppy.emit('restore-confirmed');\n          return;\n        }\n        _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n        _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = 0;\n      }\n    });\n    this.id = this.opts.id || 'StatusBar';\n    this.title = 'StatusBar';\n    this.type = 'progressindicator';\n    this.defaultLocale = locale;\n    this.i18nInit();\n    this.render = this.render.bind(this);\n    this.install = this.install.bind(this);\n  }\n  render(state) {\n    const {\n      capabilities,\n      files,\n      allowNewUpload,\n      totalProgress,\n      error,\n      recoveredState\n    } = state;\n    const {\n      newFiles,\n      startedFiles,\n      completeFiles,\n      isUploadStarted,\n      isAllComplete,\n      isAllErrored,\n      isAllPaused,\n      isUploadInProgress,\n      isSomeGhost\n    } = this.uppy.getObjectOfFilesPerState();\n\n    // If some state was recovered, we want to show Upload button/counter\n    // for all the files, because in this case it\u2019s not an Upload button,\n    // but \u201CConfirm Restore Button\u201D\n    const newFilesOrRecovered = recoveredState ? Object.values(files) : newFiles;\n    const resumableUploads = !!capabilities.resumableUploads;\n    const supportsUploadProgress = capabilities.uploadProgress !== false;\n    let totalSize = 0;\n    let totalUploadedSize = 0;\n    startedFiles.forEach(file => {\n      totalSize += file.progress.bytesTotal || 0;\n      totalUploadedSize += file.progress.bytesUploaded || 0;\n    });\n    const totalETA = _classPrivateFieldLooseBase(this, _computeSmoothETA)[_computeSmoothETA]({\n      uploaded: totalUploadedSize,\n      total: totalSize,\n      remaining: totalSize - totalUploadedSize\n    });\n    return StatusBarUI({\n      error,\n      uploadState: getUploadingState(error, isAllComplete, recoveredState, state.files || {}),\n      allowNewUpload,\n      totalProgress,\n      totalSize,\n      totalUploadedSize,\n      isAllComplete: false,\n      isAllPaused,\n      // @ts-expect-error TODO: remove this in 4.x branch\n      isAllErrored,\n      isUploadStarted,\n      isUploadInProgress,\n      isSomeGhost,\n      recoveredState,\n      complete: completeFiles.length,\n      newFiles: newFilesOrRecovered.length,\n      numUploads: startedFiles.length,\n      totalETA,\n      files,\n      i18n: this.i18n,\n      uppy: this.uppy,\n      startUpload: this.startUpload,\n      doneButtonHandler: this.opts.doneButtonHandler,\n      resumableUploads,\n      supportsUploadProgress,\n      showProgressDetails: this.opts.showProgressDetails,\n      hideUploadButton: this.opts.hideUploadButton,\n      hideRetryButton: this.opts.hideRetryButton,\n      hidePauseResumeButton: this.opts.hidePauseResumeButton,\n      hideCancelButton: this.opts.hideCancelButton,\n      hideAfterFinish: this.opts.hideAfterFinish,\n      // ts-expect-error TODO: remove this in 4.x branch\n      isTargetDOMEl: this.isTargetDOMEl\n    });\n  }\n  onMount() {\n    // Set the text direction if the page has not defined one.\n    const element = this.el;\n    const direction = getTextDirection(element);\n    if (!direction) {\n      element.dir = 'ltr';\n    }\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n    this.uppy.on('upload', _classPrivateFieldLooseBase(this, _onUploadStart)[_onUploadStart]);\n\n    // To cover the use case where the status bar is installed while the upload\n    // has started, we set `lastUpdateTime` right away.\n    _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n    _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = this.uppy.getFiles().reduce((pv, file) => pv + file.progress.bytesUploaded, 0);\n  }\n  uninstall() {\n    this.unmount();\n    this.uppy.off('upload', _classPrivateFieldLooseBase(this, _onUploadStart)[_onUploadStart]);\n  }\n}\nfunction _computeSmoothETA2(totalBytes) {\n  var _classPrivateFieldLoo, _classPrivateFieldLoo2;\n  if (totalBytes.total === 0 || totalBytes.remaining === 0) {\n    return 0;\n  }\n\n  // When state is restored, lastUpdateTime is still nullish at this point.\n  (_classPrivateFieldLoo2 = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _lastUpdateTime))[_lastUpdateTime]) != null ? _classPrivateFieldLoo2 : _classPrivateFieldLoo[_lastUpdateTime] = performance.now();\n  const dt = performance.now() - _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime];\n  if (dt === 0) {\n    var _classPrivateFieldLoo3;\n    return Math.round(((_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA]) != null ? _classPrivateFieldLoo3 : 0) / 100) / 10;\n  }\n  const uploadedBytesSinceLastTick = totalBytes.uploaded - _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes];\n  _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = totalBytes.uploaded;\n\n  // uploadedBytesSinceLastTick can be negative in some cases (packet loss?)\n  // in which case, we wait for next tick to update ETA.\n  if (uploadedBytesSinceLastTick <= 0) {\n    var _classPrivateFieldLoo4;\n    return Math.round(((_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA]) != null ? _classPrivateFieldLoo4 : 0) / 100) / 10;\n  }\n  const currentSpeed = uploadedBytesSinceLastTick / dt;\n  const filteredSpeed = _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] == null ? currentSpeed : emaFilter(currentSpeed, _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed], speedFilterHalfLife, dt);\n  _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] = filteredSpeed;\n  const instantETA = totalBytes.remaining / filteredSpeed;\n  const updatedPreviousETA = Math.max(_classPrivateFieldLooseBase(this, _previousETA)[_previousETA] - dt, 0);\n  const filteredETA = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] == null ? instantETA : emaFilter(instantETA, updatedPreviousETA, ETAFilterHalfLife, dt);\n  _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] = filteredETA;\n  _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n  return Math.round(filteredETA / 100) / 10;\n}\nStatusBar.VERSION = packageJson.version;", "import { h, Component, createRef } from 'preact';\nconst TRANSITION_MS = 300;\nexport default class FadeIn extends Component {\n  constructor() {\n    super(...arguments);\n    this.ref = createRef();\n  }\n  componentWillEnter(callback) {\n    this.ref.current.style.opacity = '1';\n    this.ref.current.style.transform = 'none';\n    setTimeout(callback, TRANSITION_MS);\n  }\n  componentWillLeave(callback) {\n    this.ref.current.style.opacity = '0';\n    this.ref.current.style.transform = 'translateY(350%)';\n    setTimeout(callback, TRANSITION_MS);\n  }\n  render() {\n    const {\n      children\n    } = this.props;\n    return h(\"div\", {\n      className: \"uppy-Informer-animated\",\n      ref: this.ref\n    }, children);\n  }\n}", "// INFO: not typing copy pasted libarary code\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/* eslint-disable */\n/**\n * @source https://github.com/developit/preact-transition-group\n */\n\nimport { Component, cloneElement, h, toChildArray } from 'preact';\nfunction assign(obj, props) {\n  return Object.assign(obj, props);\n}\nfunction getKey(vnode, fallback) {\n  var _vnode$key;\n  return (_vnode$key = vnode == null ? void 0 : vnode.key) != null ? _vnode$key : fallback;\n}\nfunction linkRef(component, name) {\n  const cache = component._ptgLinkedRefs || (component._ptgLinkedRefs = {});\n  return cache[name] || (cache[name] = c => {\n    component.refs[name] = c;\n  });\n}\nfunction getChildMapping(children) {\n  const out = {};\n  for (let i = 0; i < children.length; i++) {\n    if (children[i] != null) {\n      const key = getKey(children[i], i.toString(36));\n      out[key] = children[i];\n    }\n  }\n  return out;\n}\nfunction mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n  const getValueForKey = key => next.hasOwnProperty(key) ? next[key] : prev[key];\n\n  // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n  const nextKeysPending = {};\n  let pendingKeys = [];\n  for (const prevKey in prev) {\n    if (next.hasOwnProperty(prevKey)) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n  const childMapping = {};\n  for (const nextKey in next) {\n    if (nextKeysPending.hasOwnProperty(nextKey)) {\n      for (let i = 0; i < nextKeysPending[nextKey].length; i++) {\n        const pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n    childMapping[nextKey] = getValueForKey(nextKey);\n  }\n\n  // Finally, add the keys which didn't appear before any key in `next`\n  for (let i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n  return childMapping;\n}\nconst identity = i => i;\nclass TransitionGroup extends Component {\n  constructor(props, context) {\n    super(props, context);\n    this.refs = {};\n    this.state = {\n      children: getChildMapping(toChildArray(toChildArray(this.props.children)) || [])\n    };\n    this.performAppear = this.performAppear.bind(this);\n    this.performEnter = this.performEnter.bind(this);\n    this.performLeave = this.performLeave.bind(this);\n  }\n  componentWillMount() {\n    this.currentlyTransitioningKeys = {};\n    this.keysToAbortLeave = [];\n    this.keysToEnter = [];\n    this.keysToLeave = [];\n  }\n  componentDidMount() {\n    const initialChildMapping = this.state.children;\n    for (const key in initialChildMapping) {\n      if (initialChildMapping[key]) {\n        // this.performAppear(getKey(initialChildMapping[key], key));\n        this.performAppear(key);\n      }\n    }\n  }\n  componentWillReceiveProps(nextProps) {\n    const nextChildMapping = getChildMapping(toChildArray(nextProps.children) || []);\n    const prevChildMapping = this.state.children;\n    this.setState(prevState => ({\n      children: mergeChildMappings(prevState.children, nextChildMapping)\n    }));\n    let key;\n    for (key in nextChildMapping) {\n      if (nextChildMapping.hasOwnProperty(key)) {\n        const hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);\n        // We should re-enter the component and abort its leave function\n        if (nextChildMapping[key] && hasPrev && this.currentlyTransitioningKeys[key]) {\n          this.keysToEnter.push(key);\n          this.keysToAbortLeave.push(key);\n        } else if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) {\n          this.keysToEnter.push(key);\n        }\n      }\n    }\n    for (key in prevChildMapping) {\n      if (prevChildMapping.hasOwnProperty(key)) {\n        const hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(key);\n        if (prevChildMapping[key] && !hasNext && !this.currentlyTransitioningKeys[key]) {\n          this.keysToLeave.push(key);\n        }\n      }\n    }\n  }\n  componentDidUpdate() {\n    const {\n      keysToEnter\n    } = this;\n    this.keysToEnter = [];\n    keysToEnter.forEach(this.performEnter);\n    const {\n      keysToLeave\n    } = this;\n    this.keysToLeave = [];\n    keysToLeave.forEach(this.performLeave);\n  }\n  _finishAbort(key) {\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      this.keysToAbortLeave.splice(idx, 1);\n    }\n  }\n  performAppear(key) {\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillAppear) {\n      component.componentWillAppear(this._handleDoneAppearing.bind(this, key));\n    } else {\n      this._handleDoneAppearing(key);\n    }\n  }\n  _handleDoneAppearing(key) {\n    const component = this.refs[key];\n    if (component != null && component.componentDidAppear) {\n      component.componentDidAppear();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    this._finishAbort(key);\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n      // This was removed before it had fully appeared. Remove it.\n      this.performLeave(key);\n    }\n  }\n  performEnter(key) {\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillEnter) {\n      component.componentWillEnter(this._handleDoneEntering.bind(this, key));\n    } else {\n      this._handleDoneEntering(key);\n    }\n  }\n  _handleDoneEntering(key) {\n    const component = this.refs[key];\n    if (component != null && component.componentDidEnter) {\n      component.componentDidEnter();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    this._finishAbort(key);\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n      // This was removed before it had fully entered. Remove it.\n      this.performLeave(key);\n    }\n  }\n  performLeave(key) {\n    // If we should immediately abort this leave function,\n    // don't run the leave transition at all.\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      return;\n    }\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillLeave) {\n      component.componentWillLeave(this._handleDoneLeaving.bind(this, key));\n    } else {\n      // Note that this is somewhat dangerous b/c it calls setState()\n      // again, effectively mutating the component before all the work\n      // is done.\n      this._handleDoneLeaving(key);\n    }\n  }\n  _handleDoneLeaving(key) {\n    // If we should immediately abort the leave,\n    // then skip this altogether\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      return;\n    }\n    const component = this.refs[key];\n    if (component != null && component.componentDidLeave) {\n      component.componentDidLeave();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {\n      // This entered again before it fully left. Add it again.\n      this.performEnter(key);\n    } else {\n      const children = assign({}, this.state.children);\n      delete children[key];\n      this.setState({\n        children\n      });\n    }\n  }\n  render(_ref, _ref2) {\n    let {\n      childFactory,\n      transitionLeave,\n      transitionName,\n      transitionAppear,\n      transitionEnter,\n      transitionLeaveTimeout,\n      transitionEnterTimeout,\n      transitionAppearTimeout,\n      component,\n      ...props\n    } = _ref;\n    let {\n      children\n    } = _ref2;\n    // TODO: we could get rid of the need for the wrapper node\n    // by cloning a single child\n    const childrenToRender = Object.entries(children).map(_ref3 => {\n      let [key, child] = _ref3;\n      if (!child) return undefined;\n      const ref = linkRef(this, key);\n      return cloneElement(childFactory(child), {\n        ref,\n        key\n      });\n    }).filter(Boolean);\n    return h(component, props, childrenToRender);\n  }\n}\nTransitionGroup.defaultProps = {\n  component: 'span',\n  childFactory: identity\n};\nexport default TransitionGroup;", "/* eslint-disable jsx-a11y/no-noninteractive-element-interactions  */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { h } from 'preact';\nimport { UIPlugin } from '@uppy/core';\nimport FadeIn from \"./FadeIn.js\";\nimport TransitionGroup from \"./TransitionGroup.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.1.0\"\n};\n/**\n * Informer\n * Shows rad message bubbles\n * used like this: `uppy.info('hello world', 'info', 5000)`\n * or for errors: `uppy.info('Error uploading img.jpg', 'error', 5000)`\n *\n */\nexport default class Informer extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.render = state => {\n      return h(\"div\", {\n        className: \"uppy uppy-Informer\"\n      }, h(TransitionGroup, null, state.info.map(info => h(FadeIn, {\n        key: info.message\n      }, h(\"p\", {\n        role: \"alert\"\n      }, info.message, ' ', info.details && h(\"span\", {\n        \"aria-label\": info.details,\n        \"data-microtip-position\": \"top-left\",\n        \"data-microtip-size\": \"medium\",\n        role: \"tooltip\",\n        onClick: () =>\n        // eslint-disable-next-line no-alert\n        alert(`${info.message} \\n\\n ${info.details}`)\n      }, \"?\"))))));\n    };\n    this.type = 'progressindicator';\n    this.id = this.opts.id || 'Informer';\n    this.title = 'Informer';\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n  }\n}\nInformer.VERSION = packageJson.version;", "const DATA_URL_PATTERN = /^data:([^/]+\\/[^,;]+(?:[^,]*?))(;base64)?,([\\s\\S]*)$/;\nfunction dataURItoBlob(dataURI, opts, toFile) {\n  var _ref, _opts$mimeType;\n  // get the base64 data\n  const dataURIData = DATA_URL_PATTERN.exec(dataURI);\n\n  // user may provide mime type, if not get it from data URI\n  const mimeType = (_ref = (_opts$mimeType = opts.mimeType) != null ? _opts$mimeType : dataURIData == null ? void 0 : dataURIData[1]) != null ? _ref : 'plain/text';\n  let data; // We add `!` to tell TS we're OK with `data` being not defined when the dataURI is invalid.\n  if ((dataURIData == null ? void 0 : dataURIData[2]) != null) {\n    const binary = atob(decodeURIComponent(dataURIData[3]));\n    const bytes = new Uint8Array(binary.length);\n    for (let i = 0; i < binary.length; i++) {\n      bytes[i] = binary.charCodeAt(i);\n    }\n    data = [bytes];\n  } else if ((dataURIData == null ? void 0 : dataURIData[3]) != null) {\n    data = [decodeURIComponent(dataURIData[3])];\n  }\n\n  // Convert to a File?\n  if (toFile) {\n    return new File(data, opts.name || '', {\n      type: mimeType\n    });\n  }\n  return new Blob(data, {\n    type: mimeType\n  });\n}\nexport default dataURItoBlob;", "/**\n * Check if a URL string is an object URL from `URL.createObjectURL`.\n */\nexport default function isObjectURL(url) {\n  return url.startsWith('blob:');\n}", "export default function isPreviewSupported(fileType) {\n  if (!fileType) return false;\n  // list of images that browsers can preview\n  return /^[^/]+\\/(jpe?g|gif|png|svg|svg\\+xml|bmp|webp|avif)$/.test(fileType);\n}", "function e(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}var t=\"undefined\"!=typeof self?self:global;const s=\"undefined\"!=typeof navigator,i=s&&\"undefined\"==typeof HTMLImageElement,n=!(\"undefined\"==typeof global||\"undefined\"==typeof process||!process.versions||!process.versions.node),r=t.Buffer,a=!!r,h=e=>void 0!==e;function f(e){return void 0===e||(e instanceof Map?0===e.size:0===Object.values(e).filter(h).length)}function l(e){let t=new Error(e);throw delete t.stack,t}function o(e){let t=function(e){let t=0;return e.ifd0.enabled&&(t+=1024),e.exif.enabled&&(t+=2048),e.makerNote&&(t+=2048),e.userComment&&(t+=1024),e.gps.enabled&&(t+=512),e.interop.enabled&&(t+=100),e.ifd1.enabled&&(t+=1024),t+2048}(e);return e.jfif.enabled&&(t+=50),e.xmp.enabled&&(t+=2e4),e.iptc.enabled&&(t+=14e3),e.icc.enabled&&(t+=6e3),t}const u=e=>String.fromCharCode.apply(null,e),d=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-8\"):void 0;class c{static from(e,t){return e instanceof this&&e.le===t?e:new c(e,void 0,void 0,t)}constructor(e,t=0,s,i){if(\"boolean\"==typeof i&&(this.le=i),Array.isArray(e)&&(e=new Uint8Array(e)),0===e)this.byteOffset=0,this.byteLength=0;else if(e instanceof ArrayBuffer){void 0===s&&(s=e.byteLength-t);let i=new DataView(e,t,s);this._swapDataView(i)}else if(e instanceof Uint8Array||e instanceof DataView||e instanceof c){void 0===s&&(s=e.byteLength-t),(t+=e.byteOffset)+s>e.byteOffset+e.byteLength&&l(\"Creating view outside of available memory in ArrayBuffer\");let i=new DataView(e.buffer,t,s);this._swapDataView(i)}else if(\"number\"==typeof e){let t=new DataView(new ArrayBuffer(e));this._swapDataView(t)}else l(\"Invalid input argument for BufferView: \"+e)}_swapArrayBuffer(e){this._swapDataView(new DataView(e))}_swapBuffer(e){this._swapDataView(new DataView(e.buffer,e.byteOffset,e.byteLength))}_swapDataView(e){this.dataView=e,this.buffer=e.buffer,this.byteOffset=e.byteOffset,this.byteLength=e.byteLength}_lengthToEnd(e){return this.byteLength-e}set(e,t,s=c){return e instanceof DataView||e instanceof c?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array||l(\"BufferView.set(): Invalid data argument.\"),this.toUint8().set(e,t),new s(this,t,e.byteLength)}subarray(e,t){return t=t||this._lengthToEnd(e),new c(this,e,t)}toUint8(){return new Uint8Array(this.buffer,this.byteOffset,this.byteLength)}getUint8Array(e,t){return new Uint8Array(this.buffer,this.byteOffset+e,t)}getString(e=0,t=this.byteLength){let s=this.getUint8Array(e,t);return i=s,d?d.decode(i):a?Buffer.from(i).toString(\"utf8\"):decodeURIComponent(escape(u(i)));var i}getLatin1String(e=0,t=this.byteLength){let s=this.getUint8Array(e,t);return u(s)}getUnicodeString(e=0,t=this.byteLength){const s=[];for(let i=0;i<t&&e+i<this.byteLength;i+=2)s.push(this.getUint16(e+i));return u(s)}getInt8(e){return this.dataView.getInt8(e)}getUint8(e){return this.dataView.getUint8(e)}getInt16(e,t=this.le){return this.dataView.getInt16(e,t)}getInt32(e,t=this.le){return this.dataView.getInt32(e,t)}getUint16(e,t=this.le){return this.dataView.getUint16(e,t)}getUint32(e,t=this.le){return this.dataView.getUint32(e,t)}getFloat32(e,t=this.le){return this.dataView.getFloat32(e,t)}getFloat64(e,t=this.le){return this.dataView.getFloat64(e,t)}getFloat(e,t=this.le){return this.dataView.getFloat32(e,t)}getDouble(e,t=this.le){return this.dataView.getFloat64(e,t)}getUintBytes(e,t,s){switch(t){case 1:return this.getUint8(e,s);case 2:return this.getUint16(e,s);case 4:return this.getUint32(e,s);case 8:return this.getUint64&&this.getUint64(e,s)}}getUint(e,t,s){switch(t){case 8:return this.getUint8(e,s);case 16:return this.getUint16(e,s);case 32:return this.getUint32(e,s);case 64:return this.getUint64&&this.getUint64(e,s)}}toString(e){return this.dataView.toString(e,this.constructor.name)}ensureChunk(){}}function p(e,t){l(`${e} '${t}' was not loaded, try using full build of exifr.`)}class g extends Map{constructor(e){super(),this.kind=e}get(e,t){return this.has(e)||p(this.kind,e),t&&(e in t||function(e,t){l(`Unknown ${e} '${t}'.`)}(this.kind,e),t[e].enabled||p(this.kind,e)),super.get(e)}keyList(){return Array.from(this.keys())}}var m=new g(\"file parser\"),y=new g(\"segment parser\"),b=new g(\"file reader\");let w=t.fetch;function k(e,t){return(i=e).startsWith(\"data:\")||i.length>1e4?v(e,t,\"base64\"):n&&e.includes(\"://\")?O(e,t,\"url\",S):n?v(e,t,\"fs\"):s?O(e,t,\"url\",S):void l(\"Invalid input argument\");var i}async function O(e,t,s,i){return b.has(s)?v(e,t,s):i?async function(e,t){let s=await t(e);return new c(s)}(e,i):void l(`Parser ${s} is not loaded`)}async function v(e,t,s){let i=new(b.get(s))(e,t);return await i.read(),i}const S=e=>w(e).then((e=>e.arrayBuffer())),A=e=>new Promise(((t,s)=>{let i=new FileReader;i.onloadend=()=>t(i.result||new ArrayBuffer),i.onerror=s,i.readAsArrayBuffer(e)}));class U extends Map{get tagKeys(){return this.allKeys||(this.allKeys=Array.from(this.keys())),this.allKeys}get tagValues(){return this.allValues||(this.allValues=Array.from(this.values())),this.allValues}}function x(e,t,s){let i=new U;for(let[e,t]of s)i.set(e,t);if(Array.isArray(t))for(let s of t)e.set(s,i);else e.set(t,i);return i}function C(e,t,s){let i,n=e.get(t);for(i of s)n.set(i[0],i[1])}const B=new Map,V=new Map,I=new Map,L=[\"chunked\",\"firstChunkSize\",\"firstChunkSizeNode\",\"firstChunkSizeBrowser\",\"chunkSize\",\"chunkLimit\"],T=[\"jfif\",\"xmp\",\"icc\",\"iptc\",\"ihdr\"],z=[\"tiff\",...T],P=[\"ifd0\",\"ifd1\",\"exif\",\"gps\",\"interop\"],F=[...z,...P],j=[\"makerNote\",\"userComment\"],E=[\"translateKeys\",\"translateValues\",\"reviveValues\",\"multiSegment\"],M=[...E,\"sanitize\",\"mergeOutput\",\"silentErrors\"];class _{get translate(){return this.translateKeys||this.translateValues||this.reviveValues}}class D extends _{get needed(){return this.enabled||this.deps.size>0}constructor(t,s,i,n){if(super(),e(this,\"enabled\",!1),e(this,\"skip\",new Set),e(this,\"pick\",new Set),e(this,\"deps\",new Set),e(this,\"translateKeys\",!1),e(this,\"translateValues\",!1),e(this,\"reviveValues\",!1),this.key=t,this.enabled=s,this.parse=this.enabled,this.applyInheritables(n),this.canBeFiltered=P.includes(t),this.canBeFiltered&&(this.dict=B.get(t)),void 0!==i)if(Array.isArray(i))this.parse=this.enabled=!0,this.canBeFiltered&&i.length>0&&this.translateTagSet(i,this.pick);else if(\"object\"==typeof i){if(this.enabled=!0,this.parse=!1!==i.parse,this.canBeFiltered){let{pick:e,skip:t}=i;e&&e.length>0&&this.translateTagSet(e,this.pick),t&&t.length>0&&this.translateTagSet(t,this.skip)}this.applyInheritables(i)}else!0===i||!1===i?this.parse=this.enabled=i:l(`Invalid options argument: ${i}`)}applyInheritables(e){let t,s;for(t of E)s=e[t],void 0!==s&&(this[t]=s)}translateTagSet(e,t){if(this.dict){let s,i,{tagKeys:n,tagValues:r}=this.dict;for(s of e)\"string\"==typeof s?(i=r.indexOf(s),-1===i&&(i=n.indexOf(Number(s))),-1!==i&&t.add(Number(n[i]))):t.add(s)}else for(let s of e)t.add(s)}finalizeFilters(){!this.enabled&&this.deps.size>0?(this.enabled=!0,X(this.pick,this.deps)):this.enabled&&this.pick.size>0&&X(this.pick,this.deps)}}var N={jfif:!1,tiff:!0,xmp:!1,icc:!1,iptc:!1,ifd0:!0,ifd1:!1,exif:!0,gps:!0,interop:!1,ihdr:void 0,makerNote:!1,userComment:!1,multiSegment:!1,skip:[],pick:[],translateKeys:!0,translateValues:!0,reviveValues:!0,sanitize:!0,mergeOutput:!0,silentErrors:!0,chunked:!0,firstChunkSize:void 0,firstChunkSizeNode:512,firstChunkSizeBrowser:65536,chunkSize:65536,chunkLimit:5},$=new Map;class R extends _{static useCached(e){let t=$.get(e);return void 0!==t||(t=new this(e),$.set(e,t)),t}constructor(e){super(),!0===e?this.setupFromTrue():void 0===e?this.setupFromUndefined():Array.isArray(e)?this.setupFromArray(e):\"object\"==typeof e?this.setupFromObject(e):l(`Invalid options argument ${e}`),void 0===this.firstChunkSize&&(this.firstChunkSize=s?this.firstChunkSizeBrowser:this.firstChunkSizeNode),this.mergeOutput&&(this.ifd1.enabled=!1),this.filterNestedSegmentTags(),this.traverseTiffDependencyTree(),this.checkLoadedPlugins()}setupFromUndefined(){let e;for(e of L)this[e]=N[e];for(e of M)this[e]=N[e];for(e of j)this[e]=N[e];for(e of F)this[e]=new D(e,N[e],void 0,this)}setupFromTrue(){let e;for(e of L)this[e]=N[e];for(e of M)this[e]=N[e];for(e of j)this[e]=!0;for(e of F)this[e]=new D(e,!0,void 0,this)}setupFromArray(e){let t;for(t of L)this[t]=N[t];for(t of M)this[t]=N[t];for(t of j)this[t]=N[t];for(t of F)this[t]=new D(t,!1,void 0,this);this.setupGlobalFilters(e,void 0,P)}setupFromObject(e){let t;for(t of(P.ifd0=P.ifd0||P.image,P.ifd1=P.ifd1||P.thumbnail,Object.assign(this,e),L))this[t]=W(e[t],N[t]);for(t of M)this[t]=W(e[t],N[t]);for(t of j)this[t]=W(e[t],N[t]);for(t of z)this[t]=new D(t,N[t],e[t],this);for(t of P)this[t]=new D(t,N[t],e[t],this.tiff);this.setupGlobalFilters(e.pick,e.skip,P,F),!0===e.tiff?this.batchEnableWithBool(P,!0):!1===e.tiff?this.batchEnableWithUserValue(P,e):Array.isArray(e.tiff)?this.setupGlobalFilters(e.tiff,void 0,P):\"object\"==typeof e.tiff&&this.setupGlobalFilters(e.tiff.pick,e.tiff.skip,P)}batchEnableWithBool(e,t){for(let s of e)this[s].enabled=t}batchEnableWithUserValue(e,t){for(let s of e){let e=t[s];this[s].enabled=!1!==e&&void 0!==e}}setupGlobalFilters(e,t,s,i=s){if(e&&e.length){for(let e of i)this[e].enabled=!1;let t=K(e,s);for(let[e,s]of t)X(this[e].pick,s),this[e].enabled=!0}else if(t&&t.length){let e=K(t,s);for(let[t,s]of e)X(this[t].skip,s)}}filterNestedSegmentTags(){let{ifd0:e,exif:t,xmp:s,iptc:i,icc:n}=this;this.makerNote?t.deps.add(37500):t.skip.add(37500),this.userComment?t.deps.add(37510):t.skip.add(37510),s.enabled||e.skip.add(700),i.enabled||e.skip.add(33723),n.enabled||e.skip.add(34675)}traverseTiffDependencyTree(){let{ifd0:e,exif:t,gps:s,interop:i}=this;i.needed&&(t.deps.add(40965),e.deps.add(40965)),t.needed&&e.deps.add(34665),s.needed&&e.deps.add(34853),this.tiff.enabled=P.some((e=>!0===this[e].enabled))||this.makerNote||this.userComment;for(let e of P)this[e].finalizeFilters()}get onlyTiff(){return!T.map((e=>this[e].enabled)).some((e=>!0===e))&&this.tiff.enabled}checkLoadedPlugins(){for(let e of z)this[e].enabled&&!y.has(e)&&p(\"segment parser\",e)}}function K(e,t){let s,i,n,r,a=[];for(n of t){for(r of(s=B.get(n),i=[],s))(e.includes(r[0])||e.includes(r[1]))&&i.push(r[0]);i.length&&a.push([n,i])}return a}function W(e,t){return void 0!==e?e:void 0!==t?t:void 0}function X(e,t){for(let s of t)e.add(s)}e(R,\"default\",N);class H{constructor(t){e(this,\"parsers\",{}),e(this,\"output\",{}),e(this,\"errors\",[]),e(this,\"pushToErrors\",(e=>this.errors.push(e))),this.options=R.useCached(t)}async read(e){this.file=await function(e,t){return\"string\"==typeof e?k(e,t):s&&!i&&e instanceof HTMLImageElement?k(e.src,t):e instanceof Uint8Array||e instanceof ArrayBuffer||e instanceof DataView?new c(e):s&&e instanceof Blob?O(e,t,\"blob\",A):void l(\"Invalid input argument\")}(e,this.options)}setup(){if(this.fileParser)return;let{file:e}=this,t=e.getUint16(0);for(let[s,i]of m)if(i.canHandle(e,t))return this.fileParser=new i(this.options,this.file,this.parsers),e[s]=!0;this.file.close&&this.file.close(),l(\"Unknown file format\")}async parse(){let{output:e,errors:t}=this;return this.setup(),this.options.silentErrors?(await this.executeParsers().catch(this.pushToErrors),t.push(...this.fileParser.errors)):await this.executeParsers(),this.file.close&&this.file.close(),this.options.silentErrors&&t.length>0&&(e.errors=t),f(s=e)?void 0:s;var s}async executeParsers(){let{output:e}=this;await this.fileParser.parse();let t=Object.values(this.parsers).map((async t=>{let s=await t.parse();t.assignToOutput(e,s)}));this.options.silentErrors&&(t=t.map((e=>e.catch(this.pushToErrors)))),await Promise.all(t)}async extractThumbnail(){this.setup();let{options:e,file:t}=this,s=y.get(\"tiff\",e);var i;if(t.tiff?i={start:0,type:\"tiff\"}:t.jpeg&&(i=await this.fileParser.getOrFindSegment(\"tiff\")),void 0===i)return;let n=await this.fileParser.ensureSegmentChunk(i),r=this.parsers.tiff=new s(n,e,t),a=await r.extractThumbnail();return t.close&&t.close(),a}}async function Y(e,t){let s=new H(t);return await s.read(e),s.parse()}var G=Object.freeze({__proto__:null,parse:Y,Exifr:H,fileParsers:m,segmentParsers:y,fileReaders:b,tagKeys:B,tagValues:V,tagRevivers:I,createDictionary:x,extendDictionary:C,fetchUrlAsArrayBuffer:S,readBlobAsArrayBuffer:A,chunkedProps:L,otherSegments:T,segments:z,tiffBlocks:P,segmentsAndBlocks:F,tiffExtractables:j,inheritables:E,allFormatters:M,Options:R});class J{static findPosition(e,t){let s=e.getUint16(t+2)+2,i=\"function\"==typeof this.headerLength?this.headerLength(e,t,s):this.headerLength,n=t+i,r=s-i;return{offset:t,length:s,headerLength:i,start:n,size:r,end:n+r}}static parse(e,t={}){return new this(e,new R({[this.type]:t}),e).parse()}normalizeInput(e){return e instanceof c?e:new c(e)}constructor(t,s={},i){e(this,\"errors\",[]),e(this,\"raw\",new Map),e(this,\"handleError\",(e=>{if(!this.options.silentErrors)throw e;this.errors.push(e.message)})),this.chunk=this.normalizeInput(t),this.file=i,this.type=this.constructor.type,this.globalOptions=this.options=s,this.localOptions=s[this.type],this.canTranslate=this.localOptions&&this.localOptions.translate}translate(){this.canTranslate&&(this.translated=this.translateBlock(this.raw,this.type))}get output(){return this.translated?this.translated:this.raw?Object.fromEntries(this.raw):void 0}translateBlock(e,t){let s=I.get(t),i=V.get(t),n=B.get(t),r=this.options[t],a=r.reviveValues&&!!s,h=r.translateValues&&!!i,f=r.translateKeys&&!!n,l={};for(let[t,r]of e)a&&s.has(t)?r=s.get(t)(r):h&&i.has(t)&&(r=this.translateValue(r,i.get(t))),f&&n.has(t)&&(t=n.get(t)||t),l[t]=r;return l}translateValue(e,t){return t[e]||t.DEFAULT||e}assignToOutput(e,t){this.assignObjectToOutput(e,this.constructor.type,t)}assignObjectToOutput(e,t,s){if(this.globalOptions.mergeOutput)return Object.assign(e,s);e[t]?Object.assign(e[t],s):e[t]=s}}e(J,\"headerLength\",4),e(J,\"type\",void 0),e(J,\"multiSegment\",!1),e(J,\"canHandle\",(()=>!1));function q(e){return 192===e||194===e||196===e||219===e||221===e||218===e||254===e}function Q(e){return e>=224&&e<=239}function Z(e,t,s){for(let[i,n]of y)if(n.canHandle(e,t,s))return i}class ee extends class{constructor(t,s,i){e(this,\"errors\",[]),e(this,\"ensureSegmentChunk\",(async e=>{let t=e.start,s=e.size||65536;if(this.file.chunked)if(this.file.available(t,s))e.chunk=this.file.subarray(t,s);else try{e.chunk=await this.file.readChunk(t,s)}catch(t){l(`Couldn't read segment: ${JSON.stringify(e)}. ${t.message}`)}else this.file.byteLength>t+s?e.chunk=this.file.subarray(t,s):void 0===e.size?e.chunk=this.file.subarray(t):l(\"Segment unreachable: \"+JSON.stringify(e));return e.chunk})),this.extendOptions&&this.extendOptions(t),this.options=t,this.file=s,this.parsers=i}injectSegment(e,t){this.options[e].enabled&&this.createParser(e,t)}createParser(e,t){let s=new(y.get(e))(t,this.options,this.file);return this.parsers[e]=s}createParsers(e){for(let t of e){let{type:e,chunk:s}=t,i=this.options[e];if(i&&i.enabled){let t=this.parsers[e];t&&t.append||t||this.createParser(e,s)}}}async readSegments(e){let t=e.map(this.ensureSegmentChunk);await Promise.all(t)}}{constructor(...t){super(...t),e(this,\"appSegments\",[]),e(this,\"jpegSegments\",[]),e(this,\"unknownSegments\",[])}static canHandle(e,t){return 65496===t}async parse(){await this.findAppSegments(),await this.readSegments(this.appSegments),this.mergeMultiSegments(),this.createParsers(this.mergedAppSegments||this.appSegments)}setupSegmentFinderArgs(e){!0===e?(this.findAll=!0,this.wanted=new Set(y.keyList())):(e=void 0===e?y.keyList().filter((e=>this.options[e].enabled)):e.filter((e=>this.options[e].enabled&&y.has(e))),this.findAll=!1,this.remaining=new Set(e),this.wanted=new Set(e)),this.unfinishedMultiSegment=!1}async findAppSegments(e=0,t){this.setupSegmentFinderArgs(t);let{file:s,findAll:i,wanted:n,remaining:r}=this;if(!i&&this.file.chunked&&(i=Array.from(n).some((e=>{let t=y.get(e),s=this.options[e];return t.multiSegment&&s.multiSegment})),i&&await this.file.readWhole()),e=this.findAppSegmentsInRange(e,s.byteLength),!this.options.onlyTiff&&s.chunked){let t=!1;for(;r.size>0&&!t&&(s.canReadNextChunk||this.unfinishedMultiSegment);){let{nextChunkOffset:i}=s,n=this.appSegments.some((e=>!this.file.available(e.offset||e.start,e.length||e.size)));if(t=e>i&&!n?!await s.readNextChunk(e):!await s.readNextChunk(i),void 0===(e=this.findAppSegmentsInRange(e,s.byteLength)))return}}}findAppSegmentsInRange(e,t){t-=2;let s,i,n,r,a,h,{file:f,findAll:l,wanted:o,remaining:u,options:d}=this;for(;e<t;e++)if(255===f.getUint8(e))if(s=f.getUint8(e+1),Q(s)){if(i=f.getUint16(e+2),n=Z(f,e,i),n&&o.has(n)&&(r=y.get(n),a=r.findPosition(f,e),h=d[n],a.type=n,this.appSegments.push(a),!l&&(r.multiSegment&&h.multiSegment?(this.unfinishedMultiSegment=a.chunkNumber<a.chunkCount,this.unfinishedMultiSegment||u.delete(n)):u.delete(n),0===u.size)))break;d.recordUnknownSegments&&(a=J.findPosition(f,e),a.marker=s,this.unknownSegments.push(a)),e+=i+1}else if(q(s)){if(i=f.getUint16(e+2),218===s&&!1!==d.stopAfterSos)return;d.recordJpegSegments&&this.jpegSegments.push({offset:e,length:i,marker:s}),e+=i+1}return e}mergeMultiSegments(){if(!this.appSegments.some((e=>e.multiSegment)))return;let e=function(e,t){let s,i,n,r=new Map;for(let a=0;a<e.length;a++)s=e[a],i=s[t],r.has(i)?n=r.get(i):r.set(i,n=[]),n.push(s);return Array.from(r)}(this.appSegments,\"type\");this.mergedAppSegments=e.map((([e,t])=>{let s=y.get(e,this.options);if(s.handleMultiSegments){return{type:e,chunk:s.handleMultiSegments(t)}}return t[0]}))}getSegment(e){return this.appSegments.find((t=>t.type===e))}async getOrFindSegment(e){let t=this.getSegment(e);return void 0===t&&(await this.findAppSegments(0,[e]),t=this.getSegment(e)),t}}e(ee,\"type\",\"jpeg\"),m.set(\"jpeg\",ee);const te=[void 0,1,1,2,4,8,1,1,2,4,8,4,8,4];class se extends J{parseHeader(){var e=this.chunk.getUint16();18761===e?this.le=!0:19789===e&&(this.le=!1),this.chunk.le=this.le,this.headerParsed=!0}parseTags(e,t,s=new Map){let{pick:i,skip:n}=this.options[t];i=new Set(i);let r=i.size>0,a=0===n.size,h=this.chunk.getUint16(e);e+=2;for(let f=0;f<h;f++){let h=this.chunk.getUint16(e);if(r){if(i.has(h)&&(s.set(h,this.parseTag(e,h,t)),i.delete(h),0===i.size))break}else!a&&n.has(h)||s.set(h,this.parseTag(e,h,t));e+=12}return s}parseTag(e,t,s){let{chunk:i}=this,n=i.getUint16(e+2),r=i.getUint32(e+4),a=te[n];if(a*r<=4?e+=8:e=i.getUint32(e+8),(n<1||n>13)&&l(`Invalid TIFF value type. block: ${s.toUpperCase()}, tag: ${t.toString(16)}, type: ${n}, offset ${e}`),e>i.byteLength&&l(`Invalid TIFF value offset. block: ${s.toUpperCase()}, tag: ${t.toString(16)}, type: ${n}, offset ${e} is outside of chunk size ${i.byteLength}`),1===n)return i.getUint8Array(e,r);if(2===n)return\"\"===(h=function(e){for(;e.endsWith(\"\\0\");)e=e.slice(0,-1);return e}(h=i.getString(e,r)).trim())?void 0:h;var h;if(7===n)return i.getUint8Array(e,r);if(1===r)return this.parseTagValue(n,e);{let t=new(function(e){switch(e){case 1:return Uint8Array;case 3:return Uint16Array;case 4:return Uint32Array;case 5:return Array;case 6:return Int8Array;case 8:return Int16Array;case 9:return Int32Array;case 10:return Array;case 11:return Float32Array;case 12:return Float64Array;default:return Array}}(n))(r),s=a;for(let i=0;i<r;i++)t[i]=this.parseTagValue(n,e),e+=s;return t}}parseTagValue(e,t){let{chunk:s}=this;switch(e){case 1:return s.getUint8(t);case 3:return s.getUint16(t);case 4:return s.getUint32(t);case 5:return s.getUint32(t)/s.getUint32(t+4);case 6:return s.getInt8(t);case 8:return s.getInt16(t);case 9:return s.getInt32(t);case 10:return s.getInt32(t)/s.getInt32(t+4);case 11:return s.getFloat(t);case 12:return s.getDouble(t);case 13:return s.getUint32(t);default:l(`Invalid tiff type ${e}`)}}}class ie extends se{static canHandle(e,t){return 225===e.getUint8(t+1)&&1165519206===e.getUint32(t+4)&&0===e.getUint16(t+8)}async parse(){this.parseHeader();let{options:e}=this;return e.ifd0.enabled&&await this.parseIfd0Block(),e.exif.enabled&&await this.safeParse(\"parseExifBlock\"),e.gps.enabled&&await this.safeParse(\"parseGpsBlock\"),e.interop.enabled&&await this.safeParse(\"parseInteropBlock\"),e.ifd1.enabled&&await this.safeParse(\"parseThumbnailBlock\"),this.createOutput()}safeParse(e){let t=this[e]();return void 0!==t.catch&&(t=t.catch(this.handleError)),t}findIfd0Offset(){void 0===this.ifd0Offset&&(this.ifd0Offset=this.chunk.getUint32(4))}findIfd1Offset(){if(void 0===this.ifd1Offset){this.findIfd0Offset();let e=this.chunk.getUint16(this.ifd0Offset),t=this.ifd0Offset+2+12*e;this.ifd1Offset=this.chunk.getUint32(t)}}parseBlock(e,t){let s=new Map;return this[t]=s,this.parseTags(e,t,s),s}async parseIfd0Block(){if(this.ifd0)return;let{file:e}=this;this.findIfd0Offset(),this.ifd0Offset<8&&l(\"Malformed EXIF data\"),!e.chunked&&this.ifd0Offset>e.byteLength&&l(`IFD0 offset points to outside of file.\\nthis.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e.byteLength}`),e.tiff&&await e.ensureChunk(this.ifd0Offset,o(this.options));let t=this.parseBlock(this.ifd0Offset,\"ifd0\");return 0!==t.size?(this.exifOffset=t.get(34665),this.interopOffset=t.get(40965),this.gpsOffset=t.get(34853),this.xmp=t.get(700),this.iptc=t.get(33723),this.icc=t.get(34675),this.options.sanitize&&(t.delete(34665),t.delete(40965),t.delete(34853),t.delete(700),t.delete(33723),t.delete(34675)),t):void 0}async parseExifBlock(){if(this.exif)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.exifOffset)return;this.file.tiff&&await this.file.ensureChunk(this.exifOffset,o(this.options));let e=this.parseBlock(this.exifOffset,\"exif\");return this.interopOffset||(this.interopOffset=e.get(40965)),this.makerNote=e.get(37500),this.userComment=e.get(37510),this.options.sanitize&&(e.delete(40965),e.delete(37500),e.delete(37510)),this.unpack(e,41728),this.unpack(e,41729),e}unpack(e,t){let s=e.get(t);s&&1===s.length&&e.set(t,s[0])}async parseGpsBlock(){if(this.gps)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.gpsOffset)return;let e=this.parseBlock(this.gpsOffset,\"gps\");return e&&e.has(2)&&e.has(4)&&(e.set(\"latitude\",ne(...e.get(2),e.get(1))),e.set(\"longitude\",ne(...e.get(4),e.get(3)))),e}async parseInteropBlock(){if(!this.interop&&(this.ifd0||await this.parseIfd0Block(),void 0!==this.interopOffset||this.exif||await this.parseExifBlock(),void 0!==this.interopOffset))return this.parseBlock(this.interopOffset,\"interop\")}async parseThumbnailBlock(e=!1){if(!this.ifd1&&!this.ifd1Parsed&&(!this.options.mergeOutput||e))return this.findIfd1Offset(),this.ifd1Offset>0&&(this.parseBlock(this.ifd1Offset,\"ifd1\"),this.ifd1Parsed=!0),this.ifd1}async extractThumbnail(){if(this.headerParsed||this.parseHeader(),this.ifd1Parsed||await this.parseThumbnailBlock(!0),void 0===this.ifd1)return;let e=this.ifd1.get(513),t=this.ifd1.get(514);return this.chunk.getUint8Array(e,t)}get image(){return this.ifd0}get thumbnail(){return this.ifd1}createOutput(){let e,t,s,i={};for(t of P)if(e=this[t],!f(e))if(s=this.canTranslate?this.translateBlock(e,t):Object.fromEntries(e),this.options.mergeOutput){if(\"ifd1\"===t)continue;Object.assign(i,s)}else i[t]=s;return this.makerNote&&(i.makerNote=this.makerNote),this.userComment&&(i.userComment=this.userComment),i}assignToOutput(e,t){if(this.globalOptions.mergeOutput)Object.assign(e,t);else for(let[s,i]of Object.entries(t))this.assignObjectToOutput(e,s,i)}}function ne(e,t,s,i){var n=e+t/60+s/3600;return\"S\"!==i&&\"W\"!==i||(n*=-1),n}e(ie,\"type\",\"tiff\"),e(ie,\"headerLength\",10),y.set(\"tiff\",ie);var re=Object.freeze({__proto__:null,default:G,Exifr:H,fileParsers:m,segmentParsers:y,fileReaders:b,tagKeys:B,tagValues:V,tagRevivers:I,createDictionary:x,extendDictionary:C,fetchUrlAsArrayBuffer:S,readBlobAsArrayBuffer:A,chunkedProps:L,otherSegments:T,segments:z,tiffBlocks:P,segmentsAndBlocks:F,tiffExtractables:j,inheritables:E,allFormatters:M,Options:R,parse:Y});const ae={ifd0:!1,ifd1:!1,exif:!1,gps:!1,interop:!1,sanitize:!1,reviveValues:!0,translateKeys:!1,translateValues:!1,mergeOutput:!1},he=Object.assign({},ae,{firstChunkSize:4e4,gps:[1,2,3,4]});async function fe(e){let t=new H(he);await t.read(e);let s=await t.parse();if(s&&s.gps){let{latitude:e,longitude:t}=s.gps;return{latitude:e,longitude:t}}}const le=Object.assign({},ae,{tiff:!1,ifd1:!0,mergeOutput:!1});async function oe(e){let t=new H(le);await t.read(e);let s=await t.extractThumbnail();return s&&a?r.from(s):s}async function ue(e){let t=await this.thumbnail(e);if(void 0!==t){let e=new Blob([t]);return URL.createObjectURL(e)}}const de=Object.assign({},ae,{firstChunkSize:4e4,ifd0:[274]});async function ce(e){let t=new H(de);await t.read(e);let s=await t.parse();if(s&&s.ifd0)return s.ifd0[274]}const pe=Object.freeze({1:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:0,rad:0},2:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:0,rad:0},3:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:180,rad:180*Math.PI/180},4:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:180,rad:180*Math.PI/180},5:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:90,rad:90*Math.PI/180},6:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:90,rad:90*Math.PI/180},7:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:270,rad:270*Math.PI/180},8:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:270,rad:270*Math.PI/180}});let ge=!0,me=!0;if(\"object\"==typeof navigator){let e=navigator.userAgent;if(e.includes(\"iPad\")||e.includes(\"iPhone\")){let t=e.match(/OS (\\d+)_(\\d+)/);if(t){let[,e,s]=t,i=Number(e)+.1*Number(s);ge=i<13.4,me=!1}}else if(e.includes(\"OS X 10\")){let[,t]=e.match(/OS X 10[_.](\\d+)/);ge=me=Number(t)<15}if(e.includes(\"Chrome/\")){let[,t]=e.match(/Chrome\\/(\\d+)/);ge=me=Number(t)<81}else if(e.includes(\"Firefox/\")){let[,t]=e.match(/Firefox\\/(\\d+)/);ge=me=Number(t)<77}}async function ye(e){let t=await ce(e);return Object.assign({canvas:ge,css:me},pe[t])}class be extends c{constructor(...t){super(...t),e(this,\"ranges\",new we),0!==this.byteLength&&this.ranges.add(0,this.byteLength)}_tryExtend(e,t,s){if(0===e&&0===this.byteLength&&s){let e=new DataView(s.buffer||s,s.byteOffset,s.byteLength);this._swapDataView(e)}else{let s=e+t;if(s>this.byteLength){let{dataView:e}=this._extend(s);this._swapDataView(e)}}}_extend(e){let t;t=a?r.allocUnsafe(e):new Uint8Array(e);let s=new DataView(t.buffer,t.byteOffset,t.byteLength);return t.set(new Uint8Array(this.buffer,this.byteOffset,this.byteLength),0),{uintView:t,dataView:s}}subarray(e,t,s=!1){return t=t||this._lengthToEnd(e),s&&this._tryExtend(e,t),this.ranges.add(e,t),super.subarray(e,t)}set(e,t,s=!1){s&&this._tryExtend(t,e.byteLength,e);let i=super.set(e,t);return this.ranges.add(t,i.byteLength),i}async ensureChunk(e,t){this.chunked&&(this.ranges.available(e,t)||await this.readChunk(e,t))}available(e,t){return this.ranges.available(e,t)}}class we{constructor(){e(this,\"list\",[])}get length(){return this.list.length}add(e,t,s=0){let i=e+t,n=this.list.filter((t=>ke(e,t.offset,i)||ke(e,t.end,i)));if(n.length>0){e=Math.min(e,...n.map((e=>e.offset))),i=Math.max(i,...n.map((e=>e.end))),t=i-e;let s=n.shift();s.offset=e,s.length=t,s.end=i,this.list=this.list.filter((e=>!n.includes(e)))}else this.list.push({offset:e,length:t,end:i})}available(e,t){let s=e+t;return this.list.some((t=>t.offset<=e&&s<=t.end))}}function ke(e,t,s){return e<=t&&t<=s}class Oe extends be{constructor(t,s){super(0),e(this,\"chunksRead\",0),this.input=t,this.options=s}async readWhole(){this.chunked=!1,await this.readChunk(this.nextChunkOffset)}async readChunked(){this.chunked=!0,await this.readChunk(0,this.options.firstChunkSize)}async readNextChunk(e=this.nextChunkOffset){if(this.fullyRead)return this.chunksRead++,!1;let t=this.options.chunkSize,s=await this.readChunk(e,t);return!!s&&s.byteLength===t}async readChunk(e,t){if(this.chunksRead++,0!==(t=this.safeWrapAddress(e,t)))return this._readChunk(e,t)}safeWrapAddress(e,t){return void 0!==this.size&&e+t>this.size?Math.max(0,this.size-e):t}get nextChunkOffset(){if(0!==this.ranges.list.length)return this.ranges.list[0].length}get canReadNextChunk(){return this.chunksRead<this.options.chunkLimit}get fullyRead(){return void 0!==this.size&&this.nextChunkOffset===this.size}read(){return this.options.chunked?this.readChunked():this.readWhole()}close(){}}b.set(\"blob\",class extends Oe{async readWhole(){this.chunked=!1;let e=await A(this.input);this._swapArrayBuffer(e)}readChunked(){return this.chunked=!0,this.size=this.input.size,super.readChunked()}async _readChunk(e,t){let s=t?e+t:void 0,i=this.input.slice(e,s),n=await A(i);return this.set(n,e,!0)}});export default re;export{H as Exifr,R as Options,M as allFormatters,L as chunkedProps,x as createDictionary,C as extendDictionary,S as fetchUrlAsArrayBuffer,m as fileParsers,b as fileReaders,fe as gps,he as gpsOnlyOptions,E as inheritables,ce as orientation,de as orientationOnlyOptions,T as otherSegments,Y as parse,A as readBlobAsArrayBuffer,ge as rotateCanvas,me as rotateCss,ye as rotation,pe as rotations,y as segmentParsers,z as segments,F as segmentsAndBlocks,B as tagKeys,I as tagRevivers,V as tagValues,oe as thumbnail,le as thumbnailOnlyOptions,ue as thumbnailUrl,P as tiffBlocks,j as tiffExtractables};\n", "export default {\n  strings: {\n    generatingThumbnails: 'Generating thumbnails...'\n  }\n};", "import { UIPlugin } from '@uppy/core';\nimport dataURItoBlob from '@uppy/utils/lib/dataURItoBlob';\nimport isObjectURL from '@uppy/utils/lib/isObjectURL';\nimport isPreviewSupported from '@uppy/utils/lib/isPreviewSupported';\nimport { rotation } from 'exifr/dist/mini.esm.mjs';\nimport locale from './locale.js';\nconst packageJson = {\n  \"version\": \"3.0.8\"\n};\n/**\n * Save a <canvas> element's content to a Blob object.\n *\n * @param {HTMLCanvasElement} canvas\n * @returns {Promise}\n */\nfunction canvasToBlob(canvas, type, quality) {\n  try {\n    canvas.getContext('2d').getImageData(0, 0, 1, 1);\n  } catch (err) {\n    if (err.code === 18) {\n      return Promise.reject(new Error('cannot read image, probably an svg with external resources'));\n    }\n  }\n  if (canvas.toBlob) {\n    return new Promise(resolve => {\n      canvas.toBlob(resolve, type, quality);\n    }).then(blob => {\n      if (blob === null) {\n        throw new Error('cannot read image, probably an svg with external resources');\n      }\n      return blob;\n    });\n  }\n  return Promise.resolve().then(() => {\n    return dataURItoBlob(canvas.toDataURL(type, quality), {});\n  }).then(blob => {\n    if (blob === null) {\n      throw new Error('could not extract blob, probably an old browser');\n    }\n    return blob;\n  });\n}\nfunction rotateImage(image, translate) {\n  let w = image.width;\n  let h = image.height;\n  if (translate.deg === 90 || translate.deg === 270) {\n    w = image.height;\n    h = image.width;\n  }\n  const canvas = document.createElement('canvas');\n  canvas.width = w;\n  canvas.height = h;\n  const context = canvas.getContext('2d');\n  context.translate(w / 2, h / 2);\n  if (translate.canvas) {\n    context.rotate(translate.rad);\n    context.scale(translate.scaleX, translate.scaleY);\n  }\n  context.drawImage(image, -image.width / 2, -image.height / 2, image.width, image.height);\n  return canvas;\n}\n\n/**\n * Make sure the image doesn\u2019t exceed browser/device canvas limits.\n * For ios with 256 RAM and ie\n */\nfunction protect(image) {\n  // https://stackoverflow.com/questions/6081483/maximum-size-of-a-canvas-element\n\n  const ratio = image.width / image.height;\n  const maxSquare = 5000000; // ios max canvas square\n  const maxSize = 4096; // ie max canvas dimensions\n\n  let maxW = Math.floor(Math.sqrt(maxSquare * ratio));\n  let maxH = Math.floor(maxSquare / Math.sqrt(maxSquare * ratio));\n  if (maxW > maxSize) {\n    maxW = maxSize;\n    maxH = Math.round(maxW / ratio);\n  }\n  if (maxH > maxSize) {\n    maxH = maxSize;\n    maxW = Math.round(ratio * maxH);\n  }\n  if (image.width > maxW) {\n    const canvas = document.createElement('canvas');\n    canvas.width = maxW;\n    canvas.height = maxH;\n    canvas.getContext('2d').drawImage(image, 0, 0, maxW, maxH);\n    return canvas;\n  }\n  return image;\n}\n\n/**\n * The Thumbnail Generator plugin\n */\n\nexport default class ThumbnailGenerator extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.onFileAdded = file => {\n      if (!file.preview && file.data && isPreviewSupported(file.type) && !file.isRemote) {\n        this.addToQueue(file.id);\n      }\n    };\n    /**\n     * Cancel a lazy request for a thumbnail if the thumbnail has not yet been generated.\n     */\n    this.onCancelRequest = file => {\n      const index = this.queue.indexOf(file.id);\n      if (index !== -1) {\n        this.queue.splice(index, 1);\n      }\n    };\n    /**\n     * Clean up the thumbnail for a file. Cancel lazy requests and free the thumbnail URL.\n     */\n    this.onFileRemoved = file => {\n      const index = this.queue.indexOf(file.id);\n      if (index !== -1) {\n        this.queue.splice(index, 1);\n      }\n\n      // Clean up object URLs.\n      if (file.preview && isObjectURL(file.preview)) {\n        URL.revokeObjectURL(file.preview);\n      }\n    };\n    this.onRestored = () => {\n      const restoredFiles = this.uppy.getFiles().filter(file => file.isRestored);\n      restoredFiles.forEach(file => {\n        // Only add blob URLs; they are likely invalid after being restored.\n        if (!file.preview || isObjectURL(file.preview)) {\n          this.addToQueue(file.id);\n        }\n      });\n    };\n    this.onAllFilesRemoved = () => {\n      this.queue = [];\n    };\n    this.waitUntilAllProcessed = fileIDs => {\n      fileIDs.forEach(fileID => {\n        const file = this.uppy.getFile(fileID);\n        this.uppy.emit('preprocess-progress', file, {\n          mode: 'indeterminate',\n          message: this.i18n('generatingThumbnails')\n        });\n      });\n      const emitPreprocessCompleteForAll = () => {\n        fileIDs.forEach(fileID => {\n          const file = this.uppy.getFile(fileID);\n          this.uppy.emit('preprocess-complete', file);\n        });\n      };\n      return new Promise(resolve => {\n        if (this.queueProcessing) {\n          this.uppy.once('thumbnail:all-generated', () => {\n            emitPreprocessCompleteForAll();\n            resolve();\n          });\n        } else {\n          emitPreprocessCompleteForAll();\n          resolve();\n        }\n      });\n    };\n    this.type = 'modifier';\n    this.id = this.opts.id || 'ThumbnailGenerator';\n    this.title = 'Thumbnail Generator';\n    this.queue = [];\n    this.queueProcessing = false;\n    this.defaultThumbnailDimension = 200;\n    this.thumbnailType = this.opts.thumbnailType || 'image/jpeg';\n    this.defaultLocale = locale;\n    const defaultOptions = {\n      thumbnailWidth: null,\n      thumbnailHeight: null,\n      waitForThumbnailsBeforeUpload: false,\n      lazy: false\n    };\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.i18nInit();\n    if (this.opts.lazy && this.opts.waitForThumbnailsBeforeUpload) {\n      throw new Error('ThumbnailGenerator: The `lazy` and `waitForThumbnailsBeforeUpload` options are mutually exclusive. Please ensure at most one of them is set to `true`.');\n    }\n  }\n\n  /**\n   * Create a thumbnail for the given Uppy file object.\n   *\n   * @param {{data: Blob}} file\n   * @param {number} targetWidth\n   * @param {number} targetHeight\n   * @returns {Promise}\n   */\n  createThumbnail(file, targetWidth, targetHeight) {\n    const originalUrl = URL.createObjectURL(file.data);\n    const onload = new Promise((resolve, reject) => {\n      const image = new Image();\n      image.src = originalUrl;\n      image.addEventListener('load', () => {\n        URL.revokeObjectURL(originalUrl);\n        resolve(image);\n      });\n      image.addEventListener('error', event => {\n        URL.revokeObjectURL(originalUrl);\n        reject(event.error || new Error('Could not create thumbnail'));\n      });\n    });\n    const orientationPromise = rotation(file.data).catch(() => 1);\n    return Promise.all([onload, orientationPromise]).then(_ref => {\n      let [image, orientation] = _ref;\n      const dimensions = this.getProportionalDimensions(image, targetWidth, targetHeight, orientation.deg);\n      const rotatedImage = rotateImage(image, orientation);\n      const resizedImage = this.resizeImage(rotatedImage, dimensions.width, dimensions.height);\n      return canvasToBlob(resizedImage, this.thumbnailType, 80);\n    }).then(blob => {\n      return URL.createObjectURL(blob);\n    });\n  }\n\n  /**\n   * Get the new calculated dimensions for the given image and a target width\n   * or height. If both width and height are given, only width is taken into\n   * account. If neither width nor height are given, the default dimension\n   * is used.\n   */\n  getProportionalDimensions(img, width, height, rotation) {\n    // eslint-disable-line no-shadow\n    let aspect = img.width / img.height;\n    if (rotation === 90 || rotation === 270) {\n      aspect = img.height / img.width;\n    }\n    if (width != null) {\n      return {\n        width,\n        height: Math.round(width / aspect)\n      };\n    }\n    if (height != null) {\n      return {\n        width: Math.round(height * aspect),\n        height\n      };\n    }\n    return {\n      width: this.defaultThumbnailDimension,\n      height: Math.round(this.defaultThumbnailDimension / aspect)\n    };\n  }\n\n  /**\n   * Resize an image to the target `width` and `height`.\n   *\n   * Returns a Canvas with the resized image on it.\n   */\n  // eslint-disable-next-line class-methods-use-this\n  resizeImage(image, targetWidth, targetHeight) {\n    // Resizing in steps refactored to use a solution from\n    // https://blog.uploadcare.com/image-resize-in-browsers-is-broken-e38eed08df01\n\n    let img = protect(image);\n    let steps = Math.ceil(Math.log2(img.width / targetWidth));\n    if (steps < 1) {\n      steps = 1;\n    }\n    let sW = targetWidth * 2 ** (steps - 1);\n    let sH = targetHeight * 2 ** (steps - 1);\n    const x = 2;\n    while (steps--) {\n      const canvas = document.createElement('canvas');\n      canvas.width = sW;\n      canvas.height = sH;\n      canvas.getContext('2d').drawImage(img, 0, 0, sW, sH);\n      img = canvas;\n      sW = Math.round(sW / x);\n      sH = Math.round(sH / x);\n    }\n    return img;\n  }\n\n  /**\n   * Set the preview URL for a file.\n   */\n  setPreviewURL(fileID, preview) {\n    this.uppy.setFileState(fileID, {\n      preview\n    });\n  }\n  addToQueue(item) {\n    this.queue.push(item);\n    if (this.queueProcessing === false) {\n      this.processQueue();\n    }\n  }\n  processQueue() {\n    this.queueProcessing = true;\n    if (this.queue.length > 0) {\n      const current = this.uppy.getFile(this.queue.shift());\n      if (!current) {\n        this.uppy.log('[ThumbnailGenerator] file was removed before a thumbnail could be generated, but not removed from the queue. This is probably a bug', 'error');\n        return Promise.resolve();\n      }\n      return this.requestThumbnail(current).catch(() => {}) // eslint-disable-line node/handle-callback-err\n      .then(() => this.processQueue());\n    }\n    this.queueProcessing = false;\n    this.uppy.log('[ThumbnailGenerator] Emptied thumbnail queue');\n    this.uppy.emit('thumbnail:all-generated');\n    return Promise.resolve();\n  }\n  requestThumbnail(file) {\n    if (isPreviewSupported(file.type) && !file.isRemote) {\n      return this.createThumbnail(file, this.opts.thumbnailWidth, this.opts.thumbnailHeight).then(preview => {\n        this.setPreviewURL(file.id, preview);\n        this.uppy.log(`[ThumbnailGenerator] Generated thumbnail for ${file.id}`);\n        this.uppy.emit('thumbnail:generated', this.uppy.getFile(file.id), preview);\n      }).catch(err => {\n        this.uppy.log(`[ThumbnailGenerator] Failed thumbnail for ${file.id}:`, 'warning');\n        this.uppy.log(err, 'warning');\n        this.uppy.emit('thumbnail:error', this.uppy.getFile(file.id), err);\n      });\n    }\n    return Promise.resolve();\n  }\n  install() {\n    this.uppy.on('file-removed', this.onFileRemoved);\n    this.uppy.on('cancel-all', this.onAllFilesRemoved);\n    if (this.opts.lazy) {\n      this.uppy.on('thumbnail:request', this.onFileAdded);\n      this.uppy.on('thumbnail:cancel', this.onCancelRequest);\n    } else {\n      this.uppy.on('thumbnail:request', this.onFileAdded);\n      this.uppy.on('file-added', this.onFileAdded);\n      this.uppy.on('restored', this.onRestored);\n    }\n    if (this.opts.waitForThumbnailsBeforeUpload) {\n      this.uppy.addPreProcessor(this.waitUntilAllProcessed);\n    }\n  }\n  uninstall() {\n    this.uppy.off('file-removed', this.onFileRemoved);\n    this.uppy.off('cancel-all', this.onAllFilesRemoved);\n    if (this.opts.lazy) {\n      this.uppy.off('thumbnail:request', this.onFileAdded);\n      this.uppy.off('thumbnail:cancel', this.onCancelRequest);\n    } else {\n      this.uppy.off('thumbnail:request', this.onFileAdded);\n      this.uppy.off('file-added', this.onFileAdded);\n      this.uppy.off('restored', this.onRestored);\n    }\n    if (this.opts.waitForThumbnailsBeforeUpload) {\n      this.uppy.removePreProcessor(this.waitUntilAllProcessed);\n    }\n  }\n}\nThumbnailGenerator.VERSION = packageJson.version;", "import isDOMElement from \"./isDOMElement.js\";\n/**\n * Find one or more DOM elements.\n */\nfunction findAllDOMElements(element) {\n  if (typeof element === 'string') {\n    const elements = document.querySelectorAll(element);\n    return elements.length === 0 ? null : Array.from(elements);\n  }\n  if (typeof element === 'object' && isDOMElement(element)) {\n    return [element];\n  }\n  return null;\n}\nexport default findAllDOMElements;", "/**\n * Converts list into array\n */\nexport default Array.from;", "/**\n * Recursive function, calls the original callback() when the directory is entirely parsed.\n */\nexport default function getFilesAndDirectoriesFromDirectory(directoryReader, oldEntries, logDropError, _ref) {\n  let {\n    onSuccess\n  } = _ref;\n  directoryReader.readEntries(entries => {\n    const newEntries = [...oldEntries, ...entries];\n    // According to the FileSystem API spec, getFilesAndDirectoriesFromDirectory()\n    // must be called until it calls the onSuccess with an empty array.\n    if (entries.length) {\n      queueMicrotask(() => {\n        getFilesAndDirectoriesFromDirectory(directoryReader, newEntries, logDropError, {\n          onSuccess\n        });\n      });\n      // Done iterating this particular directory\n    } else {\n      onSuccess(newEntries);\n    }\n  },\n  // Make sure we resolve on error anyway, it's fine if only one directory couldn't be parsed!\n  error => {\n    logDropError(error);\n    onSuccess(oldEntries);\n  });\n}", "import getFilesAndDirectoriesFromDirectory from \"./getFilesAndDirectoriesFromDirectory.js\";\n/**\n * Polyfill for the new (experimental) getAsFileSystemHandle API (using the popular webkitGetAsEntry behind the scenes)\n * so that we can switch to the getAsFileSystemHandle API once it (hopefully) becomes standard\n */\nfunction getAsFileSystemHandleFromEntry(entry, logDropError) {\n  if (entry == null) return entry;\n  return {\n    kind:\n    // eslint-disable-next-line no-nested-ternary\n    entry.isFile ? 'file' : entry.isDirectory ? 'directory' : undefined,\n    name: entry.name,\n    getFile() {\n      return new Promise((resolve, reject) => entry.file(resolve, reject));\n    },\n    async *values() {\n      // If the file is a directory.\n      const directoryReader = entry.createReader();\n      const entries = await new Promise(resolve => {\n        getFilesAndDirectoriesFromDirectory(directoryReader, [], logDropError, {\n          onSuccess: dirEntries => resolve(dirEntries.map(file => getAsFileSystemHandleFromEntry(file, logDropError)))\n        });\n      });\n      yield* entries;\n    },\n    isSameEntry: undefined\n  };\n}\nfunction createPromiseToAddFileOrParseDirectory(entry, relativePath, lastResortFile) {\n  try {\n    if (lastResortFile === void 0) {\n      lastResortFile = undefined;\n    }\n    return async function* () {\n      const getNextRelativePath = () => `${relativePath}/${entry.name}`;\n\n      // For each dropped item, - make sure it's a file/directory, and start deepening in!\n      if (entry.kind === 'file') {\n        const file = await entry.getFile();\n        if (file != null) {\n          ;\n          file.relativePath = relativePath ? getNextRelativePath() : null;\n          yield file;\n        } else if (lastResortFile != null) yield lastResortFile;\n      } else if (entry.kind === 'directory') {\n        for await (const handle of entry.values()) {\n          // Recurse on the directory, appending the dir name to the relative path\n          yield* createPromiseToAddFileOrParseDirectory(handle, relativePath ? getNextRelativePath() : entry.name);\n        }\n      } else if (lastResortFile != null) yield lastResortFile;\n    }();\n  } catch (e) {\n    return Promise.reject(e);\n  }\n}\n\n/**\n * Load all files from data transfer, and recursively read any directories.\n * Note that IE is not supported for drag-drop, because IE doesn't support Data Transfers\n *\n * @param {DataTransfer} dataTransfer\n * @param {*} logDropError on error\n */\nexport default async function* getFilesFromDataTransfer(dataTransfer, logDropError) {\n  // Retrieving the dropped items must happen synchronously\n  // otherwise only the first item gets treated and the other ones are garbage collected.\n  // https://github.com/transloadit/uppy/pull/3998\n  const fileSystemHandles = await Promise.all(Array.from(dataTransfer.items, async item => {\n    var _fileSystemHandle;\n    let fileSystemHandle;\n\n    // TODO enable getAsFileSystemHandle API once we can get it working with subdirectories\n    // IMPORTANT: Need to check isSecureContext *before* calling getAsFileSystemHandle\n    // or else Chrome will crash when running in HTTP: https://github.com/transloadit/uppy/issues/4133\n    // if (window.isSecureContext && item.getAsFileSystemHandle != null)\n    // fileSystemHandle = await item.getAsFileSystemHandle()\n\n    // `webkitGetAsEntry` exists in all popular browsers (including non-WebKit browsers),\n    // however it may be renamed to getAsEntry() in the future, so you should code defensively, looking for both.\n    // from https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/webkitGetAsEntry\n    const getAsEntry = () => typeof item.getAsEntry === 'function' ? item.getAsEntry() : item.webkitGetAsEntry();\n    // eslint-disable-next-line prefer-const\n    (_fileSystemHandle = fileSystemHandle) != null ? _fileSystemHandle : fileSystemHandle = getAsFileSystemHandleFromEntry(getAsEntry(), logDropError);\n    return {\n      fileSystemHandle,\n      lastResortFile: item.getAsFile() // can be used as a fallback in case other methods fail\n    };\n  }));\n  for (const {\n    lastResortFile,\n    fileSystemHandle\n  } of fileSystemHandles) {\n    // fileSystemHandle and lastResortFile can be null when we drop an url.\n    if (fileSystemHandle != null) {\n      try {\n        yield* createPromiseToAddFileOrParseDirectory(fileSystemHandle, '', lastResortFile);\n      } catch (err) {\n        // Example: If dropping a symbolic link, Chromium will throw:\n        // \"DOMException: A requested file or directory could not be found at the time an operation was processed.\",\n        // So we will use lastResortFile instead. See https://github.com/transloadit/uppy/issues/3505.\n        if (lastResortFile != null) {\n          yield lastResortFile;\n        } else {\n          logDropError(err);\n        }\n      }\n    } else if (lastResortFile != null) yield lastResortFile;\n  }\n}", "import toArray from \"../../toArray.js\";\n\n// .files fallback, should be implemented in any browser\nexport default function fallbackApi(dataTransfer) {\n  const files = toArray(dataTransfer.files);\n  return Promise.resolve(files);\n}", "import webkitGetAsEntryApi from \"./utils/webkitGetAsEntryApi/index.js\";\nimport fallbackApi from \"./utils/fallbackApi.js\";\n\n/**\n * Returns a promise that resolves to the array of dropped files (if a folder is\n * dropped, and browser supports folder parsing - promise resolves to the flat\n * array of all files in all directories).\n * Each file has .relativePath prop appended to it (e.g. \"/docs/Prague/ticket_from_prague_to_ufa.pdf\")\n * if browser supports it. Otherwise it's undefined.\n *\n * @param dataTransfer\n * @param options\n * @param options.logDropError - a function that's called every time some\n * folder or some file error out (e.g. because of the folder name being too long\n * on Windows). Notice that resulting promise will always be resolved anyway.\n *\n * @returns {Promise} - Array<File>\n */\nexport default async function getDroppedFiles(dataTransfer, options) {\n  var _options$logDropError;\n  // Get all files from all subdirs. Works (at least) in Chrome, Mozilla, and Safari\n  const logDropError = (_options$logDropError = options == null ? void 0 : options.logDropError) != null ? _options$logDropError : Function.prototype;\n  try {\n    const accumulator = [];\n    for await (const file of webkitGetAsEntryApi(dataTransfer, logDropError)) {\n      accumulator.push(file);\n    }\n    return accumulator;\n    // Otherwise just return all first-order files\n  } catch {\n    return fallbackApi(dataTransfer);\n  }\n}", "import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n", "export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined ?\n\tnew AbortError(errorMessage) :\n\tnew DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined ?\n\t\tgetDOMException('This operation was aborted.') :\n\t\tsignal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, milliseconds, fallback, options) {\n\tlet timer;\n\n\tconst cancelablePromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tresolve(promise);\n\t\t\treturn;\n\t\t}\n\n\t\toptions = {\n\t\t\tcustomTimers: {setTimeout, clearTimeout},\n\t\t\t...options\n\t\t};\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\ttimer = options.customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (typeof fallback === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst message = typeof fallback === 'string' ? fallback : `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\tconst timeoutError = fallback instanceof Error ? fallback : new TimeoutError(message);\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\treject(timeoutError);\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t} finally {\n\t\t\t\toptions.customTimers.clearTimeout.call(undefined, timer);\n\t\t\t}\n\t\t})();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tclearTimeout(timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n", "// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n    let first = 0;\n    let count = array.length;\n    while (count > 0) {\n        const step = Math.trunc(count / 2);\n        let it = first + step;\n        if (comparator(array[it], value) <= 0) {\n            first = ++it;\n            count -= step + 1;\n        }\n        else {\n            count = step;\n        }\n    }\n    return first;\n}\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PriorityQueue_queue;\nimport lowerBound from './lower-bound.js';\nclass PriorityQueue {\n    constructor() {\n        _PriorityQueue_queue.set(this, []);\n    }\n    enqueue(run, options) {\n        options = {\n            priority: 0,\n            ...options,\n        };\n        const element = {\n            priority: options.priority,\n            run,\n        };\n        if (this.size && __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\")[this.size - 1].priority >= options.priority) {\n            __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").push(element);\n            return;\n        }\n        const index = lowerBound(__classPrivateFieldGet(this, _PriorityQueue_queue, \"f\"), element, (a, b) => b.priority - a.priority);\n        __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").splice(index, 0, element);\n    }\n    dequeue() {\n        const item = __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").shift();\n        return item === null || item === void 0 ? void 0 : item.run;\n    }\n    filter(options) {\n        return __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").filter((element) => element.priority === options.priority).map((element) => element.run);\n    }\n    get size() {\n        return __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").length;\n    }\n}\n_PriorityQueue_queue = new WeakMap();\nexport default PriorityQueue;\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PQueue_instances, _PQueue_carryoverConcurrencyCount, _PQueue_isIntervalIgnored, _PQueue_intervalCount, _PQueue_intervalCap, _PQueue_interval, _PQueue_intervalEnd, _PQueue_intervalId, _PQueue_timeoutId, _PQueue_queue, _PQueue_queueClass, _PQueue_pending, _PQueue_concurrency, _PQueue_isPaused, _PQueue_throwOnTimeout, _PQueue_doesIntervalAllowAnother_get, _PQueue_doesConcurrentAllowAnother_get, _PQueue_next, _PQueue_onResumeInterval, _PQueue_isIntervalPaused_get, _PQueue_tryToStartAnother, _PQueue_initializeIntervalIfNeeded, _PQueue_onInterval, _PQueue_processQueue, _PQueue_throwOnAbort, _PQueue_onEvent;\nimport { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nThe error thrown by `queue.add()` when a job is aborted before it is run. See `signal`.\n*/\nexport class AbortError extends Error {\n}\n/**\nPromise queue with concurrency control.\n*/\nclass PQueue extends EventEmitter {\n    // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n    constructor(options) {\n        var _a, _b, _c, _d;\n        super();\n        _PQueue_instances.add(this);\n        _PQueue_carryoverConcurrencyCount.set(this, void 0);\n        _PQueue_isIntervalIgnored.set(this, void 0);\n        _PQueue_intervalCount.set(this, 0);\n        _PQueue_intervalCap.set(this, void 0);\n        _PQueue_interval.set(this, void 0);\n        _PQueue_intervalEnd.set(this, 0);\n        _PQueue_intervalId.set(this, void 0);\n        _PQueue_timeoutId.set(this, void 0);\n        _PQueue_queue.set(this, void 0);\n        _PQueue_queueClass.set(this, void 0);\n        _PQueue_pending.set(this, 0);\n        // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n        _PQueue_concurrency.set(this, void 0);\n        _PQueue_isPaused.set(this, void 0);\n        _PQueue_throwOnTimeout.set(this, void 0);\n        /**\n        Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n    \n        Applies to each future operation.\n        */\n        Object.defineProperty(this, \"timeout\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n        options = {\n            carryoverConcurrencyCount: false,\n            intervalCap: Number.POSITIVE_INFINITY,\n            interval: 0,\n            concurrency: Number.POSITIVE_INFINITY,\n            autoStart: true,\n            queueClass: PriorityQueue,\n            ...options,\n        };\n        if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n            throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${(_b = (_a = options.intervalCap) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''}\\` (${typeof options.intervalCap})`);\n        }\n        if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n            throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${(_d = (_c = options.interval) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : ''}\\` (${typeof options.interval})`);\n        }\n        __classPrivateFieldSet(this, _PQueue_carryoverConcurrencyCount, options.carryoverConcurrencyCount, \"f\");\n        __classPrivateFieldSet(this, _PQueue_isIntervalIgnored, options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0, \"f\");\n        __classPrivateFieldSet(this, _PQueue_intervalCap, options.intervalCap, \"f\");\n        __classPrivateFieldSet(this, _PQueue_interval, options.interval, \"f\");\n        __classPrivateFieldSet(this, _PQueue_queue, new options.queueClass(), \"f\");\n        __classPrivateFieldSet(this, _PQueue_queueClass, options.queueClass, \"f\");\n        this.concurrency = options.concurrency;\n        this.timeout = options.timeout;\n        __classPrivateFieldSet(this, _PQueue_throwOnTimeout, options.throwOnTimeout === true, \"f\");\n        __classPrivateFieldSet(this, _PQueue_isPaused, options.autoStart === false, \"f\");\n    }\n    get concurrency() {\n        return __classPrivateFieldGet(this, _PQueue_concurrency, \"f\");\n    }\n    set concurrency(newConcurrency) {\n        if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n            throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n        }\n        __classPrivateFieldSet(this, _PQueue_concurrency, newConcurrency, \"f\");\n        __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n    }\n    async add(function_, options = {}) {\n        options = {\n            timeout: this.timeout,\n            throwOnTimeout: __classPrivateFieldGet(this, _PQueue_throwOnTimeout, \"f\"),\n            ...options,\n        };\n        return new Promise((resolve, reject) => {\n            __classPrivateFieldGet(this, _PQueue_queue, \"f\").enqueue(async () => {\n                var _a;\n                var _b, _c;\n                __classPrivateFieldSet(this, _PQueue_pending, (_b = __classPrivateFieldGet(this, _PQueue_pending, \"f\"), _b++, _b), \"f\");\n                __classPrivateFieldSet(this, _PQueue_intervalCount, (_c = __classPrivateFieldGet(this, _PQueue_intervalCount, \"f\"), _c++, _c), \"f\");\n                try {\n                    // TODO: Use options.signal?.throwIfAborted() when targeting Node.js 18\n                    if ((_a = options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {\n                        // TODO: Use ABORT_ERR code when targeting Node.js 16 (https://nodejs.org/docs/latest-v16.x/api/errors.html#abort_err)\n                        throw new AbortError('The task was aborted.');\n                    }\n                    let operation = function_({ signal: options.signal });\n                    if (options.timeout) {\n                        operation = pTimeout(Promise.resolve(operation), options.timeout);\n                    }\n                    if (options.signal) {\n                        operation = Promise.race([operation, __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_throwOnAbort).call(this, options.signal)]);\n                    }\n                    const result = await operation;\n                    resolve(result);\n                    this.emit('completed', result);\n                }\n                catch (error) {\n                    if (error instanceof TimeoutError && !options.throwOnTimeout) {\n                        resolve();\n                        return;\n                    }\n                    reject(error);\n                    this.emit('error', error);\n                }\n                finally {\n                    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_next).call(this);\n                }\n            }, options);\n            this.emit('add');\n            __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this);\n        });\n    }\n    async addAll(functions, options) {\n        return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n    }\n    /**\n    Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n    */\n    start() {\n        if (!__classPrivateFieldGet(this, _PQueue_isPaused, \"f\")) {\n            return this;\n        }\n        __classPrivateFieldSet(this, _PQueue_isPaused, false, \"f\");\n        __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n        return this;\n    }\n    /**\n    Put queue execution on hold.\n    */\n    pause() {\n        __classPrivateFieldSet(this, _PQueue_isPaused, true, \"f\");\n    }\n    /**\n    Clear the queue.\n    */\n    clear() {\n        __classPrivateFieldSet(this, _PQueue_queue, new (__classPrivateFieldGet(this, _PQueue_queueClass, \"f\"))(), \"f\");\n    }\n    /**\n    Can be called multiple times. Useful if you for example add additional items at a later time.\n\n    @returns A promise that settles when the queue becomes empty.\n    */\n    async onEmpty() {\n        // Instantly resolve if the queue is empty\n        if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n            return;\n        }\n        await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'empty');\n    }\n    /**\n    @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n    If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n    Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n    */\n    async onSizeLessThan(limit) {\n        // Instantly resolve if the queue is empty.\n        if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size < limit) {\n            return;\n        }\n        await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'next', () => __classPrivateFieldGet(this, _PQueue_queue, \"f\").size < limit);\n    }\n    /**\n    The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n    @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n    */\n    async onIdle() {\n        // Instantly resolve if none pending and if nothing else is queued\n        if (__classPrivateFieldGet(this, _PQueue_pending, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n            return;\n        }\n        await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'idle');\n    }\n    /**\n    Size of the queue, the number of queued items waiting to run.\n    */\n    get size() {\n        return __classPrivateFieldGet(this, _PQueue_queue, \"f\").size;\n    }\n    /**\n    Size of the queue, filtered by the given options.\n\n    For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n    */\n    sizeBy(options) {\n        // eslint-disable-next-line unicorn/no-array-callback-reference\n        return __classPrivateFieldGet(this, _PQueue_queue, \"f\").filter(options).length;\n    }\n    /**\n    Number of running items (no longer in the queue).\n    */\n    get pending() {\n        return __classPrivateFieldGet(this, _PQueue_pending, \"f\");\n    }\n    /**\n    Whether the queue is currently paused.\n    */\n    get isPaused() {\n        return __classPrivateFieldGet(this, _PQueue_isPaused, \"f\");\n    }\n}\n_PQueue_carryoverConcurrencyCount = new WeakMap(), _PQueue_isIntervalIgnored = new WeakMap(), _PQueue_intervalCount = new WeakMap(), _PQueue_intervalCap = new WeakMap(), _PQueue_interval = new WeakMap(), _PQueue_intervalEnd = new WeakMap(), _PQueue_intervalId = new WeakMap(), _PQueue_timeoutId = new WeakMap(), _PQueue_queue = new WeakMap(), _PQueue_queueClass = new WeakMap(), _PQueue_pending = new WeakMap(), _PQueue_concurrency = new WeakMap(), _PQueue_isPaused = new WeakMap(), _PQueue_throwOnTimeout = new WeakMap(), _PQueue_instances = new WeakSet(), _PQueue_doesIntervalAllowAnother_get = function _PQueue_doesIntervalAllowAnother_get() {\n    return __classPrivateFieldGet(this, _PQueue_isIntervalIgnored, \"f\") || __classPrivateFieldGet(this, _PQueue_intervalCount, \"f\") < __classPrivateFieldGet(this, _PQueue_intervalCap, \"f\");\n}, _PQueue_doesConcurrentAllowAnother_get = function _PQueue_doesConcurrentAllowAnother_get() {\n    return __classPrivateFieldGet(this, _PQueue_pending, \"f\") < __classPrivateFieldGet(this, _PQueue_concurrency, \"f\");\n}, _PQueue_next = function _PQueue_next() {\n    var _a;\n    __classPrivateFieldSet(this, _PQueue_pending, (_a = __classPrivateFieldGet(this, _PQueue_pending, \"f\"), _a--, _a), \"f\");\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this);\n    this.emit('next');\n}, _PQueue_onResumeInterval = function _PQueue_onResumeInterval() {\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onInterval).call(this);\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_initializeIntervalIfNeeded).call(this);\n    __classPrivateFieldSet(this, _PQueue_timeoutId, undefined, \"f\");\n}, _PQueue_isIntervalPaused_get = function _PQueue_isIntervalPaused_get() {\n    const now = Date.now();\n    if (__classPrivateFieldGet(this, _PQueue_intervalId, \"f\") === undefined) {\n        const delay = __classPrivateFieldGet(this, _PQueue_intervalEnd, \"f\") - now;\n        if (delay < 0) {\n            // Act as the interval was done\n            // We don't need to resume it here because it will be resumed on line 160\n            __classPrivateFieldSet(this, _PQueue_intervalCount, (__classPrivateFieldGet(this, _PQueue_carryoverConcurrencyCount, \"f\")) ? __classPrivateFieldGet(this, _PQueue_pending, \"f\") : 0, \"f\");\n        }\n        else {\n            // Act as the interval is pending\n            if (__classPrivateFieldGet(this, _PQueue_timeoutId, \"f\") === undefined) {\n                __classPrivateFieldSet(this, _PQueue_timeoutId, setTimeout(() => {\n                    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onResumeInterval).call(this);\n                }, delay), \"f\");\n            }\n            return true;\n        }\n    }\n    return false;\n}, _PQueue_tryToStartAnother = function _PQueue_tryToStartAnother() {\n    if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n        // We can clear the interval (\"pause\")\n        // Because we can redo it later (\"resume\")\n        if (__classPrivateFieldGet(this, _PQueue_intervalId, \"f\")) {\n            clearInterval(__classPrivateFieldGet(this, _PQueue_intervalId, \"f\"));\n        }\n        __classPrivateFieldSet(this, _PQueue_intervalId, undefined, \"f\");\n        this.emit('empty');\n        if (__classPrivateFieldGet(this, _PQueue_pending, \"f\") === 0) {\n            this.emit('idle');\n        }\n        return false;\n    }\n    if (!__classPrivateFieldGet(this, _PQueue_isPaused, \"f\")) {\n        const canInitializeInterval = !__classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_isIntervalPaused_get);\n        if (__classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_doesIntervalAllowAnother_get) && __classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_doesConcurrentAllowAnother_get)) {\n            const job = __classPrivateFieldGet(this, _PQueue_queue, \"f\").dequeue();\n            if (!job) {\n                return false;\n            }\n            this.emit('active');\n            job();\n            if (canInitializeInterval) {\n                __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_initializeIntervalIfNeeded).call(this);\n            }\n            return true;\n        }\n    }\n    return false;\n}, _PQueue_initializeIntervalIfNeeded = function _PQueue_initializeIntervalIfNeeded() {\n    if (__classPrivateFieldGet(this, _PQueue_isIntervalIgnored, \"f\") || __classPrivateFieldGet(this, _PQueue_intervalId, \"f\") !== undefined) {\n        return;\n    }\n    __classPrivateFieldSet(this, _PQueue_intervalId, setInterval(() => {\n        __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onInterval).call(this);\n    }, __classPrivateFieldGet(this, _PQueue_interval, \"f\")), \"f\");\n    __classPrivateFieldSet(this, _PQueue_intervalEnd, Date.now() + __classPrivateFieldGet(this, _PQueue_interval, \"f\"), \"f\");\n}, _PQueue_onInterval = function _PQueue_onInterval() {\n    if (__classPrivateFieldGet(this, _PQueue_intervalCount, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_pending, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_intervalId, \"f\")) {\n        clearInterval(__classPrivateFieldGet(this, _PQueue_intervalId, \"f\"));\n        __classPrivateFieldSet(this, _PQueue_intervalId, undefined, \"f\");\n    }\n    __classPrivateFieldSet(this, _PQueue_intervalCount, __classPrivateFieldGet(this, _PQueue_carryoverConcurrencyCount, \"f\") ? __classPrivateFieldGet(this, _PQueue_pending, \"f\") : 0, \"f\");\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n}, _PQueue_processQueue = function _PQueue_processQueue() {\n    // eslint-disable-next-line no-empty\n    while (__classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this)) { }\n}, _PQueue_throwOnAbort = async function _PQueue_throwOnAbort(signal) {\n    return new Promise((_resolve, reject) => {\n        signal.addEventListener('abort', () => {\n            // TODO: Reject with signal.throwIfAborted() when targeting Node.js 18\n            // TODO: Use ABORT_ERR code when targeting Node.js 16 (https://nodejs.org/docs/latest-v16.x/api/errors.html#abort_err)\n            reject(new AbortError('The task was aborted.'));\n        }, { once: true });\n    });\n}, _PQueue_onEvent = async function _PQueue_onEvent(event, filter) {\n    return new Promise(resolve => {\n        const listener = () => {\n            if (filter && !filter()) {\n                return;\n            }\n            this.off(event, listener);\n            resolve();\n        };\n        this.on(event, listener);\n    });\n};\nexport default PQueue;\n", "import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentIndex = 0;\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tlet prevScu = currentComponent.shouldComponentUpdate;\n\t\t\tconst prevCWU = currentComponent.componentWillUpdate;\n\n\t\t\t// If we're dealing with a forced update `shouldComponentUpdate` will\n\t\t\t// not be called. But we use that to update the hook values, so we\n\t\t\t// need to call it.\n\t\t\tcurrentComponent.componentWillUpdate = function (p, s, c) {\n\t\t\t\tif (this._force) {\n\t\t\t\t\tlet tmp = prevScu;\n\t\t\t\t\t// Clear to avoid other sCU hooks from being called\n\t\t\t\t\tprevScu = undefined;\n\t\t\t\t\tupdateHookState(p, s, c);\n\t\t\t\t\tprevScu = tmp;\n\t\t\t\t}\n\n\t\t\t\tif (prevCWU) prevCWU.call(this, p, s, c);\n\t\t\t};\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\t/**\n\t\t\t *\n\t\t\t * @type {import('./internal').Component[\"shouldComponentUpdate\"]}\n\t\t\t */\n\t\t\t// @ts-ignore - We don't use TS to downtranspile\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction updateHookState(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\tcurrentComponent.shouldComponentUpdate = updateHookState;\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport { useCallback } from 'preact/hooks';\nfunction GoogleIcon() {\n  return h(\"svg\", {\n    width: \"26\",\n    height: \"26\",\n    viewBox: \"0 0 26 26\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, h(\"g\", {\n    fill: \"none\",\n    \"fill-rule\": \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#FFF\",\n    cx: \"13\",\n    cy: \"13\",\n    r: \"13\"\n  }), h(\"path\", {\n    d: \"M21.64 13.205c0-.639-.057-1.252-.164-1.841H13v3.481h4.844a4.14 4.14 0 01-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615z\",\n    fill: \"#4285F4\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M13 22c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H4.957v2.332A8.997 8.997 0 0013 22z\",\n    fill: \"#34A853\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M7.964 14.71A5.41 5.41 0 017.682 13c0-.593.102-1.17.282-1.71V8.958H4.957A8.996 8.996 0 004 13c0 1.452.348 2.827.957 4.042l3.007-2.332z\",\n    fill: \"#FBBC05\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M13 7.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C17.463 4.891 15.426 4 13 4a8.997 8.997 0 00-8.043 4.958l3.007 2.332C8.672 9.163 10.656 7.58 13 7.58z\",\n    fill: \"#EA4335\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M4 4h18v18H4z\"\n  })));\n}\nfunction DefaultForm(_ref) {\n  let {\n    pluginName,\n    i18n,\n    onAuth\n  } = _ref;\n  // In order to comply with Google's brand we need to create a different button\n  // for the Google Drive plugin\n  const isGoogleDrive = pluginName === 'Google Drive';\n  const onSubmit = useCallback(e => {\n    e.preventDefault();\n    onAuth();\n  }, [onAuth]);\n  return h(\"form\", {\n    onSubmit: onSubmit\n  }, isGoogleDrive ? h(\"button\", {\n    type: \"submit\",\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Provider-authBtn uppy-Provider-btn-google\",\n    \"data-uppy-super-focusable\": true\n  }, h(GoogleIcon, null), i18n('signInWithGoogle')) : h(\"button\", {\n    type: \"submit\",\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Provider-authBtn\",\n    \"data-uppy-super-focusable\": true\n  }, i18n('authenticateWith', {\n    pluginName\n  })));\n}\nconst defaultRenderForm = _ref2 => {\n  let {\n    pluginName,\n    i18n,\n    onAuth\n  } = _ref2;\n  return h(DefaultForm, {\n    pluginName: pluginName,\n    i18n: i18n,\n    onAuth: onAuth\n  });\n};\nexport default function AuthView(props) {\n  const {\n    loading,\n    pluginName,\n    pluginIcon,\n    i18n,\n    handleAuth,\n    renderForm = defaultRenderForm\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Provider-auth\"\n  }, h(\"div\", {\n    className: \"uppy-Provider-authIcon\"\n  }, pluginIcon()), h(\"div\", {\n    className: \"uppy-Provider-authTitle\"\n  }, i18n('authenticateWithTitle', {\n    pluginName\n  })), h(\"div\", {\n    className: \"uppy-Provider-authForm\"\n  }, renderForm({\n    pluginName,\n    i18n,\n    loading,\n    onAuth: handleAuth\n  })));\n}", "import { h, Fragment } from 'preact';\nexport default function User(_ref) {\n  let {\n    i18n,\n    logout,\n    username\n  } = _ref;\n  return h(Fragment, null, h(\"span\", {\n    className: \"uppy-ProviderBrowser-user\",\n    key: \"username\"\n  }, username), h(\"button\", {\n    type: \"button\",\n    onClick: logout,\n    className: \"uppy-u-reset uppy-c-btn uppy-ProviderBrowser-userLogout\",\n    key: \"logout\"\n  }, i18n('logOut')));\n}", "import { h, Fragment } from 'preact';\nconst Breadcrumb = props => {\n  const {\n    getFolder,\n    title,\n    isLast\n  } = props;\n  return h(Fragment, null, h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn\",\n    onClick: getFolder\n  }, title), !isLast ? ' / ' : '');\n};\nexport default function Breadcrumbs(props) {\n  const {\n    getFolder,\n    title,\n    breadcrumbsIcon,\n    breadcrumbs\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Provider-breadcrumbs\"\n  }, h(\"div\", {\n    className: \"uppy-Provider-breadcrumbsIcon\"\n  }, breadcrumbsIcon), breadcrumbs.map((directory, i) => h(Breadcrumb, {\n    key: directory.id,\n    getFolder: () => getFolder(directory.requestPath, directory.name),\n    title: i === 0 ? title : directory.name,\n    isLast: i + 1 === breadcrumbs.length\n  })));\n}", "/* eslint-disable react/destructuring-assignment */\nimport { h, Fragment } from 'preact';\nimport User from \"./User.js\";\nimport Breadcrumbs from \"../Breadcrumbs.js\";\nexport default function Header(props) {\n  return h(Fragment, null, props.showBreadcrumbs && h(Breadcrumbs, {\n    getFolder: props.getFolder,\n    breadcrumbs: props.breadcrumbs,\n    breadcrumbsIcon: props.pluginIcon && props.pluginIcon(),\n    title: props.title\n  }), h(User, {\n    logout: props.logout,\n    username: props.username,\n    i18n: props.i18n\n  }));\n}", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport remoteFileObjToLocal from '@uppy/utils/lib/remoteFileObjToLocal';\nimport { useMemo } from 'preact/hooks';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport VirtualList from '@uppy/utils/lib/VirtualList';\nimport SearchFilterInput from \"./SearchFilterInput.js\";\nimport FooterActions from \"./FooterActions.js\";\nimport Item from \"./Item/index.js\";\nconst VIRTUAL_SHARED_DIR = 'shared-with-me';\nfunction ListItem(props) {\n  const {\n    currentSelection,\n    uppyFiles,\n    viewType,\n    isChecked,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    showTitles,\n    i18n,\n    validateRestrictions,\n    getNextFolder,\n    f\n  } = props;\n  if (f.isFolder) {\n    return Item({\n      showTitles,\n      viewType,\n      i18n,\n      id: f.id,\n      title: f.name,\n      getItemIcon: () => f.icon,\n      isChecked: isChecked(f),\n      toggleCheckbox: event => toggleCheckbox(event, f),\n      recordShiftKeyPress,\n      type: 'folder',\n      // TODO: when was this supposed to be true?\n      isDisabled: false,\n      isCheckboxDisabled: f.id === VIRTUAL_SHARED_DIR,\n      // getNextFolder always exists when f.isFolder is true\n      handleFolderClick: () => getNextFolder(f)\n    });\n  }\n  const restrictionError = validateRestrictions(remoteFileObjToLocal(f), [...uppyFiles, ...currentSelection]);\n  return Item({\n    id: f.id,\n    title: f.name,\n    author: f.author,\n    getItemIcon: () => f.icon,\n    isChecked: isChecked(f),\n    toggleCheckbox: event => toggleCheckbox(event, f),\n    isCheckboxDisabled: false,\n    recordShiftKeyPress,\n    showTitles,\n    viewType,\n    i18n,\n    type: 'file',\n    isDisabled: Boolean(restrictionError) && !isChecked(f),\n    restrictionError\n  });\n}\nfunction Browser(props) {\n  const {\n    currentSelection,\n    folders,\n    files,\n    uppyFiles,\n    viewType,\n    headerComponent,\n    showBreadcrumbs,\n    isChecked,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    handleScroll,\n    showTitles,\n    i18n,\n    validateRestrictions,\n    isLoading,\n    showSearchFilter,\n    search,\n    searchTerm,\n    clearSearch,\n    searchOnInput,\n    searchInputLabel,\n    clearSearchLabel,\n    getNextFolder,\n    cancel,\n    done,\n    noResultsLabel,\n    loadAllFiles\n  } = props;\n  const selected = currentSelection.length;\n  const rows = useMemo(() => [...folders, ...files], [folders, files]);\n  return h(\"div\", {\n    className: classNames('uppy-ProviderBrowser', `uppy-ProviderBrowser-viewType--${viewType}`)\n  }, headerComponent && h(\"div\", {\n    className: \"uppy-ProviderBrowser-header\"\n  }, h(\"div\", {\n    className: classNames('uppy-ProviderBrowser-headerBar', !showBreadcrumbs && 'uppy-ProviderBrowser-headerBar--simple')\n  }, headerComponent)), showSearchFilter && h(\"div\", {\n    class: \"uppy-ProviderBrowser-searchFilter\"\n  }, h(SearchFilterInput, {\n    search: search,\n    searchTerm: searchTerm,\n    clearSearch: clearSearch,\n    inputLabel: searchInputLabel,\n    clearSearchLabel: clearSearchLabel,\n    inputClassName: \"uppy-ProviderBrowser-searchFilterInput\",\n    searchOnInput: searchOnInput\n  })), (() => {\n    if (isLoading) {\n      return h(\"div\", {\n        className: \"uppy-Provider-loading\"\n      }, h(\"span\", null, i18n('loading')));\n    }\n    if (!folders.length && !files.length) {\n      return h(\"div\", {\n        className: \"uppy-Provider-empty\"\n      }, noResultsLabel);\n    }\n    if (loadAllFiles) {\n      return h(\"div\", {\n        className: \"uppy-ProviderBrowser-body\"\n      }, h(\"ul\", {\n        className: \"uppy-ProviderBrowser-list\"\n      }, h(VirtualList, {\n        data: rows,\n        renderRow: f => h(ListItem, {\n          currentSelection: currentSelection,\n          uppyFiles: uppyFiles,\n          viewType: viewType,\n          isChecked: isChecked,\n          toggleCheckbox: toggleCheckbox,\n          recordShiftKeyPress: recordShiftKeyPress,\n          showTitles: showTitles,\n          i18n: i18n,\n          validateRestrictions: validateRestrictions,\n          getNextFolder: getNextFolder,\n          f: f\n        }),\n        rowHeight: 31\n      })));\n    }\n    return h(\"div\", {\n      className: \"uppy-ProviderBrowser-body\"\n    }, h(\"ul\", {\n      className: \"uppy-ProviderBrowser-list\",\n      onScroll: handleScroll,\n      role: \"listbox\"\n      // making <ul> not focusable for firefox\n      ,\n      tabIndex: -1\n    }, rows.map(f => h(ListItem, {\n      currentSelection: currentSelection,\n      uppyFiles: uppyFiles,\n      viewType: viewType,\n      isChecked: isChecked,\n      toggleCheckbox: toggleCheckbox,\n      recordShiftKeyPress: recordShiftKeyPress,\n      showTitles: showTitles,\n      i18n: i18n,\n      validateRestrictions: validateRestrictions,\n      getNextFolder: getNextFolder,\n      f: f\n    }))));\n  })(), selected > 0 && h(FooterActions, {\n    selected: selected,\n    done: done,\n    cancel: cancel,\n    i18n: i18n\n  }));\n}\nexport default Browser;", "import getFileNameAndExtension from \"./getFileNameAndExtension.js\";\nexport default function remoteFileObjToLocal(file) {\n  return {\n    ...file,\n    type: file.mimeType,\n    extension: file.name ? getFileNameAndExtension(file.name).extension : null\n  };\n}", "function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * Adapted from preact-virtual-list: https://github.com/developit/preact-virtual-list\n *\n * \u00A9 2016 Jason Miller\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 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,\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 THE\n * SOFTWARE.\n *\n * Adaptations:\n * - Added role=presentation to helper elements\n * - Tweaked styles for Uppy's Dashboard use case\n */\n\nimport { h, Component } from 'preact';\nconst STYLE_INNER = {\n  position: 'relative',\n  // Disabled for our use case: the wrapper elements around FileList already deal with overflow,\n  // and this additional property would hide things that we want to show.\n  //\n  // overflow: 'hidden',\n  width: '100%',\n  minHeight: '100%'\n};\nconst STYLE_CONTENT = {\n  position: 'absolute',\n  top: 0,\n  left: 0,\n  // Because the `top` value gets set to some offset, this `height` being 100% would make the scrollbar\n  // stretch far beyond the content. For our use case, the content div actually can get its height from\n  // the elements inside it, so we don't need to specify a `height` property at all.\n  //\n  // height: '100%',\n  width: '100%',\n  overflow: 'visible'\n};\nclass VirtualList extends Component {\n  constructor(props) {\n    super(props);\n\n    // The currently focused node, used to retain focus when the visible rows change.\n    // To avoid update loops, this should not cause state updates, so it's kept as a plain property.\n    this.handleScroll = () => {\n      this.setState({\n        offset: this.base.scrollTop\n      });\n    };\n    this.handleResize = () => {\n      this.resize();\n    };\n    this.focusElement = null;\n    this.state = {\n      offset: 0,\n      height: 0\n    };\n  }\n  componentDidMount() {\n    this.resize();\n    window.addEventListener('resize', this.handleResize);\n  }\n\n  // TODO: refactor to stable lifecycle method\n  // eslint-disable-next-line\n  componentWillUpdate() {\n    if (this.base.contains(document.activeElement)) {\n      this.focusElement = document.activeElement;\n    }\n  }\n  componentDidUpdate() {\n    // Maintain focus when rows are added and removed.\n    if (this.focusElement && this.focusElement.parentNode && document.activeElement !== this.focusElement) {\n      this.focusElement.focus();\n    }\n    this.focusElement = null;\n    this.resize();\n  }\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.handleResize);\n  }\n  resize() {\n    const {\n      height\n    } = this.state;\n    if (height !== this.base.offsetHeight) {\n      this.setState({\n        height: this.base.offsetHeight\n      });\n    }\n  }\n  render(_ref) {\n    let {\n      data,\n      rowHeight,\n      renderRow,\n      overscanCount = 10,\n      ...props\n    } = _ref;\n    const {\n      offset,\n      height\n    } = this.state;\n    // first visible row index\n    let start = Math.floor(offset / rowHeight);\n\n    // actual number of visible rows (without overscan)\n    let visibleRowCount = Math.floor(height / rowHeight);\n\n    // Overscan: render blocks of rows modulo an overscan row count\n    // This dramatically reduces DOM writes during scrolling\n    if (overscanCount) {\n      start = Math.max(0, start - start % overscanCount);\n      visibleRowCount += overscanCount;\n    }\n\n    // last visible + overscan row index + padding to allow keyboard focus to travel past the visible area\n    const end = start + visibleRowCount + 4;\n\n    // data slice currently in viewport plus overscan items\n    const selection = data.slice(start, end);\n    const styleInner = {\n      ...STYLE_INNER,\n      height: data.length * rowHeight\n    };\n    const styleContent = {\n      ...STYLE_CONTENT,\n      top: start * rowHeight\n    };\n\n    // The `role=\"presentation\"` attributes ensure that these wrapper elements are not treated as list\n    // items by accessibility and outline tools.\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(\"div\", _extends({\n        onScroll: this.handleScroll\n      }, props), h(\"div\", {\n        role: \"presentation\",\n        style: styleInner\n      }, h(\"div\", {\n        role: \"presentation\",\n        style: styleContent\n      }, selection.map(renderRow))))\n    );\n  }\n}\nexport default VirtualList;", "/* eslint-disable react/require-default-props */\nimport { h, Fragment } from 'preact';\nimport { useEffect, useState, useCallback } from 'preact/hooks';\nimport { nanoid } from 'nanoid/non-secure';\nexport default function SearchFilterInput(props) {\n  const {\n    search,\n    searchOnInput,\n    searchTerm,\n    showButton,\n    inputLabel,\n    clearSearchLabel,\n    buttonLabel,\n    clearSearch,\n    inputClassName,\n    buttonCSSClassName\n  } = props;\n  const [searchText, setSearchText] = useState(searchTerm != null ? searchTerm : '');\n  // const debouncedSearch = debounce((q) => search(q), 1000)\n\n  const validateAndSearch = useCallback(ev => {\n    ev.preventDefault();\n    search(searchText);\n  }, [search, searchText]);\n  const handleInput = useCallback(ev => {\n    const inputValue = ev.target.value;\n    setSearchText(inputValue);\n    if (searchOnInput) search(inputValue);\n  }, [setSearchText, searchOnInput, search]);\n  const handleReset = () => {\n    setSearchText('');\n    if (clearSearch) clearSearch();\n  };\n  const [form] = useState(() => {\n    const formEl = document.createElement('form');\n    formEl.setAttribute('tabindex', '-1');\n    formEl.id = nanoid();\n    return formEl;\n  });\n  useEffect(() => {\n    document.body.appendChild(form);\n    form.addEventListener('submit', validateAndSearch);\n    return () => {\n      form.removeEventListener('submit', validateAndSearch);\n      document.body.removeChild(form);\n    };\n  }, [form, validateAndSearch]);\n  return h(Fragment, null, h(\"input\", {\n    className: `uppy-u-reset ${inputClassName}`,\n    type: \"search\",\n    \"aria-label\": inputLabel,\n    placeholder: inputLabel,\n    value: searchText,\n    onInput: handleInput,\n    form: form.id,\n    \"data-uppy-super-focusable\": true\n  }), !showButton && h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon uppy-ProviderBrowser-searchFilterIcon\",\n    width: \"12\",\n    height: \"12\",\n    viewBox: \"0 0 12 12\"\n  }, h(\"path\", {\n    d: \"M8.638 7.99l3.172 3.172a.492.492 0 1 1-.697.697L7.91 8.656a4.977 4.977 0 0 1-2.983.983C2.206 9.639 0 7.481 0 4.819 0 2.158 2.206 0 4.927 0c2.721 0 4.927 2.158 4.927 4.82a4.74 4.74 0 0 1-1.216 3.17zm-3.71.685c2.176 0 3.94-1.726 3.94-3.856 0-2.129-1.764-3.855-3.94-3.855C2.75.964.984 2.69.984 4.819c0 2.13 1.765 3.856 3.942 3.856z\"\n  })), !showButton && searchText && h(\"button\", {\n    className: \"uppy-u-reset uppy-ProviderBrowser-searchFilterReset\",\n    type: \"button\",\n    \"aria-label\": clearSearchLabel,\n    title: clearSearchLabel,\n    onClick: handleReset\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    viewBox: \"0 0 19 19\"\n  }, h(\"path\", {\n    d: \"M17.318 17.232L9.94 9.854 9.586 9.5l-.354.354-7.378 7.378h.707l-.62-.62v.706L9.318 9.94l.354-.354-.354-.354L1.94 1.854v.707l.62-.62h-.706l7.378 7.378.354.354.354-.354 7.378-7.378h-.707l.622.62v-.706L9.854 9.232l-.354.354.354.354 7.378 7.378.708-.707-7.38-7.378v.708l7.38-7.38.353-.353-.353-.353-.622-.622-.353-.353-.354.352-7.378 7.38h.708L2.56 1.23 2.208.88l-.353.353-.622.62-.353.355.352.353 7.38 7.38v-.708l-7.38 7.38-.353.353.352.353.622.622.353.353.354-.353 7.38-7.38h-.708l7.38 7.38z\"\n  }))), showButton && h(\"button\", {\n    className: `uppy-u-reset uppy-c-btn uppy-c-btn-primary ${buttonCSSClassName}`,\n    type: \"submit\",\n    form: form.id\n  }, buttonLabel));\n}", "import { h } from 'preact';\nexport default function FooterActions(_ref) {\n  let {\n    cancel,\n    done,\n    i18n,\n    selected\n  } = _ref;\n  return h(\"div\", {\n    className: \"uppy-ProviderBrowser-footer\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary\",\n    onClick: done,\n    type: \"button\"\n  }, i18n('selectX', {\n    smart_count: selected\n  })), h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-link\",\n    onClick: cancel,\n    type: \"button\"\n  }, i18n('cancel')));\n}", "function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport ItemIcon from \"./components/ItemIcon.js\";\nimport GridListItem from \"./components/GridLi.js\";\nimport ListItem from \"./components/ListLi.js\";\nexport default function Item(props) {\n  const {\n    author,\n    getItemIcon,\n    isChecked,\n    isDisabled,\n    viewType\n  } = props;\n  const itemIconString = getItemIcon();\n  const className = classNames('uppy-ProviderBrowserItem', {\n    'uppy-ProviderBrowserItem--selected': isChecked\n  }, {\n    'uppy-ProviderBrowserItem--disabled': isDisabled\n  }, {\n    'uppy-ProviderBrowserItem--noPreview': itemIconString === 'video'\n  });\n  const itemIconEl = h(ItemIcon, {\n    itemIconString: itemIconString\n  });\n  switch (viewType) {\n    case 'grid':\n      return h(GridListItem, _extends({}, props, {\n        className: className,\n        itemIconEl: itemIconEl\n      }));\n    case 'list':\n      return h(ListItem, _extends({}, props, {\n        className: className,\n        itemIconEl: itemIconEl\n      }));\n    case 'unsplash':\n      return h(GridListItem, _extends({}, props, {\n        className: className,\n        itemIconEl: itemIconEl\n      }), h(\"a\", {\n        href: `${author.url}?utm_source=Companion&utm_medium=referral`,\n        target: \"_blank\",\n        rel: \"noopener noreferrer\",\n        className: \"uppy-ProviderBrowserItem-author\",\n        tabIndex: -1\n      }, author.name));\n    default:\n      throw new Error(`There is no such type ${viewType}`);\n  }\n}", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nfunction FileIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: 11,\n    height: 14.5,\n    viewBox: \"0 0 44 58\"\n  }, h(\"path\", {\n    d: \"M27.437.517a1 1 0 0 0-.094.03H4.25C2.037.548.217 2.368.217 4.58v48.405c0 2.212 1.82 4.03 4.03 4.03H39.03c2.21 0 4.03-1.818 4.03-4.03V15.61a1 1 0 0 0-.03-.28 1 1 0 0 0 0-.093 1 1 0 0 0-.03-.032 1 1 0 0 0 0-.03 1 1 0 0 0-.032-.063 1 1 0 0 0-.03-.063 1 1 0 0 0-.032 0 1 1 0 0 0-.03-.063 1 1 0 0 0-.032-.03 1 1 0 0 0-.03-.063 1 1 0 0 0-.063-.062l-14.593-14a1 1 0 0 0-.062-.062A1 1 0 0 0 28 .708a1 1 0 0 0-.374-.157 1 1 0 0 0-.156 0 1 1 0 0 0-.03-.03l-.003-.003zM4.25 2.547h22.218v9.97c0 2.21 1.82 4.03 4.03 4.03h10.564v36.438a2.02 2.02 0 0 1-2.032 2.032H4.25c-1.13 0-2.032-.9-2.032-2.032V4.58c0-1.13.902-2.032 2.03-2.032zm24.218 1.345l10.375 9.937.75.718H30.5c-1.13 0-2.032-.9-2.032-2.03V3.89z\"\n  }));\n}\nfunction FolderIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    style: {\n      minWidth: 16,\n      marginRight: 3\n    },\n    viewBox: \"0 0 276.157 276.157\"\n  }, h(\"path\", {\n    d: \"M273.08 101.378c-3.3-4.65-8.86-7.32-15.254-7.32h-24.34V67.59c0-10.2-8.3-18.5-18.5-18.5h-85.322c-3.63 0-9.295-2.875-11.436-5.805l-6.386-8.735c-4.982-6.814-15.104-11.954-23.546-11.954H58.73c-9.292 0-18.638 6.608-21.737 15.372l-2.033 5.752c-.958 2.71-4.72 5.37-7.596 5.37H18.5C8.3 49.09 0 57.39 0 67.59v167.07c0 .886.16 1.73.443 2.52.152 3.306 1.18 6.424 3.053 9.064 3.3 4.652 8.86 7.32 15.255 7.32h188.487c11.395 0 23.27-8.425 27.035-19.18l40.677-116.188c2.11-6.035 1.43-12.164-1.87-16.816zM18.5 64.088h8.864c9.295 0 18.64-6.607 21.738-15.37l2.032-5.75c.96-2.712 4.722-5.373 7.597-5.373h29.565c3.63 0 9.295 2.876 11.437 5.806l6.386 8.735c4.982 6.815 15.104 11.954 23.546 11.954h85.322c1.898 0 3.5 1.602 3.5 3.5v26.47H69.34c-11.395 0-23.27 8.423-27.035 19.178L15 191.23V67.59c0-1.898 1.603-3.5 3.5-3.5zm242.29 49.15l-40.676 116.188c-1.674 4.78-7.812 9.135-12.877 9.135H18.75c-1.447 0-2.576-.372-3.02-.997-.442-.625-.422-1.814.057-3.18l40.677-116.19c1.674-4.78 7.812-9.134 12.877-9.134h188.487c1.448 0 2.577.372 3.02.997.443.625.423 1.814-.056 3.18z\"\n  }));\n}\nfunction VideoIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    style: {\n      width: 16,\n      marginRight: 4\n    },\n    viewBox: \"0 0 58 58\"\n  }, h(\"path\", {\n    d: \"M36.537 28.156l-11-7a1.005 1.005 0 0 0-1.02-.033C24.2 21.3 24 21.635 24 22v14a1 1 0 0 0 1.537.844l11-7a1.002 1.002 0 0 0 0-1.688zM26 34.18V23.82L34.137 29 26 34.18z\"\n  }), h(\"path\", {\n    d: \"M57 6H1a1 1 0 0 0-1 1v44a1 1 0 0 0 1 1h56a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1zM10 28H2v-9h8v9zm-8 2h8v9H2v-9zm10 10V8h34v42H12V40zm44-12h-8v-9h8v9zm-8 2h8v9h-8v-9zm8-22v9h-8V8h8zM2 8h8v9H2V8zm0 42v-9h8v9H2zm54 0h-8v-9h8v9z\"\n  }));\n}\nexport default function ItemIcon(props) {\n  const {\n    itemIconString\n  } = props;\n  if (itemIconString === null) return null;\n  switch (itemIconString) {\n    case 'file':\n      return h(FileIcon, null);\n    case 'folder':\n      return h(FolderIcon, null);\n    case 'video':\n      return h(VideoIcon, null);\n    default:\n      {\n        const {\n          alt\n        } = props;\n        return h(\"img\", {\n          src: itemIconString,\n          alt: alt\n          // @ts-expect-error TS does not understand but attribute exists here.\n          ,\n          referrerPolicy: \"no-referrer\",\n          loading: \"lazy\",\n          width: 16,\n          height: 16\n        });\n      }\n  }\n}", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nfunction GridListItem(props) {\n  const {\n    className,\n    isDisabled,\n    restrictionError,\n    isChecked,\n    title,\n    itemIconEl,\n    showTitles,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    id,\n    children\n  } = props;\n  const checkBoxClassName = classNames('uppy-u-reset', 'uppy-ProviderBrowserItem-checkbox', 'uppy-ProviderBrowserItem-checkbox--grid', {\n    'uppy-ProviderBrowserItem-checkbox--is-checked': isChecked\n  });\n  return h(\"li\", {\n    className: className,\n    title: isDisabled ? restrictionError == null ? void 0 : restrictionError.message : undefined\n  }, h(\"input\", {\n    type: \"checkbox\",\n    className: checkBoxClassName,\n    onChange: toggleCheckbox,\n    onKeyDown: recordShiftKeyPress\n    // @ts-expect-error this is fine onMouseDown too\n    ,\n    onMouseDown: recordShiftKeyPress,\n    name: \"listitem\",\n    id: id,\n    checked: isChecked,\n    disabled: isDisabled,\n    \"data-uppy-super-focusable\": true\n  }), h(\"label\", {\n    htmlFor: id,\n    \"aria-label\": title,\n    className: \"uppy-u-reset uppy-ProviderBrowserItem-inner\"\n  }, itemIconEl, showTitles && title, children));\n}\nexport default GridListItem;", "/* eslint-disable react/require-default-props */\n\nimport { h } from 'preact';\n\n// if folder:\n//   + checkbox (selects all files from folder)\n//   + folder name (opens folder)\n// if file:\n//   + checkbox (selects file)\n//   + file name (selects file)\n\nexport default function ListItem(props) {\n  const {\n    className,\n    isDisabled,\n    restrictionError,\n    isCheckboxDisabled,\n    isChecked,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    type,\n    id,\n    itemIconEl,\n    title,\n    handleFolderClick,\n    showTitles,\n    i18n\n  } = props;\n  return h(\"li\", {\n    className: className,\n    title: isDisabled ? restrictionError == null ? void 0 : restrictionError.message : undefined\n  }, !isCheckboxDisabled ? h(\"input\", {\n    type: \"checkbox\",\n    className: `uppy-u-reset uppy-ProviderBrowserItem-checkbox ${isChecked ? 'uppy-ProviderBrowserItem-checkbox--is-checked' : ''}`,\n    onChange: toggleCheckbox,\n    onKeyDown: recordShiftKeyPress,\n    onMouseDown: recordShiftKeyPress\n    // for the <label/>\n    ,\n    name: \"listitem\",\n    id: id,\n    checked: isChecked,\n    \"aria-label\": type === 'file' ? null : i18n('allFilesFromFolderNamed', {\n      name: title\n    }),\n    disabled: isDisabled,\n    \"data-uppy-super-focusable\": true\n  }) : null, type === 'file' ?\n  // label for a checkbox\n  h(\"label\", {\n    htmlFor: id,\n    className: \"uppy-u-reset uppy-ProviderBrowserItem-inner\"\n  }, h(\"div\", {\n    className: \"uppy-ProviderBrowserItem-iconWrap\"\n  }, itemIconEl), showTitles && title)\n  // button to open a folder\n  : h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-ProviderBrowserItem-inner\",\n    onClick: handleFolderClick,\n    \"aria-label\": i18n('openFolderNamed', {\n      name: title\n    })\n  }, h(\"div\", {\n    className: \"uppy-ProviderBrowserItem-iconWrap\"\n  }, itemIconEl), showTitles && h(\"span\", null, title)));\n}", "import { Component, toChildArray } from 'preact';\nexport default class CloseWrapper extends Component {\n  componentWillUnmount() {\n    const {\n      onUnmount\n    } = this.props;\n    onUnmount();\n  }\n  render() {\n    const {\n      children\n    } = this.props;\n    return toChildArray(children)[0];\n  }\n}", "import getFileType from '@uppy/utils/lib/getFileType';\nimport isPreviewSupported from '@uppy/utils/lib/isPreviewSupported';\nimport remoteFileObjToLocal from '@uppy/utils/lib/remoteFileObjToLocal';\n\n// Conditional type for selecting the plugin\n\n// Conditional type for selecting the provider from the selected plugin\n\nexport default class View {\n  constructor(plugin, opts) {\n    this.filterItems = items => {\n      const state = this.plugin.getPluginState();\n      if (!state.filterInput || state.filterInput === '') {\n        return items;\n      }\n      return items.filter(folder => {\n        return folder.name.toLowerCase().indexOf(state.filterInput.toLowerCase()) !== -1;\n      });\n    };\n    this.recordShiftKeyPress = e => {\n      this.isShiftKeyPressed = e.shiftKey;\n    };\n    /**\n     * Toggles file/folder checkbox to on/off state while updating files list.\n     *\n     * Note that some extra complexity comes from supporting shift+click to\n     * toggle multiple checkboxes at once, which is done by getting all files\n     * in between last checked file and current one.\n     */\n    this.toggleCheckbox = (e, file) => {\n      e.stopPropagation();\n      e.preventDefault();\n      e.currentTarget.focus();\n      const {\n        folders,\n        files\n      } = this.plugin.getPluginState();\n      const items = this.filterItems(folders.concat(files));\n      // Shift-clicking selects a single consecutive list of items\n      // starting at the previous click.\n      if (this.lastCheckbox && this.isShiftKeyPressed) {\n        const {\n          currentSelection\n        } = this.plugin.getPluginState();\n        const prevIndex = items.indexOf(this.lastCheckbox);\n        const currentIndex = items.indexOf(file);\n        const newSelection = prevIndex < currentIndex ? items.slice(prevIndex, currentIndex + 1) : items.slice(currentIndex, prevIndex + 1);\n        const reducedNewSelection = [];\n\n        // Check restrictions on each file in currentSelection,\n        // reduce it to only contain files that pass restrictions\n        for (const item of newSelection) {\n          const {\n            uppy\n          } = this.plugin;\n          const restrictionError = uppy.validateRestrictions(remoteFileObjToLocal(item), [...uppy.getFiles(), ...reducedNewSelection]);\n          if (!restrictionError) {\n            reducedNewSelection.push(item);\n          } else {\n            uppy.info({\n              message: restrictionError.message\n            }, 'error', uppy.opts.infoTimeout);\n          }\n        }\n        this.plugin.setPluginState({\n          currentSelection: [...new Set([...currentSelection, ...reducedNewSelection])]\n        });\n        return;\n      }\n      this.lastCheckbox = file;\n      const {\n        currentSelection\n      } = this.plugin.getPluginState();\n      if (this.isChecked(file)) {\n        this.plugin.setPluginState({\n          currentSelection: currentSelection.filter(item => item.id !== file.id)\n        });\n      } else {\n        this.plugin.setPluginState({\n          currentSelection: currentSelection.concat([file])\n        });\n      }\n    };\n    this.isChecked = file => {\n      const {\n        currentSelection\n      } = this.plugin.getPluginState();\n      // comparing id instead of the file object, because the reference to the object\n      // changes when we switch folders, and the file list is updated\n      return currentSelection.some(item => item.id === file.id);\n    };\n    this.plugin = plugin;\n    this.provider = opts.provider;\n    this.opts = opts;\n    this.isHandlingScroll = false;\n    this.preFirstRender = this.preFirstRender.bind(this);\n    this.handleError = this.handleError.bind(this);\n    this.clearSelection = this.clearSelection.bind(this);\n    this.cancelPicking = this.cancelPicking.bind(this);\n  }\n  preFirstRender() {\n    this.plugin.setPluginState({\n      didFirstRender: true\n    });\n    this.plugin.onFirstRender();\n  }\n  shouldHandleScroll(event) {\n    const {\n      scrollHeight,\n      scrollTop,\n      offsetHeight\n    } = event.target;\n    const scrollPosition = scrollHeight - (scrollTop + offsetHeight);\n    return scrollPosition < 50 && !this.isHandlingScroll;\n  }\n  clearSelection() {\n    this.plugin.setPluginState({\n      currentSelection: [],\n      filterInput: ''\n    });\n  }\n  cancelPicking() {\n    this.clearSelection();\n    const dashboard = this.plugin.uppy.getPlugin('Dashboard');\n    if (dashboard) {\n      // @ts-expect-error impossible to type this correctly without adding dashboard\n      // as a dependency to this package.\n      dashboard.hideAllPanels();\n    }\n  }\n  handleError(error) {\n    var _error$cause;\n    const {\n      uppy\n    } = this.plugin;\n    const message = uppy.i18n('companionError');\n    uppy.log(error.toString());\n    if (error.isAuthError || ((_error$cause = error.cause) == null ? void 0 : _error$cause.name) === 'AbortError') {\n      // authError just means we're not authenticated, don't show to user\n      // AbortError means the user has clicked \"cancel\" on an operation\n      return;\n    }\n    uppy.info({\n      message,\n      details: error.toString()\n    }, 'error', 5000);\n  }\n  registerRequestClient() {\n    this.requestClientId = this.provider.provider;\n    this.plugin.uppy.registerRequestClient(this.requestClientId, this.provider);\n  }\n\n  // TODO: document what is a \"tagFile\" or get rid of this concept\n  getTagFile(file) {\n    const tagFile = {\n      id: file.id,\n      source: this.plugin.id,\n      name: file.name || file.id,\n      type: file.mimeType,\n      isRemote: true,\n      // @ts-expect-error meta is filled conditionally below\n      data: file,\n      // @ts-expect-error meta is filled conditionally below\n      meta: {},\n      body: {\n        fileId: file.id\n      },\n      remote: {\n        companionUrl: this.plugin.opts.companionUrl,\n        // @ts-expect-error untyped for now\n        url: `${this.provider.fileUrl(file.requestPath)}`,\n        body: {\n          fileId: file.id\n        },\n        providerName: this.provider.name,\n        provider: this.provider.provider,\n        requestClientId: this.requestClientId\n      }\n    };\n    const fileType = getFileType(tagFile);\n\n    // TODO Should we just always use the thumbnail URL if it exists?\n    if (fileType && isPreviewSupported(fileType)) {\n      tagFile.preview = file.thumbnail;\n    }\n    if (file.author) {\n      if (file.author.name != null) tagFile.meta.authorName = String(file.author.name);\n      if (file.author.url) tagFile.meta.authorUrl = file.author.url;\n    }\n\n    // add relativePath similar to non-remote files: https://github.com/transloadit/uppy/pull/4486#issuecomment-1579203717\n    if (file.relDirPath != null) tagFile.meta.relativePath = file.relDirPath ? `${file.relDirPath}/${tagFile.name}` : null;\n    // and absolutePath (with leading slash) https://github.com/transloadit/uppy/pull/4537#issuecomment-1614236655\n    if (file.absDirPath != null) tagFile.meta.absolutePath = file.absDirPath ? `/${file.absDirPath}/${tagFile.name}` : `/${tagFile.name}`;\n    return tagFile;\n  }\n  setLoading(loading) {\n    this.plugin.setPluginState({\n      loading\n    });\n  }\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { h } from 'preact';\nimport PQueue from 'p-queue';\nimport { getSafeFileId } from '@uppy/utils/lib/generateFileID';\nimport AuthView from \"./AuthView.js\";\nimport Header from \"./Header.js\";\nimport Browser from \"../Browser.js\";\nimport CloseWrapper from \"../CloseWrapper.js\";\nimport View from \"../View.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.10.0\"\n};\nfunction formatBreadcrumbs(breadcrumbs) {\n  return breadcrumbs.slice(1).map(directory => directory.name).join('/');\n}\nfunction prependPath(path, component) {\n  if (!path) return component;\n  return `${path}/${component}`;\n}\nexport function defaultPickerIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"30\",\n    height: \"30\",\n    viewBox: \"0 0 30 30\"\n  }, h(\"path\", {\n    d: \"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15zm4.258-12.676v6.846h-8.426v-6.846H5.204l9.82-12.364 9.82 12.364H19.26z\"\n  }));\n}\nconst defaultOptions = {\n  viewType: 'list',\n  showTitles: true,\n  showFilter: true,\n  showBreadcrumbs: true,\n  loadAllFiles: false\n};\nvar _abortController = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortController\");\nvar _withAbort = /*#__PURE__*/_classPrivateFieldLooseKey(\"withAbort\");\nvar _list = /*#__PURE__*/_classPrivateFieldLooseKey(\"list\");\nvar _listFilesAndFolders = /*#__PURE__*/_classPrivateFieldLooseKey(\"listFilesAndFolders\");\nvar _recursivelyListAllFiles = /*#__PURE__*/_classPrivateFieldLooseKey(\"recursivelyListAllFiles\");\n/**\n * Class to easily generate generic views for Provider plugins\n */\nexport default class ProviderView extends View {\n  constructor(plugin, opts) {\n    super(plugin, {\n      ...defaultOptions,\n      ...opts\n    });\n\n    // Logic\n    Object.defineProperty(this, _recursivelyListAllFiles, {\n      value: _recursivelyListAllFiles2\n    });\n    Object.defineProperty(this, _listFilesAndFolders, {\n      value: _listFilesAndFolders2\n    });\n    Object.defineProperty(this, _list, {\n      value: _list2\n    });\n    Object.defineProperty(this, _withAbort, {\n      value: _withAbort2\n    });\n    Object.defineProperty(this, _abortController, {\n      writable: true,\n      value: void 0\n    });\n    this.filterQuery = this.filterQuery.bind(this);\n    this.clearFilter = this.clearFilter.bind(this);\n    this.getFolder = this.getFolder.bind(this);\n    this.getNextFolder = this.getNextFolder.bind(this);\n    this.logout = this.logout.bind(this);\n    this.handleAuth = this.handleAuth.bind(this);\n    this.handleScroll = this.handleScroll.bind(this);\n    this.donePicking = this.donePicking.bind(this);\n\n    // Visual\n    this.render = this.render.bind(this);\n\n    // Set default state for the plugin\n    this.plugin.setPluginState({\n      authenticated: undefined,\n      // we don't know yet\n      files: [],\n      folders: [],\n      breadcrumbs: [],\n      filterInput: '',\n      isSearchVisible: false,\n      currentSelection: []\n    });\n    this.registerRequestClient();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  tearDown() {\n    // Nothing.\n  }\n  /**\n   * Select a folder based on its id: fetches the folder and then updates state with its contents\n   * TODO rename to something better like selectFolder or navigateToFolder (breaking change?)\n   *\n   */\n  async getFolder(requestPath, name) {\n    this.setLoading(true);\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        this.lastCheckbox = undefined;\n        let {\n          breadcrumbs\n        } = this.plugin.getPluginState();\n        const index = breadcrumbs.findIndex(dir => requestPath === dir.requestPath);\n        if (index !== -1) {\n          // means we navigated back to a known directory (already in the stack), so cut the stack off there\n          breadcrumbs = breadcrumbs.slice(0, index + 1);\n        } else {\n          // we have navigated into a new (unknown) folder, add it to the stack\n          breadcrumbs = [...breadcrumbs, {\n            requestPath,\n            name\n          }];\n        }\n        this.nextPagePath = requestPath;\n        let files = [];\n        let folders = [];\n        do {\n          const {\n            files: newFiles,\n            folders: newFolders\n          } = await _classPrivateFieldLooseBase(this, _listFilesAndFolders)[_listFilesAndFolders]({\n            breadcrumbs,\n            signal\n          });\n          files = files.concat(newFiles);\n          folders = folders.concat(newFolders);\n          this.setLoading(this.plugin.uppy.i18n('loadedXFiles', {\n            numFiles: files.length + folders.length\n          }));\n        } while (this.opts.loadAllFiles && this.nextPagePath);\n        this.plugin.setPluginState({\n          folders,\n          files,\n          breadcrumbs,\n          filterInput: ''\n        });\n      });\n    } catch (err) {\n      // This is the first call that happens when the provider view loads, after auth, so it's probably nice to show any\n      // error occurring here to the user.\n      if ((err == null ? void 0 : err.name) === 'UserFacingApiError') {\n        this.plugin.uppy.info({\n          message: this.plugin.uppy.i18n(err.message)\n        }, 'warning', 5000);\n        return;\n      }\n      this.handleError(err);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n\n  /**\n   * Fetches new folder\n   */\n  getNextFolder(folder) {\n    this.getFolder(folder.requestPath, folder.name);\n    this.lastCheckbox = undefined;\n  }\n\n  /**\n   * Removes session token on client side.\n   */\n  async logout() {\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        const res = await this.provider.logout({\n          signal\n        });\n        // res.ok is from the JSON body, not to be confused with Response.ok\n        if (res.ok) {\n          if (!res.revoked) {\n            const message = this.plugin.uppy.i18n('companionUnauthorizeHint', {\n              provider: this.plugin.title,\n              url: res.manual_revoke_url\n            });\n            this.plugin.uppy.info(message, 'info', 7000);\n          }\n          const newState = {\n            authenticated: false,\n            files: [],\n            folders: [],\n            breadcrumbs: [],\n            filterInput: ''\n          };\n          this.plugin.setPluginState(newState);\n        }\n      });\n    } catch (err) {\n      this.handleError(err);\n    }\n  }\n  filterQuery(input) {\n    this.plugin.setPluginState({\n      filterInput: input\n    });\n  }\n  clearFilter() {\n    this.plugin.setPluginState({\n      filterInput: ''\n    });\n  }\n  async handleAuth(authFormData) {\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        this.setLoading(true);\n        await this.provider.login({\n          authFormData,\n          signal\n        });\n        this.plugin.setPluginState({\n          authenticated: true\n        });\n        this.preFirstRender();\n      });\n    } catch (err) {\n      if (err.name === 'UserFacingApiError') {\n        this.plugin.uppy.info({\n          message: this.plugin.uppy.i18n(err.message)\n        }, 'warning', 5000);\n        return;\n      }\n      this.plugin.uppy.log(`login failed: ${err.message}`);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n  async handleScroll(event) {\n    if (this.shouldHandleScroll(event) && this.nextPagePath) {\n      this.isHandlingScroll = true;\n      try {\n        await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n          const {\n            files,\n            folders,\n            breadcrumbs\n          } = this.plugin.getPluginState();\n          const {\n            files: newFiles,\n            folders: newFolders\n          } = await _classPrivateFieldLooseBase(this, _listFilesAndFolders)[_listFilesAndFolders]({\n            breadcrumbs,\n            signal\n          });\n          const combinedFiles = files.concat(newFiles);\n          const combinedFolders = folders.concat(newFolders);\n          this.plugin.setPluginState({\n            folders: combinedFolders,\n            files: combinedFiles\n          });\n        });\n      } catch (error) {\n        this.handleError(error);\n      } finally {\n        this.isHandlingScroll = false;\n      }\n    }\n  }\n  async donePicking() {\n    this.setLoading(true);\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        const {\n          currentSelection\n        } = this.plugin.getPluginState();\n        const messages = [];\n        const newFiles = [];\n        for (const selectedItem of currentSelection) {\n          const {\n            requestPath\n          } = selectedItem;\n          const withRelDirPath = newItem => ({\n            ...newItem,\n            // calculate the file's path relative to the user's selected item's path\n            // see https://github.com/transloadit/uppy/pull/4537#issuecomment-1614236655\n            relDirPath: newItem.absDirPath.replace(selectedItem.absDirPath, '').replace(/^\\//, '')\n          });\n          if (selectedItem.isFolder) {\n            let isEmpty = true;\n            let numNewFiles = 0;\n            const queue = new PQueue({\n              concurrency: 6\n            });\n            const onFiles = files => {\n              for (const newFile of files) {\n                const tagFile = this.getTagFile(newFile);\n                const id = getSafeFileId(tagFile);\n                // If the same folder is added again, we don't want to send\n                // X amount of duplicate file notifications, we want to say\n                // the folder was already added. This checks if all files are duplicate,\n                // if that's the case, we don't add the files.\n                if (!this.plugin.uppy.checkIfFileAlreadyExists(id)) {\n                  newFiles.push(withRelDirPath(newFile));\n                  numNewFiles++;\n                  this.setLoading(this.plugin.uppy.i18n('addedNumFiles', {\n                    numFiles: numNewFiles\n                  }));\n                }\n                isEmpty = false;\n              }\n            };\n            await _classPrivateFieldLooseBase(this, _recursivelyListAllFiles)[_recursivelyListAllFiles]({\n              requestPath,\n              absDirPath: prependPath(selectedItem.absDirPath, selectedItem.name),\n              relDirPath: selectedItem.name,\n              queue,\n              onFiles,\n              signal\n            });\n            await queue.onIdle();\n            let message;\n            if (isEmpty) {\n              message = this.plugin.uppy.i18n('emptyFolderAdded');\n            } else if (numNewFiles === 0) {\n              message = this.plugin.uppy.i18n('folderAlreadyAdded', {\n                folder: selectedItem.name\n              });\n            } else {\n              // TODO we don't really know at this point whether any files were actually added\n              // (only later after addFiles has been called) so we should probably rewrite this.\n              // Example: If all files fail to add due to restriction error, it will still say \"Added 100 files from folder\"\n              message = this.plugin.uppy.i18n('folderAdded', {\n                smart_count: numNewFiles,\n                folder: selectedItem.name\n              });\n            }\n            messages.push(message);\n          } else {\n            newFiles.push(withRelDirPath(selectedItem));\n          }\n        }\n\n        // Note: this.plugin.uppy.addFiles must be only run once we are done fetching all files,\n        // because it will cause the loading screen to disappear,\n        // and that will allow the user to start the upload, so we need to make sure we have\n        // finished all async operations before we add any file\n        // see https://github.com/transloadit/uppy/pull/4384\n        this.plugin.uppy.log('Adding files from a remote provider');\n        this.plugin.uppy.addFiles(\n        // @ts-expect-error `addFiles` expects `body` to be `File` or `Blob`,\n        // but as the todo comment in `View.ts` indicates, we strangly pass `CompanionFile` as `body`.\n        // For now it's better to ignore than to have a potential breaking change.\n        newFiles.map(file => this.getTagFile(file, this.requestClientId)));\n        this.plugin.setPluginState({\n          filterInput: ''\n        });\n        messages.forEach(message => this.plugin.uppy.info(message));\n        this.clearSelection();\n      });\n    } catch (err) {\n      this.handleError(err);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n  render(state, viewOptions) {\n    var _this = this;\n    if (viewOptions === void 0) {\n      viewOptions = {};\n    }\n    const {\n      authenticated,\n      didFirstRender\n    } = this.plugin.getPluginState();\n    const {\n      i18n\n    } = this.plugin.uppy;\n    if (!didFirstRender) {\n      this.preFirstRender();\n    }\n    const targetViewOptions = {\n      ...this.opts,\n      ...viewOptions\n    };\n    const {\n      files,\n      folders,\n      filterInput,\n      loading,\n      currentSelection\n    } = this.plugin.getPluginState();\n    const {\n      isChecked,\n      toggleCheckbox,\n      recordShiftKeyPress,\n      filterItems\n    } = this;\n    const hasInput = filterInput !== '';\n    const pluginIcon = this.plugin.icon || defaultPickerIcon;\n    const headerProps = {\n      showBreadcrumbs: targetViewOptions.showBreadcrumbs,\n      getFolder: this.getFolder,\n      breadcrumbs: this.plugin.getPluginState().breadcrumbs,\n      pluginIcon,\n      title: this.plugin.title,\n      logout: this.logout,\n      username: this.username,\n      i18n\n    };\n    const browserProps = {\n      isChecked,\n      toggleCheckbox,\n      recordShiftKeyPress,\n      currentSelection,\n      files: hasInput ? filterItems(files) : files,\n      folders: hasInput ? filterItems(folders) : folders,\n      getNextFolder: this.getNextFolder,\n      getFolder: this.getFolder,\n      loadAllFiles: this.opts.loadAllFiles,\n      // For SearchFilterInput component\n      showSearchFilter: targetViewOptions.showFilter,\n      search: this.filterQuery,\n      clearSearch: this.clearFilter,\n      searchTerm: filterInput,\n      searchOnInput: true,\n      searchInputLabel: i18n('filter'),\n      clearSearchLabel: i18n('resetFilter'),\n      noResultsLabel: i18n('noFilesFound'),\n      logout: this.logout,\n      handleScroll: this.handleScroll,\n      done: this.donePicking,\n      cancel: this.cancelPicking,\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      headerComponent: h(Header, headerProps),\n      title: this.plugin.title,\n      viewType: targetViewOptions.viewType,\n      showTitles: targetViewOptions.showTitles,\n      showBreadcrumbs: targetViewOptions.showBreadcrumbs,\n      pluginIcon,\n      i18n: this.plugin.uppy.i18n,\n      uppyFiles: this.plugin.uppy.getFiles(),\n      validateRestrictions: function () {\n        return _this.plugin.uppy.validateRestrictions(...arguments);\n      },\n      isLoading: loading\n    };\n    if (authenticated === false) {\n      return h(CloseWrapper, {\n        onUnmount: this.clearSelection\n      }, h(AuthView, {\n        pluginName: this.plugin.title,\n        pluginIcon: pluginIcon,\n        handleAuth: this.handleAuth,\n        i18n: this.plugin.uppy.i18nArray,\n        renderForm: this.opts.renderAuthForm,\n        loading: loading\n      }));\n    }\n    return h(CloseWrapper, {\n      onUnmount: this.clearSelection\n    }, h(Browser, browserProps));\n  }\n}\nasync function _withAbort2(op) {\n  var _classPrivateFieldLoo;\n  // prevent multiple requests in parallel from causing race conditions\n  (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _abortController)[_abortController]) == null || _classPrivateFieldLoo.abort();\n  const abortController = new AbortController();\n  _classPrivateFieldLooseBase(this, _abortController)[_abortController] = abortController;\n  const cancelRequest = () => {\n    abortController.abort();\n    this.clearSelection();\n  };\n  try {\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    // Even then I don't think we can make this work without adding dashboard\n    // as a dependency to provider-views.\n    this.plugin.uppy.on('dashboard:close-panel', cancelRequest);\n    this.plugin.uppy.on('cancel-all', cancelRequest);\n    await op(abortController.signal);\n  } finally {\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    // Even then I don't think we can make this work without adding dashboard\n    // as a dependency to provider-views.\n    this.plugin.uppy.off('dashboard:close-panel', cancelRequest);\n    this.plugin.uppy.off('cancel-all', cancelRequest);\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController] = undefined;\n  }\n}\nasync function _list2(_ref) {\n  let {\n    requestPath,\n    absDirPath,\n    signal\n  } = _ref;\n  const {\n    username,\n    nextPagePath,\n    items\n  } = await this.provider.list(requestPath, {\n    signal\n  });\n  this.username = username || this.username;\n  return {\n    items: items.map(item => ({\n      ...item,\n      absDirPath\n    })),\n    nextPagePath\n  };\n}\nasync function _listFilesAndFolders2(_ref2) {\n  let {\n    breadcrumbs,\n    signal\n  } = _ref2;\n  const absDirPath = formatBreadcrumbs(breadcrumbs);\n  const {\n    items,\n    nextPagePath\n  } = await _classPrivateFieldLooseBase(this, _list)[_list]({\n    requestPath: this.nextPagePath,\n    absDirPath,\n    signal\n  });\n  this.nextPagePath = nextPagePath;\n  const files = [];\n  const folders = [];\n  items.forEach(item => {\n    if (item.isFolder) {\n      folders.push(item);\n    } else {\n      files.push(item);\n    }\n  });\n  return {\n    files,\n    folders\n  };\n}\nasync function _recursivelyListAllFiles2(_ref3) {\n  let {\n    requestPath,\n    absDirPath,\n    relDirPath,\n    queue,\n    onFiles,\n    signal\n  } = _ref3;\n  let curPath = requestPath;\n  while (curPath) {\n    const res = await _classPrivateFieldLooseBase(this, _list)[_list]({\n      requestPath: curPath,\n      absDirPath,\n      signal\n    });\n    curPath = res.nextPagePath;\n    const files = res.items.filter(item => !item.isFolder);\n    const folders = res.items.filter(item => item.isFolder);\n    onFiles(files);\n\n    // recursively queue call to self for each folder\n    const promises = folders.map(async folder => queue.add(async () => _classPrivateFieldLooseBase(this, _recursivelyListAllFiles)[_recursivelyListAllFiles]({\n      requestPath: folder.requestPath,\n      absDirPath: prependPath(absDirPath, folder.name),\n      relDirPath: prependPath(relDirPath, folder.name),\n      queue,\n      onFiles,\n      signal\n    })));\n    await Promise.all(promises); // in case we get an error\n  }\n}\nProviderView.VERSION = packageJson.version;", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { h } from 'preact';\nimport SearchFilterInput from \"../SearchFilterInput.js\";\nimport Browser from \"../Browser.js\";\nimport CloseWrapper from \"../CloseWrapper.js\";\nimport View from \"../View.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.10.0\"\n};\nconst defaultState = {\n  isInputMode: true,\n  files: [],\n  folders: [],\n  breadcrumbs: [],\n  filterInput: '',\n  currentSelection: [],\n  searchTerm: null\n};\nconst defaultOptions = {\n  viewType: 'grid',\n  showTitles: true,\n  showFilter: true,\n  showBreadcrumbs: true\n};\nvar _updateFilesAndInputMode = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateFilesAndInputMode\");\n/**\n * SearchProviderView, used for Unsplash and future image search providers.\n * Extends generic View, shared with regular providers like Google Drive and Instagram.\n */\nexport default class SearchProviderView extends View {\n  constructor(plugin, opts) {\n    super(plugin, {\n      ...defaultOptions,\n      ...opts\n    });\n    Object.defineProperty(this, _updateFilesAndInputMode, {\n      value: _updateFilesAndInputMode2\n    });\n    this.nextPageQuery = null;\n    this.search = this.search.bind(this);\n    this.clearSearch = this.clearSearch.bind(this);\n    this.resetPluginState = this.resetPluginState.bind(this);\n    this.handleScroll = this.handleScroll.bind(this);\n    this.donePicking = this.donePicking.bind(this);\n    this.render = this.render.bind(this);\n    this.plugin.setPluginState(defaultState);\n    this.registerRequestClient();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  tearDown() {\n    // Nothing.\n  }\n  resetPluginState() {\n    this.plugin.setPluginState(defaultState);\n  }\n  async search(query) {\n    const {\n      searchTerm\n    } = this.plugin.getPluginState();\n    if (query && query === searchTerm) {\n      // no need to search again as this is the same as the previous search\n      return;\n    }\n    this.setLoading(true);\n    try {\n      const res = await this.provider.search(query);\n      _classPrivateFieldLooseBase(this, _updateFilesAndInputMode)[_updateFilesAndInputMode](res, []);\n    } catch (err) {\n      this.handleError(err);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n  clearSearch() {\n    this.plugin.setPluginState({\n      currentSelection: [],\n      files: [],\n      searchTerm: null\n    });\n  }\n  async handleScroll(event) {\n    const query = this.nextPageQuery || null;\n    if (this.shouldHandleScroll(event) && query) {\n      this.isHandlingScroll = true;\n      try {\n        const {\n          files,\n          searchTerm\n        } = this.plugin.getPluginState();\n        const response = await this.provider.search(searchTerm, query);\n        _classPrivateFieldLooseBase(this, _updateFilesAndInputMode)[_updateFilesAndInputMode](response, files);\n      } catch (error) {\n        this.handleError(error);\n      } finally {\n        this.isHandlingScroll = false;\n      }\n    }\n  }\n  donePicking() {\n    const {\n      currentSelection\n    } = this.plugin.getPluginState();\n    this.plugin.uppy.log('Adding remote search provider files');\n    this.plugin.uppy.addFiles(currentSelection.map(file => this.getTagFile(file)));\n    this.resetPluginState();\n  }\n  render(state, viewOptions) {\n    var _this = this;\n    if (viewOptions === void 0) {\n      viewOptions = {};\n    }\n    const {\n      didFirstRender,\n      isInputMode,\n      searchTerm\n    } = this.plugin.getPluginState();\n    const {\n      i18n\n    } = this.plugin.uppy;\n    if (!didFirstRender) {\n      this.preFirstRender();\n    }\n    const targetViewOptions = {\n      ...this.opts,\n      ...viewOptions\n    };\n    const {\n      files,\n      folders,\n      filterInput,\n      loading,\n      currentSelection\n    } = this.plugin.getPluginState();\n    const {\n      isChecked,\n      toggleCheckbox,\n      filterItems,\n      recordShiftKeyPress\n    } = this;\n    const hasInput = filterInput !== '';\n    const browserProps = {\n      isChecked,\n      toggleCheckbox,\n      recordShiftKeyPress,\n      currentSelection,\n      files: hasInput ? filterItems(files) : files,\n      folders: hasInput ? filterItems(folders) : folders,\n      handleScroll: this.handleScroll,\n      done: this.donePicking,\n      cancel: this.cancelPicking,\n      // For SearchFilterInput component\n      showSearchFilter: targetViewOptions.showFilter,\n      search: this.search,\n      clearSearch: this.clearSearch,\n      searchTerm,\n      searchOnInput: false,\n      searchInputLabel: i18n('search'),\n      clearSearchLabel: i18n('resetSearch'),\n      noResultsLabel: i18n('noSearchResults'),\n      title: this.plugin.title,\n      viewType: targetViewOptions.viewType,\n      showTitles: targetViewOptions.showTitles,\n      showFilter: targetViewOptions.showFilter,\n      isLoading: loading,\n      showBreadcrumbs: targetViewOptions.showBreadcrumbs,\n      pluginIcon: this.plugin.icon,\n      i18n,\n      uppyFiles: this.plugin.uppy.getFiles(),\n      validateRestrictions: function () {\n        return _this.plugin.uppy.validateRestrictions(...arguments);\n      }\n    };\n    if (isInputMode) {\n      return h(CloseWrapper, {\n        onUnmount: this.resetPluginState\n      }, h(\"div\", {\n        className: \"uppy-SearchProvider\"\n      }, h(SearchFilterInput, {\n        search: this.search,\n        inputLabel: i18n('enterTextToSearch'),\n        buttonLabel: i18n('searchImages'),\n        inputClassName: \"uppy-c-textInput uppy-SearchProvider-input\",\n        buttonCSSClassName: \"uppy-SearchProvider-searchButton\",\n        showButton: true\n      })));\n    }\n    return h(CloseWrapper, {\n      onUnmount: this.resetPluginState\n    }, h(Browser, browserProps));\n  }\n}\nfunction _updateFilesAndInputMode2(res, files) {\n  this.nextPageQuery = res.nextPageQuery;\n  res.items.forEach(item => {\n    files.push(item);\n  });\n  this.plugin.setPluginState({\n    currentSelection: [],\n    isInputMode: false,\n    files,\n    searchTerm: res.searchedFor\n  });\n}\nSearchProviderView.VERSION = packageJson.version;", "var safeIsNaN = Number.isNaN ||\n    function ponyfill(value) {\n        return typeof value === 'number' && value !== value;\n    };\nfunction isEqual(first, second) {\n    if (first === second) {\n        return true;\n    }\n    if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n    }\n    return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n    if (newInputs.length !== lastInputs.length) {\n        return false;\n    }\n    for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n    if (isEqual === void 0) { isEqual = areInputsEqual; }\n    var cache = null;\n    function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newArgs[_i] = arguments[_i];\n        }\n        if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n            return cache.lastResult;\n        }\n        var lastResult = resultFn.apply(this, newArgs);\n        cache = {\n            lastResult: lastResult,\n            lastArgs: newArgs,\n            lastThis: this,\n        };\n        return lastResult;\n    }\n    memoized.clear = function clear() {\n        cache = null;\n    };\n    return memoized;\n}\n\nexport { memoizeOne as default };\n", "export default ['a[href]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'area[href]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'input:not([disabled]):not([inert]):not([aria-hidden])', 'select:not([disabled]):not([inert]):not([aria-hidden])', 'textarea:not([disabled]):not([inert]):not([aria-hidden])', 'button:not([disabled]):not([inert]):not([aria-hidden])', 'iframe:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'object:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'embed:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', '[contenteditable]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', '[tabindex]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])'];", "/**\n * @returns {HTMLElement} - either dashboard element, or the overlay that's most on top\n */\nexport default function getActiveOverlayEl(dashboardEl, activeOverlayType) {\n  if (activeOverlayType) {\n    const overlayEl = dashboardEl.querySelector(`[data-uppy-paneltype=\"${activeOverlayType}\"]`);\n    // if an overlay is already mounted\n    if (overlayEl) return overlayEl;\n  }\n  return dashboardEl;\n}", "import toArray from '@uppy/utils/lib/toArray';\nimport FOCUSABLE_ELEMENTS from '@uppy/utils/lib/FOCUSABLE_ELEMENTS';\nimport getActiveOverlayEl from './getActiveOverlayEl.js';\nfunction focusOnFirstNode(event, nodes) {\n  const node = nodes[0];\n  if (node) {\n    node.focus();\n    event.preventDefault();\n  }\n}\nfunction focusOnLastNode(event, nodes) {\n  const node = nodes[nodes.length - 1];\n  if (node) {\n    node.focus();\n    event.preventDefault();\n  }\n}\n\n// ___Why not just use (focusedItemIndex === -1)?\n//    Firefox thinks <ul> is focusable, but we don't have <ul>s in our FOCUSABLE_ELEMENTS. Which means that if we tab into\n//    the <ul>, code will think that we are not in the active overlay, and we should focusOnFirstNode() of the currently\n//    active overlay!\n//    [Practical check] if we use (focusedItemIndex === -1), instagram provider in firefox will never get focus on its pics\n//    in the <ul>.\nfunction isFocusInOverlay(activeOverlayEl) {\n  return activeOverlayEl.contains(document.activeElement);\n}\nfunction trapFocus(event, activeOverlayType, dashboardEl) {\n  const activeOverlayEl = getActiveOverlayEl(dashboardEl, activeOverlayType);\n  const focusableNodes = toArray(activeOverlayEl.querySelectorAll(FOCUSABLE_ELEMENTS));\n  const focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n  // If we pressed tab, and focus is not yet within the current overlay - focus on\n  // the first element within the current overlay.\n  // This is a safety measure (for when user returns from another tab e.g.), most\n  // plugins will try to focus on some important element as it loads.\n  if (!isFocusInOverlay(activeOverlayEl)) {\n    focusOnFirstNode(event, focusableNodes);\n    // If we pressed shift + tab, and we're on the first element of a modal\n  } else if (event.shiftKey && focusedItemIndex === 0) {\n    focusOnLastNode(event, focusableNodes);\n    // If we pressed tab, and we're on the last element of the modal\n  } else if (!event.shiftKey && focusedItemIndex === focusableNodes.length - 1) {\n    focusOnFirstNode(event, focusableNodes);\n  }\n}\n\n// Traps focus inside of the currently open overlay (e.g. Dashboard, or e.g. Instagram),\n// never lets focus disappear from the modal.\nexport { trapFocus as forModal };\n\n// Traps focus inside of the currently open overlay, unless overlay is null - then let the user tab away.\nexport function forInline(event, activeOverlayType, dashboardEl) {\n  // ___When we're in the bare 'Drop files here, paste, browse or import from' screen\n  if (activeOverlayType === null) {\n    // Do nothing and let the browser handle it, user can tab away from Uppy to other elements on the page\n    // ___When there is some overlay with 'Done' button\n  } else {\n    // Trap the focus inside this overlay!\n    // User can close the overlay (click 'Done') if they want to travel away from Uppy.\n    trapFocus(event, activeOverlayType, dashboardEl);\n  }\n}", "import debounce from 'lodash/debounce.js';\nimport FOCUSABLE_ELEMENTS from '@uppy/utils/lib/FOCUSABLE_ELEMENTS';\nimport getActiveOverlayEl from './getActiveOverlayEl.js';\n\n/*\n  Focuses on some element in the currently topmost overlay.\n\n  1. If there are some [data-uppy-super-focusable] elements rendered already - focuses\n     on the first superfocusable element, and leaves focus up to the control of\n     a user (until currently focused element disappears from the screen [which\n     can happen when overlay changes, or, e.g., when we click on a folder in googledrive]).\n  2. If there are no [data-uppy-super-focusable] elements yet (or ever) - focuses\n     on the first focusable element, but switches focus if superfocusable elements appear on next render.\n*/\nexport default function createSuperFocus() {\n  let lastFocusWasOnSuperFocusableEl = false;\n  const superFocus = (dashboardEl, activeOverlayType) => {\n    const overlayEl = getActiveOverlayEl(dashboardEl, activeOverlayType);\n    const isFocusInOverlay = overlayEl.contains(document.activeElement);\n    // If focus is already in the topmost overlay, AND on last update we focused on the superfocusable\n    // element - then leave focus up to the user.\n    // [Practical check] without this line, typing in the search input in googledrive overlay won't work.\n    if (isFocusInOverlay && lastFocusWasOnSuperFocusableEl) return;\n    const superFocusableEl = overlayEl.querySelector('[data-uppy-super-focusable]');\n    // If we are already in the topmost overlay, AND there are no super focusable elements yet, - leave focus up to the user.\n    // [Practical check] without this line, if you are in an empty folder in google drive, and something's uploading in the\n    // bg, - focus will be jumping to Done all the time.\n    if (isFocusInOverlay && !superFocusableEl) return;\n    if (superFocusableEl) {\n      superFocusableEl.focus({\n        preventScroll: true\n      });\n      lastFocusWasOnSuperFocusableEl = true;\n    } else {\n      const firstEl = overlayEl.querySelector(FOCUSABLE_ELEMENTS);\n      firstEl == null || firstEl.focus({\n        preventScroll: true\n      });\n      lastFocusWasOnSuperFocusableEl = false;\n    }\n  };\n\n  // ___Why do we need to debounce?\n  //    1. To deal with animations: overlay changes via animations, which results in the DOM updating AFTER plugin.update()\n  //       already executed.\n  //    [Practical check] without debounce, if we open the Url overlay, and click 'Done', Dashboard won't get focused again.\n  //    [Practical check] if we delay 250ms instead of 260ms - IE11 won't get focused in same situation.\n  //    2. Performance: there can be many state update()s in a second, and this function is called every time.\n  return debounce(superFocus, 260);\n}", "function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport isDragDropSupported from '@uppy/utils/lib/isDragDropSupported';\nimport FileList from \"./FileList.js\";\nimport AddFiles from \"./AddFiles.js\";\nimport AddFilesPanel from \"./AddFilesPanel.js\";\nimport PickerPanelContent from \"./PickerPanelContent.js\";\nimport EditorPanel from \"./EditorPanel.js\";\nimport PanelTopBar from \"./PickerPanelTopBar.js\";\nimport FileCard from \"./FileCard/index.js\";\nimport Slide from \"./Slide.js\";\n\n// http://dev.edenspiekermann.com/2016/02/11/introducing-accessible-modal-dialog\n// https://github.com/ghosh/micromodal\n\nconst WIDTH_XL = 900;\nconst WIDTH_LG = 700;\nconst WIDTH_MD = 576;\nconst HEIGHT_MD = 330;\n// We might want to enable this in the future\n// const HEIGHT_LG = 400\n// const HEIGHT_XL = 460\n\nexport default function Dashboard(props) {\n  const isNoFiles = props.totalFileCount === 0;\n  const isSingleFile = props.totalFileCount === 1;\n  const isSizeMD = props.containerWidth > WIDTH_MD;\n  const isSizeHeightMD = props.containerHeight > HEIGHT_MD;\n  const dashboardClassName = classNames({\n    'uppy-Dashboard': true,\n    'uppy-Dashboard--isDisabled': props.disabled,\n    'uppy-Dashboard--animateOpenClose': props.animateOpenClose,\n    'uppy-Dashboard--isClosing': props.isClosing,\n    'uppy-Dashboard--isDraggingOver': props.isDraggingOver,\n    'uppy-Dashboard--modal': !props.inline,\n    'uppy-size--md': props.containerWidth > WIDTH_MD,\n    'uppy-size--lg': props.containerWidth > WIDTH_LG,\n    'uppy-size--xl': props.containerWidth > WIDTH_XL,\n    'uppy-size--height-md': props.containerHeight > HEIGHT_MD,\n    // We might want to enable this in the future\n    // 'uppy-size--height-lg': props.containerHeight > HEIGHT_LG,\n    // 'uppy-size--height-xl': props.containerHeight > HEIGHT_XL,\n    'uppy-Dashboard--isAddFilesPanelVisible': props.showAddFilesPanel,\n    'uppy-Dashboard--isInnerWrapVisible': props.areInsidesReadyToBeVisible,\n    // Only enable \u201Ccentered single file\u201D mode when Dashboard is tall enough\n    'uppy-Dashboard--singleFile': props.singleFileFullScreen && isSingleFile && isSizeHeightMD\n  });\n\n  // Important: keep these in sync with the percent width values in `src/components/FileItem/index.scss`.\n  let itemsPerRow = 1; // mobile\n  if (props.containerWidth > WIDTH_XL) {\n    itemsPerRow = 5;\n  } else if (props.containerWidth > WIDTH_LG) {\n    itemsPerRow = 4;\n  } else if (props.containerWidth > WIDTH_MD) {\n    itemsPerRow = 3;\n  }\n  const showFileList = props.showSelectedFiles && !isNoFiles;\n  const numberOfFilesForRecovery = props.recoveredState ? Object.keys(props.recoveredState.files).length : null;\n  const numberOfGhosts = props.files ? Object.keys(props.files).filter(fileID => props.files[fileID].isGhost).length : null;\n  const renderRestoredText = () => {\n    if (numberOfGhosts > 0) {\n      return props.i18n('recoveredXFiles', {\n        smart_count: numberOfGhosts\n      });\n    }\n    return props.i18n('recoveredAllFiles');\n  };\n  const dashboard = h(\"div\", {\n    className: dashboardClassName,\n    \"data-uppy-theme\": props.theme,\n    \"data-uppy-num-acquirers\": props.acquirers.length,\n    \"data-uppy-drag-drop-supported\": !props.disableLocalFiles && isDragDropSupported(),\n    \"aria-hidden\": props.inline ? 'false' : props.isHidden,\n    \"aria-disabled\": props.disabled,\n    \"aria-label\": !props.inline ? props.i18n('dashboardWindowTitle') : props.i18n('dashboardTitle'),\n    onPaste: props.handlePaste,\n    onDragOver: props.handleDragOver,\n    onDragLeave: props.handleDragLeave,\n    onDrop: props.handleDrop\n  }, h(\"div\", {\n    \"aria-hidden\": \"true\",\n    className: \"uppy-Dashboard-overlay\",\n    tabIndex: -1,\n    onClick: props.handleClickOutside\n  }), h(\"div\", {\n    className: \"uppy-Dashboard-inner\",\n    \"aria-modal\": !props.inline && 'true',\n    role: !props.inline && 'dialog',\n    style: {\n      width: props.inline && props.width ? props.width : '',\n      height: props.inline && props.height ? props.height : ''\n    }\n  }, !props.inline ? h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-close\",\n    type: \"button\",\n    \"aria-label\": props.i18n('closeModal'),\n    title: props.i18n('closeModal'),\n    onClick: props.closeModal\n  }, h(\"span\", {\n    \"aria-hidden\": \"true\"\n  }, \"\\xD7\")) : null, h(\"div\", {\n    className: \"uppy-Dashboard-innerWrap\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-dropFilesHereHint\"\n  }, props.i18n('dropHint')), showFileList && h(PanelTopBar, props), numberOfFilesForRecovery && h(\"div\", {\n    className: \"uppy-Dashboard-serviceMsg\"\n  }, h(\"svg\", {\n    className: \"uppy-Dashboard-serviceMsg-icon\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"21\",\n    height: \"16\",\n    viewBox: \"0 0 24 19\"\n  }, h(\"g\", {\n    transform: \"translate(0 -1)\",\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"path\", {\n    d: \"M12.857 1.43l10.234 17.056A1 1 0 0122.234 20H1.766a1 1 0 01-.857-1.514L11.143 1.429a1 1 0 011.714 0z\",\n    fill: \"#FFD300\"\n  }), h(\"path\", {\n    fill: \"#000\",\n    d: \"M11 6h2l-.3 8h-1.4z\"\n  }), h(\"circle\", {\n    fill: \"#000\",\n    cx: \"12\",\n    cy: \"17\",\n    r: \"1\"\n  }))), h(\"strong\", {\n    className: \"uppy-Dashboard-serviceMsg-title\"\n  }, props.i18n('sessionRestored')), h(\"div\", {\n    className: \"uppy-Dashboard-serviceMsg-text\"\n  }, renderRestoredText())), showFileList ? h(FileList, {\n    id: props.id,\n    error: props.error,\n    i18n: props.i18n,\n    uppy: props.uppy,\n    files: props.files,\n    acquirers: props.acquirers,\n    resumableUploads: props.resumableUploads,\n    hideRetryButton: props.hideRetryButton,\n    hidePauseResumeButton: props.hidePauseResumeButton,\n    hideCancelButton: props.hideCancelButton,\n    showLinkToFileUploadResult: props.showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete: props.showRemoveButtonAfterComplete,\n    isWide: props.isWide,\n    metaFields: props.metaFields,\n    toggleFileCard: props.toggleFileCard,\n    handleRequestThumbnail: props.handleRequestThumbnail,\n    handleCancelThumbnail: props.handleCancelThumbnail,\n    recoveredState: props.recoveredState,\n    individualCancellation: props.individualCancellation,\n    openFileEditor: props.openFileEditor,\n    canEditFile: props.canEditFile,\n    toggleAddFilesPanel: props.toggleAddFilesPanel,\n    isSingleFile: isSingleFile,\n    itemsPerRow: itemsPerRow\n  }) :\n  // eslint-disable-next-line react/jsx-props-no-spreading\n  h(AddFiles, _extends({}, props, {\n    isSizeMD: isSizeMD\n  })), h(Slide, null, props.showAddFilesPanel ? h(AddFilesPanel, _extends({\n    key: \"AddFiles\"\n  }, props, {\n    isSizeMD: isSizeMD\n  })) : null), h(Slide, null, props.fileCardFor ? h(FileCard, _extends({\n    key: \"FileCard\"\n  }, props)) : null), h(Slide, null, props.activePickerPanel ? h(PickerPanelContent, _extends({\n    key: \"Picker\"\n  }, props)) : null), h(Slide, null, props.showFileEditor ? h(EditorPanel, _extends({\n    key: \"Editor\"\n  }, props)) : null), h(\"div\", {\n    className: \"uppy-Dashboard-progressindicators\"\n  }, props.progressindicators.map(target => {\n    return props.uppy.getPlugin(target.id).render(props.state);\n  })))));\n  return dashboard;\n}", "/**\n * Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).\n */\nexport default function isDragDropSupported() {\n  const div = document.body;\n  if (!('draggable' in div) || !('ondragstart' in div && 'ondrop' in div)) {\n    return false;\n  }\n  if (!('FormData' in window)) {\n    return false;\n  }\n  if (!('FileReader' in window)) {\n    return false;\n  }\n  return true;\n}", "import { h, Component } from 'preact';\nimport classNames from 'classnames';\nimport shallowEqual from 'is-shallow-equal';\nimport FilePreviewAndLink from \"./FilePreviewAndLink/index.js\";\nimport FileProgress from \"./FileProgress/index.js\";\nimport FileInfo from \"./FileInfo/index.js\";\nimport Buttons from \"./Buttons/index.js\";\nexport default class FileItem extends Component {\n  componentDidMount() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleRequestThumbnail(file);\n    }\n  }\n  shouldComponentUpdate(nextProps) {\n    return !shallowEqual(this.props, nextProps);\n  }\n\n  // VirtualList mounts FileItems again and they emit `thumbnail:request`\n  // Otherwise thumbnails are broken or missing after Golden Retriever restores files\n  componentDidUpdate() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleRequestThumbnail(file);\n    }\n  }\n  componentWillUnmount() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleCancelThumbnail(file);\n    }\n  }\n  render() {\n    const {\n      file\n    } = this.props;\n    const isProcessing = file.progress.preprocess || file.progress.postprocess;\n    const isUploaded = file.progress.uploadComplete && !isProcessing && !file.error;\n    const uploadInProgressOrComplete = file.progress.uploadStarted || isProcessing;\n    const uploadInProgress = file.progress.uploadStarted && !file.progress.uploadComplete || isProcessing;\n    const error = file.error || false;\n\n    // File that Golden Retriever was able to partly restore (only meta, not blob),\n    // users still need to re-add it, so it\u2019s a ghost\n    const {\n      isGhost\n    } = file;\n    let showRemoveButton = this.props.individualCancellation ? !isUploaded : !uploadInProgress && !isUploaded;\n    if (isUploaded && this.props.showRemoveButtonAfterComplete) {\n      showRemoveButton = true;\n    }\n    const dashboardItemClass = classNames({\n      'uppy-Dashboard-Item': true,\n      'is-inprogress': uploadInProgress && !this.props.recoveredState,\n      'is-processing': isProcessing,\n      'is-complete': isUploaded,\n      'is-error': !!error,\n      'is-resumable': this.props.resumableUploads,\n      'is-noIndividualCancellation': !this.props.individualCancellation,\n      'is-ghost': isGhost\n    });\n    return h(\"div\", {\n      className: dashboardItemClass,\n      id: `uppy_${file.id}`,\n      role: this.props.role\n    }, h(\"div\", {\n      className: \"uppy-Dashboard-Item-preview\"\n    }, h(FilePreviewAndLink, {\n      file: file,\n      showLinkToFileUploadResult: this.props.showLinkToFileUploadResult,\n      i18n: this.props.i18n,\n      toggleFileCard: this.props.toggleFileCard,\n      metaFields: this.props.metaFields\n    }), h(FileProgress, {\n      uppy: this.props.uppy,\n      file: file,\n      error: error,\n      isUploaded: isUploaded,\n      hideRetryButton: this.props.hideRetryButton,\n      hideCancelButton: this.props.hideCancelButton,\n      hidePauseResumeButton: this.props.hidePauseResumeButton,\n      recoveredState: this.props.recoveredState,\n      showRemoveButtonAfterComplete: this.props.showRemoveButtonAfterComplete,\n      resumableUploads: this.props.resumableUploads,\n      individualCancellation: this.props.individualCancellation,\n      i18n: this.props.i18n\n    })), h(\"div\", {\n      className: \"uppy-Dashboard-Item-fileInfoAndButtons\"\n    }, h(FileInfo, {\n      file: file,\n      id: this.props.id,\n      acquirers: this.props.acquirers,\n      containerWidth: this.props.containerWidth,\n      containerHeight: this.props.containerHeight,\n      i18n: this.props.i18n,\n      toggleAddFilesPanel: this.props.toggleAddFilesPanel,\n      toggleFileCard: this.props.toggleFileCard,\n      metaFields: this.props.metaFields,\n      isSingleFile: this.props.isSingleFile\n    }), h(Buttons, {\n      file: file,\n      metaFields: this.props.metaFields,\n      showLinkToFileUploadResult: this.props.showLinkToFileUploadResult,\n      showRemoveButton: showRemoveButton,\n      canEditFile: this.props.canEditFile,\n      uploadInProgressOrComplete: uploadInProgressOrComplete,\n      toggleFileCard: this.props.toggleFileCard,\n      openFileEditor: this.props.openFileEditor,\n      uppy: this.props.uppy,\n      i18n: this.props.i18n\n    })));\n  }\n}", "import { h } from 'preact';\nfunction iconImage() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"g\", {\n    fill: \"#686DE0\",\n    fillRule: \"evenodd\"\n  }, h(\"path\", {\n    d: \"M5 7v10h15V7H5zm0-1h15a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z\",\n    fillRule: \"nonzero\"\n  }), h(\"path\", {\n    d: \"M6.35 17.172l4.994-5.026a.5.5 0 0 1 .707 0l2.16 2.16 3.505-3.505a.5.5 0 0 1 .707 0l2.336 2.31-.707.72-1.983-1.97-3.505 3.505a.5.5 0 0 1-.707 0l-2.16-2.159-3.938 3.939-1.409.026z\",\n    fillRule: \"nonzero\"\n  }), h(\"circle\", {\n    cx: \"7.5\",\n    cy: \"9.5\",\n    r: \"1.5\"\n  })));\n}\nfunction iconAudio() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M9.5 18.64c0 1.14-1.145 2-2.5 2s-2.5-.86-2.5-2c0-1.14 1.145-2 2.5-2 .557 0 1.079.145 1.5.396V7.25a.5.5 0 0 1 .379-.485l9-2.25A.5.5 0 0 1 18.5 5v11.64c0 1.14-1.145 2-2.5 2s-2.5-.86-2.5-2c0-1.14 1.145-2 2.5-2 .557 0 1.079.145 1.5.396V8.67l-8 2v7.97zm8-11v-2l-8 2v2l8-2zM7 19.64c.855 0 1.5-.484 1.5-1s-.645-1-1.5-1-1.5.484-1.5 1 .645 1 1.5 1zm9-2c.855 0 1.5-.484 1.5-1s-.645-1-1.5-1-1.5.484-1.5 1 .645 1 1.5 1z\",\n    fill: \"#049BCF\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconVideo() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M16 11.834l4.486-2.691A1 1 0 0 1 22 10v6a1 1 0 0 1-1.514.857L16 14.167V17a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v2.834zM15 9H5v8h10V9zm1 4l5 3v-6l-5 3z\",\n    fill: \"#19AF67\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconPDF() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M9.766 8.295c-.691-1.843-.539-3.401.747-3.726 1.643-.414 2.505.938 2.39 3.299-.039.79-.194 1.662-.537 3.148.324.49.66.967 1.055 1.51.17.231.382.488.629.757 1.866-.128 3.653.114 4.918.655 1.487.635 2.192 1.685 1.614 2.84-.566 1.133-1.839 1.084-3.416.249-1.141-.604-2.457-1.634-3.51-2.707a13.467 13.467 0 0 0-2.238.426c-1.392 4.051-4.534 6.453-5.707 4.572-.986-1.58 1.38-4.206 4.914-5.375.097-.322.185-.656.264-1.001.08-.353.306-1.31.407-1.737-.678-1.059-1.2-2.031-1.53-2.91zm2.098 4.87c-.033.144-.068.287-.104.427l.033-.01-.012.038a14.065 14.065 0 0 1 1.02-.197l-.032-.033.052-.004a7.902 7.902 0 0 1-.208-.271c-.197-.27-.38-.526-.555-.775l-.006.028-.002-.003c-.076.323-.148.632-.186.8zm5.77 2.978c1.143.605 1.832.632 2.054.187.26-.519-.087-1.034-1.113-1.473-.911-.39-2.175-.608-3.55-.608.845.766 1.787 1.459 2.609 1.894zM6.559 18.789c.14.223.693.16 1.425-.413.827-.648 1.61-1.747 2.208-3.206-2.563 1.064-4.102 2.867-3.633 3.62zm5.345-10.97c.088-1.793-.351-2.48-1.146-2.28-.473.119-.564 1.05-.056 2.405.213.566.52 1.188.908 1.859.18-.858.268-1.453.294-1.984z\",\n    fill: \"#E2514A\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconArchive() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M10.45 2.05h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5V2.55a.5.5 0 0 1 .5-.5zm2.05 1.024h1.05a.5.5 0 0 1 .5.5V3.6a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5v-.001zM10.45 0h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-2.05 3.074h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-2.05 1.024h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm-2.05 1.025h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-1.656 3.074l-.82 5.946c.52.302 1.174.458 1.976.458.803 0 1.455-.156 1.975-.458l-.82-5.946h-2.311zm0-1.025h2.312c.512 0 .946.378 1.015.885l.82 5.946c.056.412-.142.817-.501 1.026-.686.398-1.515.597-2.49.597-.974 0-1.804-.199-2.49-.597a1.025 1.025 0 0 1-.5-1.026l.819-5.946c.07-.507.503-.885 1.015-.885zm.545 6.6a.5.5 0 0 1-.397-.561l.143-.999a.5.5 0 0 1 .495-.429h.74a.5.5 0 0 1 .495.43l.143.998a.5.5 0 0 1-.397.561c-.404.08-.819.08-1.222 0z\",\n    fill: \"#00C469\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconFile() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"g\", {\n    fill: \"#A7AFB7\",\n    fillRule: \"nonzero\"\n  }, h(\"path\", {\n    d: \"M5.5 22a.5.5 0 0 1-.5-.5v-18a.5.5 0 0 1 .5-.5h10.719a.5.5 0 0 1 .367.16l3.281 3.556a.5.5 0 0 1 .133.339V21.5a.5.5 0 0 1-.5.5h-14zm.5-1h13V7.25L16 4H6v17z\"\n  }), h(\"path\", {\n    d: \"M15 4v3a1 1 0 0 0 1 1h3V7h-3V4h-1z\"\n  })));\n}\nfunction iconText() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M4.5 7h13a.5.5 0 1 1 0 1h-13a.5.5 0 0 1 0-1zm0 3h15a.5.5 0 1 1 0 1h-15a.5.5 0 1 1 0-1zm0 3h15a.5.5 0 1 1 0 1h-15a.5.5 0 1 1 0-1zm0 3h10a.5.5 0 1 1 0 1h-10a.5.5 0 1 1 0-1z\",\n    fill: \"#5A5E69\",\n    fillRule: \"nonzero\"\n  }));\n}\nexport default function getIconByMime(fileType) {\n  const defaultChoice = {\n    color: '#838999',\n    icon: iconFile()\n  };\n  if (!fileType) return defaultChoice;\n  const fileTypeGeneral = fileType.split('/')[0];\n  const fileTypeSpecific = fileType.split('/')[1];\n\n  // Text\n  if (fileTypeGeneral === 'text') {\n    return {\n      color: '#5a5e69',\n      icon: iconText()\n    };\n  }\n\n  // Image\n  if (fileTypeGeneral === 'image') {\n    return {\n      color: '#686de0',\n      icon: iconImage()\n    };\n  }\n\n  // Audio\n  if (fileTypeGeneral === 'audio') {\n    return {\n      color: '#068dbb',\n      icon: iconAudio()\n    };\n  }\n\n  // Video\n  if (fileTypeGeneral === 'video') {\n    return {\n      color: '#19af67',\n      icon: iconVideo()\n    };\n  }\n\n  // PDF\n  if (fileTypeGeneral === 'application' && fileTypeSpecific === 'pdf') {\n    return {\n      color: '#e25149',\n      icon: iconPDF()\n    };\n  }\n\n  // Archive\n  const archiveTypes = ['zip', 'x-7z-compressed', 'x-rar-compressed', 'x-tar', 'x-gzip', 'x-apple-diskimage'];\n  if (fileTypeGeneral === 'application' && archiveTypes.indexOf(fileTypeSpecific) !== -1) {\n    return {\n      color: '#00C469',\n      icon: iconArchive()\n    };\n  }\n  return defaultChoice;\n}", "import { h } from 'preact';\nimport getFileTypeIcon from \"../utils/getFileTypeIcon.js\";\nexport default function FilePreview(props) {\n  const {\n    file\n  } = props;\n  if (file.preview) {\n    return h(\"img\", {\n      className: \"uppy-Dashboard-Item-previewImg\",\n      alt: file.name,\n      src: file.preview\n    });\n  }\n  const {\n    color,\n    icon\n  } = getFileTypeIcon(file.type);\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-previewIconWrap\"\n  }, h(\"span\", {\n    className: \"uppy-Dashboard-Item-previewIcon\",\n    style: {\n      color\n    }\n  }, icon), h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-Dashboard-Item-previewIconBg\",\n    width: \"58\",\n    height: \"76\",\n    viewBox: \"0 0 58 76\"\n  }, h(\"rect\", {\n    fill: \"#FFF\",\n    width: \"58\",\n    height: \"76\",\n    rx: \"3\",\n    fillRule: \"evenodd\"\n  })));\n}", "import { h } from 'preact';\nconst metaFieldIdToName = (metaFieldId, metaFields) => {\n  const fields = typeof metaFields === 'function' ? metaFields() : metaFields;\n  const field = fields.filter(f => f.id === metaFieldId);\n  return field[0].name;\n};\nexport default function renderMissingMetaFieldsError(props) {\n  const {\n    file,\n    toggleFileCard,\n    i18n,\n    metaFields\n  } = props;\n  const {\n    missingRequiredMetaFields\n  } = file;\n  if (!(missingRequiredMetaFields != null && missingRequiredMetaFields.length)) {\n    return null;\n  }\n  const metaFieldsString = missingRequiredMetaFields.map(missingMetaField => metaFieldIdToName(missingMetaField, metaFields)).join(', ');\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-errorMessage\"\n  }, i18n('missingRequiredMetaFields', {\n    smart_count: missingRequiredMetaFields.length,\n    fields: metaFieldsString\n  }), ' ', h(\"button\", {\n    type: \"button\",\n    class: \"uppy-u-reset uppy-Dashboard-Item-errorMessageBtn\",\n    onClick: () => toggleFileCard(true, file.id)\n  }, i18n('editFile')));\n}", "import { h } from 'preact';\nimport FilePreview from \"../../FilePreview.js\";\nimport MetaErrorMessage from \"../MetaErrorMessage.js\";\nimport getFileTypeIcon from \"../../../utils/getFileTypeIcon.js\";\nexport default function FilePreviewAndLink(props) {\n  const {\n    file,\n    i18n,\n    toggleFileCard,\n    metaFields,\n    showLinkToFileUploadResult\n  } = props;\n  const white = 'rgba(255, 255, 255, 0.5)';\n  const previewBackgroundColor = file.preview ? white : getFileTypeIcon(props.file.type).color;\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-previewInnerWrap\",\n    style: {\n      backgroundColor: previewBackgroundColor\n    }\n  }, showLinkToFileUploadResult && file.uploadURL && h(\"a\", {\n    className: \"uppy-Dashboard-Item-previewLink\",\n    href: file.uploadURL,\n    rel: \"noreferrer noopener\",\n    target: \"_blank\",\n    \"aria-label\": file.meta.name\n  }, h(\"span\", {\n    hidden: true\n  }, file.meta.name)), h(FilePreview, {\n    file: file\n  }), h(MetaErrorMessage, {\n    file: file,\n    i18n: i18n,\n    toggleFileCard: toggleFileCard,\n    metaFields: metaFields\n  }));\n}", "import { h } from 'preact';\nfunction onPauseResumeCancelRetry(props) {\n  if (props.isUploaded) return;\n  if (props.error && !props.hideRetryButton) {\n    props.uppy.retryUpload(props.file.id);\n    return;\n  }\n  if (props.resumableUploads && !props.hidePauseResumeButton) {\n    props.uppy.pauseResume(props.file.id);\n  } else if (props.individualCancellation && !props.hideCancelButton) {\n    props.uppy.removeFile(props.file.id);\n  }\n}\nfunction progressIndicatorTitle(props) {\n  if (props.isUploaded) {\n    return props.i18n('uploadComplete');\n  }\n  if (props.error) {\n    return props.i18n('retryUpload');\n  }\n  if (props.resumableUploads) {\n    if (props.file.isPaused) {\n      return props.i18n('resumeUpload');\n    }\n    return props.i18n('pauseUpload');\n  }\n  if (props.individualCancellation) {\n    return props.i18n('cancelUpload');\n  }\n  return '';\n}\nfunction ProgressIndicatorButton(props) {\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-progress\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-progressIndicator\",\n    type: \"button\",\n    \"aria-label\": progressIndicatorTitle(props),\n    title: progressIndicatorTitle(props),\n    onClick: () => onPauseResumeCancelRetry(props)\n  }, props.children));\n}\nfunction ProgressCircleContainer(_ref) {\n  let {\n    children\n  } = _ref;\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"70\",\n    height: \"70\",\n    viewBox: \"0 0 36 36\",\n    className: \"uppy-c-icon uppy-Dashboard-Item-progressIcon--circle\"\n  }, children);\n}\nfunction ProgressCircle(_ref2) {\n  let {\n    progress\n  } = _ref2;\n  // circle length equals 2 * PI * R\n  const circleLength = 2 * Math.PI * 15;\n  return h(\"g\", null, h(\"circle\", {\n    className: \"uppy-Dashboard-Item-progressIcon--bg\",\n    r: \"15\",\n    cx: \"18\",\n    cy: \"18\",\n    \"stroke-width\": \"2\",\n    fill: \"none\"\n  }), h(\"circle\", {\n    className: \"uppy-Dashboard-Item-progressIcon--progress\",\n    r: \"15\",\n    cx: \"18\",\n    cy: \"18\",\n    transform: \"rotate(-90, 18, 18)\",\n    fill: \"none\",\n    \"stroke-width\": \"2\",\n    \"stroke-dasharray\": circleLength,\n    \"stroke-dashoffset\": circleLength - circleLength / 100 * progress\n  }));\n}\nexport default function FileProgress(props) {\n  // Nothing if upload has not started\n  if (!props.file.progress.uploadStarted) {\n    return null;\n  }\n\n  // Green checkmark when complete\n  if (props.isUploaded) {\n    return h(\"div\", {\n      className: \"uppy-Dashboard-Item-progress\"\n    }, h(\"div\", {\n      className: \"uppy-Dashboard-Item-progressIndicator\"\n    }, h(ProgressCircleContainer, null, h(\"circle\", {\n      r: \"15\",\n      cx: \"18\",\n      cy: \"18\",\n      fill: \"#1bb240\"\n    }), h(\"polygon\", {\n      className: \"uppy-Dashboard-Item-progressIcon--check\",\n      transform: \"translate(2, 3)\",\n      points: \"14 22.5 7 15.2457065 8.99985857 13.1732815 14 18.3547104 22.9729883 9 25 11.1005634\"\n    }))));\n  }\n  if (props.recoveredState) {\n    return undefined;\n  }\n\n  // Retry button for error\n  if (props.error && !props.hideRetryButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        className: \"uppy-c-icon uppy-Dashboard-Item-progressIcon--retry\",\n        width: \"28\",\n        height: \"31\",\n        viewBox: \"0 0 16 19\"\n      }, h(\"path\", {\n        d: \"M16 11a8 8 0 1 1-8-8v2a6 6 0 1 0 6 6h2z\"\n      }), h(\"path\", {\n        d: \"M7.9 3H10v2H7.9z\"\n      }), h(\"path\", {\n        d: \"M8.536.5l3.535 3.536-1.414 1.414L7.12 1.914z\"\n      }), h(\"path\", {\n        d: \"M10.657 2.621l1.414 1.415L8.536 7.57 7.12 6.157z\"\n      })))\n    );\n  }\n\n  // Pause/resume button for resumable uploads\n  if (props.resumableUploads && !props.hidePauseResumeButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(ProgressCircleContainer, null, h(ProgressCircle, {\n        progress: props.file.progress.percentage\n      }), props.file.isPaused ? h(\"polygon\", {\n        className: \"uppy-Dashboard-Item-progressIcon--play\",\n        transform: \"translate(3, 3)\",\n        points: \"12 20 12 10 20 15\"\n      }) : h(\"g\", {\n        className: \"uppy-Dashboard-Item-progressIcon--pause\",\n        transform: \"translate(14.5, 13)\"\n      }, h(\"rect\", {\n        x: \"0\",\n        y: \"0\",\n        width: \"2\",\n        height: \"10\",\n        rx: \"0\"\n      }), h(\"rect\", {\n        x: \"5\",\n        y: \"0\",\n        width: \"2\",\n        height: \"10\",\n        rx: \"0\"\n      }))))\n    );\n  }\n\n  // Cancel button for non-resumable uploads if individualCancellation is supported (not bundled)\n  if (!props.resumableUploads && props.individualCancellation && !props.hideCancelButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(ProgressCircleContainer, null, h(ProgressCircle, {\n        progress: props.file.progress.percentage\n      }), h(\"polygon\", {\n        className: \"cancel\",\n        transform: \"translate(2, 2)\",\n        points: \"19.8856516 11.0625 16 14.9481516 12.1019737 11.0625 11.0625 12.1143484 14.9481516 16 11.0625 19.8980263 12.1019737 20.9375 16 17.0518484 19.8856516 20.9375 20.9375 19.8980263 17.0518484 16 20.9375 12\"\n      })))\n    );\n  }\n\n  // Just progress when buttons are disabled\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-progress\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-Item-progressIndicator\"\n  }, h(ProgressCircleContainer, null, h(ProgressCircle, {\n    progress: props.file.progress.percentage\n  }))));\n}", "import { h, Fragment } from 'preact';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport truncateString from '@uppy/utils/lib/truncateString';\nimport MetaErrorMessage from \"../MetaErrorMessage.js\";\nconst renderFileName = props => {\n  const {\n    author,\n    name\n  } = props.file.meta;\n  function getMaxNameLength() {\n    if (props.isSingleFile && props.containerHeight >= 350) {\n      return 90;\n    }\n    if (props.containerWidth <= 352) {\n      return 35;\n    }\n    if (props.containerWidth <= 576) {\n      return 60;\n    }\n    // When `author` is present, we want to make sure\n    // the file name fits on one line so we can place\n    // the author on the second line.\n    return author ? 20 : 30;\n  }\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-name\",\n    title: name\n  }, truncateString(name, getMaxNameLength()));\n};\nconst renderAuthor = props => {\n  var _props$file$remote;\n  const {\n    author\n  } = props.file.meta;\n  const providerName = (_props$file$remote = props.file.remote) == null ? void 0 : _props$file$remote.providerName;\n  const dot = `\\u00B7`;\n  if (!author) {\n    return null;\n  }\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-author\"\n  }, h(\"a\", {\n    href: `${author.url}?utm_source=Companion&utm_medium=referral`,\n    target: \"_blank\",\n    rel: \"noopener noreferrer\"\n  }, truncateString(author.name, 13)), providerName ? h(Fragment, null, ` ${dot} `, providerName, ` ${dot} `) : null);\n};\nconst renderFileSize = props => props.file.size && h(\"div\", {\n  className: \"uppy-Dashboard-Item-statusSize\"\n}, prettierBytes(props.file.size));\nconst ReSelectButton = props => props.file.isGhost && h(\"span\", null, ' \\u2022 ', h(\"button\", {\n  className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-reSelect\",\n  type: \"button\",\n  onClick: props.toggleAddFilesPanel\n}, props.i18n('reSelect')));\nconst ErrorButton = _ref => {\n  let {\n    file,\n    onClick\n  } = _ref;\n  if (file.error) {\n    return h(\"button\", {\n      className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-errorDetails\",\n      \"aria-label\": file.error,\n      \"data-microtip-position\": \"bottom\",\n      \"data-microtip-size\": \"medium\",\n      onClick: onClick,\n      type: \"button\"\n    }, \"?\");\n  }\n  return null;\n};\nexport default function FileInfo(props) {\n  const {\n    file\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-fileInfo\",\n    \"data-uppy-file-source\": file.source\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-Item-fileName\"\n  }, renderFileName(props), h(ErrorButton, {\n    file: props.file\n    // eslint-disable-next-line no-alert\n    ,\n    onClick: () => alert(props.file.error) // TODO: move to a custom alert implementation\n  })), h(\"div\", {\n    className: \"uppy-Dashboard-Item-status\"\n  }, renderAuthor(props), renderFileSize(props), ReSelectButton(props)), h(MetaErrorMessage, {\n    file: props.file,\n    i18n: props.i18n,\n    toggleFileCard: props.toggleFileCard,\n    metaFields: props.metaFields\n  }));\n}", "/**\n * Truncates a string to the given number of chars (maxLength) by inserting '...' in the middle of that string.\n * Partially taken from https://stackoverflow.com/a/5723274/3192470.\n */\nconst separator = '...';\nexport default function truncateString(string, maxLength) {\n  // Return the empty string if maxLength is zero\n  if (maxLength === 0) return '';\n  // Return original string if it's already shorter than maxLength\n  if (string.length <= maxLength) return string;\n  // Return truncated substring appended of the ellipsis char if string can't be meaningfully truncated\n  if (maxLength <= separator.length + 1) return `${string.slice(0, maxLength - 1)}\u2026`;\n  const charsToShow = maxLength - separator.length;\n  const frontChars = Math.ceil(charsToShow / 2);\n  const backChars = Math.floor(charsToShow / 2);\n  return string.slice(0, frontChars) + separator + string.slice(-backChars);\n}", "/**\n * Copies text to clipboard by creating an almost invisible textarea,\n * adding text there, then running execCommand('copy').\n * Falls back to prompt() when the easy way fails (hello, Safari!)\n * From http://stackoverflow.com/a/30810322\n *\n * @param {string} textToCopy\n * @param {string} fallbackString\n * @returns {Promise}\n */\nexport default function copyToClipboard(textToCopy, fallbackString) {\n  if (fallbackString === void 0) {\n    fallbackString = 'Copy the URL below';\n  }\n  return new Promise(resolve => {\n    const textArea = document.createElement('textarea');\n    textArea.setAttribute('style', {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      width: '2em',\n      height: '2em',\n      padding: 0,\n      border: 'none',\n      outline: 'none',\n      boxShadow: 'none',\n      background: 'transparent'\n    });\n    textArea.value = textToCopy;\n    document.body.appendChild(textArea);\n    textArea.select();\n    const magicCopyFailed = () => {\n      document.body.removeChild(textArea);\n      // eslint-disable-next-line no-alert\n      window.prompt(fallbackString, textToCopy);\n      resolve();\n    };\n    try {\n      const successful = document.execCommand('copy');\n      if (!successful) {\n        return magicCopyFailed('copy command unavailable');\n      }\n      document.body.removeChild(textArea);\n      return resolve();\n    } catch (err) {\n      document.body.removeChild(textArea);\n      return magicCopyFailed(err);\n    }\n  });\n}", "import { h } from 'preact';\nimport copyToClipboard from '../../../utils/copyToClipboard.js';\nfunction EditButton(_ref) {\n  let {\n    file,\n    uploadInProgressOrComplete,\n    metaFields,\n    canEditFile,\n    i18n,\n    onClick\n  } = _ref;\n  if (!uploadInProgressOrComplete && metaFields && metaFields.length > 0 || !uploadInProgressOrComplete && canEditFile(file)) {\n    return h(\"button\", {\n      className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-action uppy-Dashboard-Item-action--edit\",\n      type: \"button\",\n      \"aria-label\": i18n('editFileWithFilename', {\n        file: file.meta.name\n      }),\n      title: i18n('editFileWithFilename', {\n        file: file.meta.name\n      }),\n      onClick: () => onClick()\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      focusable: \"false\",\n      className: \"uppy-c-icon\",\n      width: \"14\",\n      height: \"14\",\n      viewBox: \"0 0 14 14\"\n    }, h(\"g\", {\n      fillRule: \"evenodd\"\n    }, h(\"path\", {\n      d: \"M1.5 10.793h2.793A1 1 0 0 0 5 10.5L11.5 4a1 1 0 0 0 0-1.414L9.707.793a1 1 0 0 0-1.414 0l-6.5 6.5A1 1 0 0 0 1.5 8v2.793zm1-1V8L9 1.5l1.793 1.793-6.5 6.5H2.5z\",\n      fillRule: \"nonzero\"\n    }), h(\"rect\", {\n      x: \"1\",\n      y: \"12.293\",\n      width: \"11\",\n      height: \"1\",\n      rx: \".5\"\n    }), h(\"path\", {\n      fillRule: \"nonzero\",\n      d: \"M6.793 2.5L9.5 5.207l.707-.707L7.5 1.793z\"\n    }))));\n  }\n  return null;\n}\nfunction RemoveButton(_ref2) {\n  let {\n    i18n,\n    onClick,\n    file\n  } = _ref2;\n  return h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--remove\",\n    type: \"button\",\n    \"aria-label\": i18n('removeFile', {\n      file: file.meta.name\n    }),\n    title: i18n('removeFile', {\n      file: file.meta.name\n    }),\n    onClick: () => onClick()\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"18\",\n    height: \"18\",\n    viewBox: \"0 0 18 18\"\n  }, h(\"path\", {\n    d: \"M9 0C4.034 0 0 4.034 0 9s4.034 9 9 9 9-4.034 9-9-4.034-9-9-9z\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: \"M13 12.222l-.778.778L9 9.778 5.778 13 5 12.222 8.222 9 5 5.778 5.778 5 9 8.222 12.222 5l.778.778L9.778 9z\"\n  })));\n}\nconst copyLinkToClipboard = (event, props) => {\n  copyToClipboard(props.file.uploadURL, props.i18n('copyLinkToClipboardFallback')).then(() => {\n    props.uppy.log('Link copied to clipboard.');\n    props.uppy.info(props.i18n('copyLinkToClipboardSuccess'), 'info', 3000);\n  }).catch(props.uppy.log)\n  // avoid losing focus\n  .then(() => event.target.focus({\n    preventScroll: true\n  }));\n};\nfunction CopyLinkButton(props) {\n  const {\n    i18n\n  } = props;\n  return h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--copyLink\",\n    type: \"button\",\n    \"aria-label\": i18n('copyLink'),\n    title: i18n('copyLink'),\n    onClick: event => copyLinkToClipboard(event, props)\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 12\"\n  }, h(\"path\", {\n    d: \"M7.94 7.703a2.613 2.613 0 0 1-.626 2.681l-.852.851a2.597 2.597 0 0 1-1.849.766A2.616 2.616 0 0 1 2.764 7.54l.852-.852a2.596 2.596 0 0 1 2.69-.625L5.267 7.099a1.44 1.44 0 0 0-.833.407l-.852.851a1.458 1.458 0 0 0 1.03 2.486c.39 0 .755-.152 1.03-.426l.852-.852c.231-.231.363-.522.406-.824l1.04-1.038zm4.295-5.937A2.596 2.596 0 0 0 10.387 1c-.698 0-1.355.272-1.849.766l-.852.851a2.614 2.614 0 0 0-.624 2.688l1.036-1.036c.041-.304.173-.6.407-.833l.852-.852c.275-.275.64-.426 1.03-.426a1.458 1.458 0 0 1 1.03 2.486l-.852.851a1.442 1.442 0 0 1-.824.406l-1.04 1.04a2.596 2.596 0 0 0 2.683-.628l.851-.85a2.616 2.616 0 0 0 0-3.697zm-6.88 6.883a.577.577 0 0 0 .82 0l3.474-3.474a.579.579 0 1 0-.819-.82L5.355 7.83a.579.579 0 0 0 0 .819z\"\n  })));\n}\nexport default function Buttons(props) {\n  const {\n    uppy,\n    file,\n    uploadInProgressOrComplete,\n    canEditFile,\n    metaFields,\n    showLinkToFileUploadResult,\n    showRemoveButton,\n    i18n,\n    toggleFileCard,\n    openFileEditor\n  } = props;\n  const editAction = () => {\n    if (metaFields && metaFields.length > 0) {\n      toggleFileCard(true, file.id);\n    } else {\n      openFileEditor(file);\n    }\n  };\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-actionWrapper\"\n  }, h(EditButton, {\n    i18n: i18n,\n    file: file,\n    uploadInProgressOrComplete: uploadInProgressOrComplete,\n    canEditFile: canEditFile,\n    metaFields: metaFields,\n    onClick: editAction\n  }), showLinkToFileUploadResult && file.uploadURL ? h(CopyLinkButton, {\n    file: file,\n    uppy: uppy,\n    i18n: i18n\n  }) : null, showRemoveButton ? h(RemoveButton, {\n    i18n: i18n,\n    file: file,\n    uppy: uppy,\n    onClick: () => props.uppy.removeFile(file.id, 'removed-by-user')\n  }) : null);\n}", "import { h } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport VirtualList from '@uppy/utils/lib/VirtualList';\nimport FileItem from \"./FileItem/index.js\";\nfunction chunks(list, size) {\n  const chunked = [];\n  let currentChunk = [];\n  list.forEach(item => {\n    if (currentChunk.length < size) {\n      currentChunk.push(item);\n    } else {\n      chunked.push(currentChunk);\n      currentChunk = [item];\n    }\n  });\n  if (currentChunk.length) chunked.push(currentChunk);\n  return chunked;\n}\nexport default (_ref => {\n  let {\n    id,\n    error,\n    i18n,\n    uppy,\n    files,\n    acquirers,\n    resumableUploads,\n    hideRetryButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete,\n    isWide,\n    metaFields,\n    isSingleFile,\n    toggleFileCard,\n    handleRequestThumbnail,\n    handleCancelThumbnail,\n    recoveredState,\n    individualCancellation,\n    itemsPerRow,\n    openFileEditor,\n    canEditFile,\n    toggleAddFilesPanel,\n    containerWidth,\n    containerHeight\n  } = _ref;\n  // It's not great that this is hardcoded!\n  // It's ESPECIALLY not great that this is checking against `itemsPerRow`!\n  const rowHeight = itemsPerRow === 1\n  // Mobile\n  ? 71\n  // 190px height + 2 * 5px margin\n  : 200;\n\n  // Sort files by file.isGhost, ghost files first, only if recoveredState is present\n  const rows = useMemo(() => {\n    const sortByGhostComesFirst = (file1, file2) => files[file2].isGhost - files[file1].isGhost;\n    const fileIds = Object.keys(files);\n    if (recoveredState) fileIds.sort(sortByGhostComesFirst);\n    return chunks(fileIds, itemsPerRow);\n  }, [files, itemsPerRow, recoveredState]);\n  const renderRow = row =>\n  // The `role=\"presentation` attribute ensures that the list items are properly\n  // associated with the `VirtualList` element.\n  // We use the first file ID as the key\u2014this should not change across scroll rerenders\n  h(\"div\", {\n    class: \"uppy-Dashboard-filesInner\",\n    role: \"presentation\",\n    key: row[0]\n  }, row.map(fileID => h(FileItem, {\n    key: fileID,\n    uppy: uppy\n    // FIXME This is confusing, it's actually the Dashboard's plugin ID\n    ,\n    id: id,\n    error: error\n    // TODO move this to context\n    ,\n    i18n: i18n\n    // features\n    ,\n    acquirers: acquirers,\n    resumableUploads: resumableUploads,\n    individualCancellation: individualCancellation\n    // visual options\n    ,\n    hideRetryButton: hideRetryButton,\n    hidePauseResumeButton: hidePauseResumeButton,\n    hideCancelButton: hideCancelButton,\n    showLinkToFileUploadResult: showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete: showRemoveButtonAfterComplete,\n    isWide: isWide,\n    metaFields: metaFields,\n    recoveredState: recoveredState,\n    isSingleFile: isSingleFile,\n    containerWidth: containerWidth,\n    containerHeight: containerHeight\n    // callbacks\n    ,\n    toggleFileCard: toggleFileCard,\n    handleRequestThumbnail: handleRequestThumbnail,\n    handleCancelThumbnail: handleCancelThumbnail,\n    role: \"listitem\",\n    openFileEditor: openFileEditor,\n    canEditFile: canEditFile,\n    toggleAddFilesPanel: toggleAddFilesPanel,\n    file: files[fileID]\n  })));\n  if (isSingleFile) {\n    return h(\"div\", {\n      class: \"uppy-Dashboard-files\"\n    }, renderRow(rows[0]));\n  }\n  return h(VirtualList, {\n    class: \"uppy-Dashboard-files\",\n    role: \"list\",\n    data: rows,\n    renderRow: renderRow,\n    rowHeight: rowHeight\n  });\n});", "let _Symbol$for;\nimport { h, Component, Fragment } from 'preact';\n_Symbol$for = Symbol.for('uppy test: disable unused locale key warning');\nclass AddFiles extends Component {\n  constructor() {\n    super(...arguments);\n    this.triggerFileInputClick = () => {\n      this.fileInput.click();\n    };\n    this.triggerFolderInputClick = () => {\n      this.folderInput.click();\n    };\n    this.triggerVideoCameraInputClick = () => {\n      this.mobileVideoFileInput.click();\n    };\n    this.triggerPhotoCameraInputClick = () => {\n      this.mobilePhotoFileInput.click();\n    };\n    this.onFileInputChange = event => {\n      this.props.handleInputChange(event);\n\n      // We clear the input after a file is selected, because otherwise\n      // change event is not fired in Chrome and Safari when a file\n      // with the same name is selected.\n      // ___Why not use value=\"\" on <input/> instead?\n      //    Because if we use that method of clearing the input,\n      //    Chrome will not trigger change if we drop the same file twice (Issue #768).\n      event.target.value = null; // eslint-disable-line no-param-reassign\n    };\n    this.renderHiddenInput = (isFolder, refCallback) => {\n      return h(\"input\", {\n        className: \"uppy-Dashboard-input\",\n        hidden: true,\n        \"aria-hidden\": \"true\",\n        tabIndex: -1,\n        webkitdirectory: isFolder,\n        type: \"file\",\n        name: \"files[]\",\n        multiple: this.props.maxNumberOfFiles !== 1,\n        onChange: this.onFileInputChange,\n        accept: this.props.allowedFileTypes,\n        ref: refCallback\n      });\n    };\n    this.renderHiddenCameraInput = (type, nativeCameraFacingMode, refCallback) => {\n      const typeToAccept = {\n        photo: 'image/*',\n        video: 'video/*'\n      };\n      const accept = typeToAccept[type];\n      return h(\"input\", {\n        className: \"uppy-Dashboard-input\",\n        hidden: true,\n        \"aria-hidden\": \"true\",\n        tabIndex: -1,\n        type: \"file\",\n        name: `camera-${type}`,\n        onChange: this.onFileInputChange,\n        capture: nativeCameraFacingMode,\n        accept: accept,\n        ref: refCallback\n      });\n    };\n    this.renderMyDeviceAcquirer = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MyDevice\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerFileInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        className: \"uppy-DashboardTab-iconMyDevice\",\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        d: \"M8.45 22.087l-1.305-6.674h17.678l-1.572 6.674H8.45zm4.975-12.412l1.083 1.765a.823.823 0 00.715.386h7.951V13.5H8.587V9.675h4.838zM26.043 13.5h-1.195v-2.598c0-.463-.336-.75-.798-.75h-8.356l-1.082-1.766A.823.823 0 0013.897 8H7.728c-.462 0-.815.256-.815.718V13.5h-.956a.97.97 0 00-.746.37.972.972 0 00-.19.81l1.724 8.565c.095.44.484.755.933.755H24c.44 0 .824-.3.929-.727l2.043-8.568a.972.972 0 00-.176-.825.967.967 0 00-.753-.38z\",\n        fill: \"currentcolor\",\n        \"fill-rule\": \"evenodd\"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('myDevice'))));\n    };\n    this.renderPhotoCamera = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MobilePhotoCamera\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerPhotoCameraInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        d: \"M23.5 9.5c1.417 0 2.5 1.083 2.5 2.5v9.167c0 1.416-1.083 2.5-2.5 2.5h-15c-1.417 0-2.5-1.084-2.5-2.5V12c0-1.417 1.083-2.5 2.5-2.5h2.917l1.416-2.167C13 7.167 13.25 7 13.5 7h5c.25 0 .5.167.667.333L20.583 9.5H23.5zM16 11.417a4.706 4.706 0 00-4.75 4.75 4.704 4.704 0 004.75 4.75 4.703 4.703 0 004.75-4.75c0-2.663-2.09-4.75-4.75-4.75zm0 7.825c-1.744 0-3.076-1.332-3.076-3.074 0-1.745 1.333-3.077 3.076-3.077 1.744 0 3.074 1.333 3.074 3.076s-1.33 3.075-3.074 3.075z\",\n        fill: \"#02B383\",\n        \"fill-rule\": \"nonzero\"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('takePictureBtn'))));\n    };\n    this.renderVideoCamera = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MobileVideoCamera\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerVideoCameraInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        fill: \"#FF675E\",\n        fillRule: \"nonzero\",\n        d: \"m21.254 14.277 2.941-2.588c.797-.313 1.243.818 1.09 1.554-.01 2.094.02 4.189-.017 6.282-.126.915-1.145 1.08-1.58.34l-2.434-2.142c-.192.287-.504 1.305-.738.468-.104-1.293-.028-2.596-.05-3.894.047-.312.381.823.426 1.069.063-.384.206-.744.362-1.09zm-12.939-3.73c3.858.013 7.717-.025 11.574.02.912.129 1.492 1.237 1.351 2.217-.019 2.412.04 4.83-.03 7.239-.17 1.025-1.166 1.59-2.029 1.429-3.705-.012-7.41.025-11.114-.019-.913-.129-1.492-1.237-1.352-2.217.018-2.404-.036-4.813.029-7.214.136-.82.83-1.473 1.571-1.454z \"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('recordVideoBtn'))));\n    };\n    this.renderBrowseButton = (text, onClickFn) => {\n      const numberOfAcquirers = this.props.acquirers.length;\n      return h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-browse\",\n        onClick: onClickFn,\n        \"data-uppy-super-focusable\": numberOfAcquirers === 0\n      }, text);\n    };\n    this.renderDropPasteBrowseTagline = numberOfAcquirers => {\n      const browseFiles = this.renderBrowseButton(this.props.i18n('browseFiles'), this.triggerFileInputClick);\n      const browseFolders = this.renderBrowseButton(this.props.i18n('browseFolders'), this.triggerFolderInputClick);\n\n      // in order to keep the i18n CamelCase and options lower (as are defaults) we will want to transform a lower\n      // to Camel\n      const lowerFMSelectionType = this.props.fileManagerSelectionType;\n      const camelFMSelectionType = lowerFMSelectionType.charAt(0).toUpperCase() + lowerFMSelectionType.slice(1);\n      return h(\"div\", {\n        class: \"uppy-Dashboard-AddFiles-title\"\n      },\n      // eslint-disable-next-line no-nested-ternary\n      this.props.disableLocalFiles ? this.props.i18n('importFiles') : numberOfAcquirers > 0 ? this.props.i18nArray(`dropPasteImport${camelFMSelectionType}`, {\n        browseFiles,\n        browseFolders,\n        browse: browseFiles\n      }) : this.props.i18nArray(`dropPaste${camelFMSelectionType}`, {\n        browseFiles,\n        browseFolders,\n        browse: browseFiles\n      }));\n    };\n    this.renderAcquirer = acquirer => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": acquirer.id\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-cy\": acquirer.id,\n        \"aria-controls\": `uppy-DashboardContent-panel--${acquirer.id}`,\n        \"aria-selected\": this.props.activePickerPanel.id === acquirer.id,\n        \"data-uppy-super-focusable\": true,\n        onClick: () => this.props.showPanel(acquirer.id)\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, acquirer.icon()), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, acquirer.name)));\n    };\n    this.renderAcquirers = acquirers => {\n      // Group last two buttons, so we don\u2019t end up with\n      // just one button on a new line\n      const acquirersWithoutLastTwo = [...acquirers];\n      const lastTwoAcquirers = acquirersWithoutLastTwo.splice(acquirers.length - 2, acquirers.length);\n      return h(Fragment, null, acquirersWithoutLastTwo.map(acquirer => this.renderAcquirer(acquirer)), h(\"span\", {\n        role: \"presentation\",\n        style: {\n          'white-space': 'nowrap'\n        }\n      }, lastTwoAcquirers.map(acquirer => this.renderAcquirer(acquirer))));\n    };\n    this.renderSourcesList = (acquirers, disableLocalFiles) => {\n      const {\n        showNativePhotoCameraButton,\n        showNativeVideoCameraButton\n      } = this.props;\n      let list = [];\n      const myDeviceKey = 'myDevice';\n      if (!disableLocalFiles) list.push({\n        key: myDeviceKey,\n        elements: this.renderMyDeviceAcquirer()\n      });\n      if (showNativePhotoCameraButton) list.push({\n        key: 'nativePhotoCameraButton',\n        elements: this.renderPhotoCamera()\n      });\n      if (showNativeVideoCameraButton) list.push({\n        key: 'nativePhotoCameraButton',\n        elements: this.renderVideoCamera()\n      });\n      list.push(...acquirers.map(acquirer => ({\n        key: acquirer.id,\n        elements: this.renderAcquirer(acquirer)\n      })));\n\n      // doesn't make sense to show only a lonely \"My Device\"\n      const hasOnlyMyDevice = list.length === 1 && list[0].key === myDeviceKey;\n      if (hasOnlyMyDevice) list = [];\n\n      // Group last two buttons, so we don\u2019t end up with\n      // just one button on a new line\n      const listWithoutLastTwo = [...list];\n      const lastTwo = listWithoutLastTwo.splice(list.length - 2, list.length);\n      const renderList = l => l.map(_ref => {\n        let {\n          key,\n          elements\n        } = _ref;\n        return h(Fragment, {\n          key: key\n        }, elements);\n      });\n      return h(Fragment, null, this.renderDropPasteBrowseTagline(list.length), h(\"div\", {\n        className: \"uppy-Dashboard-AddFiles-list\",\n        role: \"tablist\"\n      }, renderList(listWithoutLastTwo), h(\"span\", {\n        role: \"presentation\",\n        style: {\n          'white-space': 'nowrap'\n        }\n      }, renderList(lastTwo))));\n    };\n  }\n  [_Symbol$for]() {\n    // Those are actually used in `renderDropPasteBrowseTagline` method.\n    this.props.i18nArray('dropPasteBoth');\n    this.props.i18nArray('dropPasteFiles');\n    this.props.i18nArray('dropPasteFolders');\n    this.props.i18nArray('dropPasteImportBoth');\n    this.props.i18nArray('dropPasteImportFiles');\n    this.props.i18nArray('dropPasteImportFolders');\n  }\n  renderPoweredByUppy() {\n    const {\n      i18nArray\n    } = this.props;\n    const uppyBranding = h(\"span\", null, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      focusable: \"false\",\n      className: \"uppy-c-icon uppy-Dashboard-poweredByIcon\",\n      width: \"11\",\n      height: \"11\",\n      viewBox: \"0 0 11 11\"\n    }, h(\"path\", {\n      d: \"M7.365 10.5l-.01-4.045h2.612L5.5.806l-4.467 5.65h2.604l.01 4.044h3.718z\",\n      fillRule: \"evenodd\"\n    })), h(\"span\", {\n      className: \"uppy-Dashboard-poweredByUppy\"\n    }, \"Uppy\"));\n    const linkText = i18nArray('poweredBy', {\n      uppy: uppyBranding\n    });\n    return h(\"a\", {\n      tabIndex: \"-1\",\n      href: \"https://uppy.io\",\n      rel: \"noreferrer noopener\",\n      target: \"_blank\",\n      className: \"uppy-Dashboard-poweredBy\"\n    }, linkText);\n  }\n  render() {\n    const {\n      showNativePhotoCameraButton,\n      showNativeVideoCameraButton,\n      nativeCameraFacingMode\n    } = this.props;\n    return h(\"div\", {\n      className: \"uppy-Dashboard-AddFiles\"\n    }, this.renderHiddenInput(false, ref => {\n      this.fileInput = ref;\n    }), this.renderHiddenInput(true, ref => {\n      this.folderInput = ref;\n    }), showNativePhotoCameraButton && this.renderHiddenCameraInput('photo', nativeCameraFacingMode, ref => {\n      this.mobilePhotoFileInput = ref;\n    }), showNativeVideoCameraButton && this.renderHiddenCameraInput('video', nativeCameraFacingMode, ref => {\n      this.mobileVideoFileInput = ref;\n    }), this.renderSourcesList(this.props.acquirers, this.props.disableLocalFiles), h(\"div\", {\n      className: \"uppy-Dashboard-AddFiles-info\"\n    }, this.props.note && h(\"div\", {\n      className: \"uppy-Dashboard-note\"\n    }, this.props.note), this.props.proudlyDisplayPoweredByUppy && this.renderPoweredByUppy(this.props)));\n  }\n}\nexport default AddFiles;", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport AddFiles from \"./AddFiles.js\";\nconst AddFilesPanel = props => {\n  return h(\"div\", {\n    className: classNames('uppy-Dashboard-AddFilesPanel', props.className),\n    \"data-uppy-panelType\": \"AddFiles\",\n    \"aria-hidden\": !props.showAddFilesPanel\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, props.i18n('addingMoreFiles')), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: () => props.toggleAddFilesPanel(false)\n  }, props.i18n('back'))), h(AddFiles, props));\n};\nexport default AddFilesPanel;", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport ignoreEvent from '../utils/ignoreEvent.js';\nfunction PickerPanelContent(_ref) {\n  let {\n    activePickerPanel,\n    className,\n    hideAllPanels,\n    i18n,\n    state,\n    uppy\n  } = _ref;\n  return h(\"div\", {\n    className: classNames('uppy-DashboardContent-panel', className),\n    role: \"tabpanel\",\n    \"data-uppy-panelType\": \"PickerPanel\",\n    id: `uppy-DashboardContent-panel--${activePickerPanel.id}`,\n    onDragOver: ignoreEvent,\n    onDragLeave: ignoreEvent,\n    onDrop: ignoreEvent,\n    onPaste: ignoreEvent\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, i18n('importFrom', {\n    name: activePickerPanel.name\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: hideAllPanels\n  }, i18n('cancel'))), h(\"div\", {\n    className: \"uppy-DashboardContent-panelBody\"\n  }, uppy.getPlugin(activePickerPanel.id).render(state)));\n}\nexport default PickerPanelContent;", "// ignore drop/paste events if they are not in input or textarea \u2014\n// otherwise when Url plugin adds drop/paste listeners to this.el,\n// draging UI elements or pasting anything into any field triggers those events \u2014\n// Url treats them as URLs that need to be imported\n\nfunction ignoreEvent(ev) {\n  const {\n    tagName\n  } = ev.target;\n  if (tagName === 'INPUT' || tagName === 'TEXTAREA') {\n    ev.stopPropagation();\n    return;\n  }\n  ev.preventDefault();\n  ev.stopPropagation();\n}\nexport default ignoreEvent;", "import { h } from 'preact';\nimport classNames from 'classnames';\nfunction EditorPanel(props) {\n  const file = props.files[props.fileCardFor];\n  const handleCancel = () => {\n    props.uppy.emit('file-editor:cancel', file);\n    props.closeFileEditor();\n  };\n  return h(\"div\", {\n    className: classNames('uppy-DashboardContent-panel', props.className),\n    role: \"tabpanel\",\n    \"data-uppy-panelType\": \"FileEditor\",\n    id: \"uppy-DashboardContent-panel--editor\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, props.i18nArray('editing', {\n    file: h(\"span\", {\n      className: \"uppy-DashboardContent-titleFile\"\n    }, file.meta ? file.meta.name : file.name)\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: handleCancel\n  }, props.i18n('cancel')), h(\"button\", {\n    className: \"uppy-DashboardContent-save\",\n    type: \"button\",\n    onClick: props.saveFileEditor\n  }, props.i18n('save'))), h(\"div\", {\n    className: \"uppy-DashboardContent-panelBody\"\n  }, props.editors.map(target => {\n    return props.uppy.getPlugin(target.id).render(props.state);\n  })));\n}\nexport default EditorPanel;", "import { h } from 'preact';\nconst uploadStates = {\n  STATE_ERROR: 'error',\n  STATE_WAITING: 'waiting',\n  STATE_PREPROCESSING: 'preprocessing',\n  STATE_UPLOADING: 'uploading',\n  STATE_POSTPROCESSING: 'postprocessing',\n  STATE_COMPLETE: 'complete',\n  STATE_PAUSED: 'paused'\n};\nfunction getUploadingState(isAllErrored, isAllComplete, isAllPaused, files) {\n  if (files === void 0) {\n    files = {};\n  }\n  if (isAllErrored) {\n    return uploadStates.STATE_ERROR;\n  }\n  if (isAllComplete) {\n    return uploadStates.STATE_COMPLETE;\n  }\n  if (isAllPaused) {\n    return uploadStates.STATE_PAUSED;\n  }\n  let state = uploadStates.STATE_WAITING;\n  const fileIDs = Object.keys(files);\n  for (let i = 0; i < fileIDs.length; i++) {\n    const {\n      progress\n    } = files[fileIDs[i]];\n    // If ANY files are being uploaded right now, show the uploading state.\n    if (progress.uploadStarted && !progress.uploadComplete) {\n      return uploadStates.STATE_UPLOADING;\n    }\n    // If files are being preprocessed AND postprocessed at this time, we show the\n    // preprocess state. If any files are being uploaded we show uploading.\n    if (progress.preprocess && state !== uploadStates.STATE_UPLOADING) {\n      state = uploadStates.STATE_PREPROCESSING;\n    }\n    // If NO files are being preprocessed or uploaded right now, but some files are\n    // being postprocessed, show the postprocess state.\n    if (progress.postprocess && state !== uploadStates.STATE_UPLOADING && state !== uploadStates.STATE_PREPROCESSING) {\n      state = uploadStates.STATE_POSTPROCESSING;\n    }\n  }\n  return state;\n}\nfunction UploadStatus(_ref) {\n  let {\n    files,\n    i18n,\n    isAllComplete,\n    isAllErrored,\n    isAllPaused,\n    inProgressNotPausedFiles,\n    newFiles,\n    processingFiles\n  } = _ref;\n  const uploadingState = getUploadingState(isAllErrored, isAllComplete, isAllPaused, files);\n  switch (uploadingState) {\n    case 'uploading':\n      return i18n('uploadingXFiles', {\n        smart_count: inProgressNotPausedFiles.length\n      });\n    case 'preprocessing':\n    case 'postprocessing':\n      return i18n('processingXFiles', {\n        smart_count: processingFiles.length\n      });\n    case 'paused':\n      return i18n('uploadPaused');\n    case 'waiting':\n      return i18n('xFilesSelected', {\n        smart_count: newFiles.length\n      });\n    case 'complete':\n      return i18n('uploadComplete');\n    case 'error':\n      return i18n('error');\n    default:\n  }\n}\nfunction PanelTopBar(props) {\n  const {\n    i18n,\n    isAllComplete,\n    hideCancelButton,\n    maxNumberOfFiles,\n    toggleAddFilesPanel,\n    uppy\n  } = props;\n  let {\n    allowNewUpload\n  } = props;\n  // TODO maybe this should be done in ../Dashboard.jsx, then just pass that down as `allowNewUpload`\n  if (allowNewUpload && maxNumberOfFiles) {\n    // eslint-disable-next-line react/destructuring-assignment\n    allowNewUpload = props.totalFileCount < props.maxNumberOfFiles;\n  }\n  return h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, !isAllComplete && !hideCancelButton ? h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: () => uppy.cancelAll()\n  }, i18n('cancel')) : h(\"div\", null), h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, h(UploadStatus, props)), allowNewUpload ? h(\"button\", {\n    className: \"uppy-DashboardContent-addMore\",\n    type: \"button\",\n    \"aria-label\": i18n('addMoreFiles'),\n    title: i18n('addMoreFiles'),\n    onClick: () => toggleAddFilesPanel(true)\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"15\",\n    height: \"15\",\n    viewBox: \"0 0 15 15\"\n  }, h(\"path\", {\n    d: \"M8 6.5h6a.5.5 0 0 1 .5.5v.5a.5.5 0 0 1-.5.5H8v6a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V8h-6a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5h6v-6A.5.5 0 0 1 7 0h.5a.5.5 0 0 1 .5.5v6z\"\n  })), h(\"span\", {\n    className: \"uppy-DashboardContent-addMoreCaption\"\n  }, i18n('addMore'))) : h(\"div\", null));\n}\nexport default PanelTopBar;", "import { h } from 'preact';\nimport { useEffect, useState, useCallback } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { nanoid } from 'nanoid/non-secure';\nimport getFileTypeIcon from \"../../utils/getFileTypeIcon.js\";\nimport ignoreEvent from '../../utils/ignoreEvent.js';\nimport FilePreview from \"../FilePreview.js\";\nimport RenderMetaFields from \"./RenderMetaFields.js\";\nexport default function FileCard(props) {\n  var _getMetaFields;\n  const {\n    files,\n    fileCardFor,\n    toggleFileCard,\n    saveFileCard,\n    metaFields,\n    requiredMetaFields,\n    openFileEditor,\n    i18n,\n    i18nArray,\n    className,\n    canEditFile\n  } = props;\n  const getMetaFields = () => {\n    return typeof metaFields === 'function' ? metaFields(files[fileCardFor]) : metaFields;\n  };\n  const file = files[fileCardFor];\n  const computedMetaFields = (_getMetaFields = getMetaFields()) != null ? _getMetaFields : [];\n  const showEditButton = canEditFile(file);\n  const storedMetaData = {};\n  computedMetaFields.forEach(field => {\n    var _file$meta$field$id;\n    storedMetaData[field.id] = (_file$meta$field$id = file.meta[field.id]) != null ? _file$meta$field$id : '';\n  });\n  const [formState, setFormState] = useState(storedMetaData);\n  const handleSave = useCallback(ev => {\n    ev.preventDefault();\n    saveFileCard(formState, fileCardFor);\n  }, [saveFileCard, formState, fileCardFor]);\n  const updateMeta = (newVal, name) => {\n    setFormState({\n      ...formState,\n      [name]: newVal\n    });\n  };\n  const handleCancel = () => {\n    toggleFileCard(false);\n  };\n  const [form] = useState(() => {\n    const formEl = document.createElement('form');\n    formEl.setAttribute('tabindex', '-1');\n    formEl.id = nanoid();\n    return formEl;\n  });\n  useEffect(() => {\n    document.body.appendChild(form);\n    form.addEventListener('submit', handleSave);\n    return () => {\n      form.removeEventListener('submit', handleSave);\n      document.body.removeChild(form);\n    };\n  }, [form, handleSave]);\n  return h(\"div\", {\n    className: classNames('uppy-Dashboard-FileCard', className),\n    \"data-uppy-panelType\": \"FileCard\",\n    onDragOver: ignoreEvent,\n    onDragLeave: ignoreEvent,\n    onDrop: ignoreEvent,\n    onPaste: ignoreEvent\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, i18nArray('editing', {\n    file: h(\"span\", {\n      className: \"uppy-DashboardContent-titleFile\"\n    }, file.meta ? file.meta.name : file.name)\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    form: form.id,\n    title: i18n('finishEditingFile'),\n    onClick: handleCancel\n  }, i18n('cancel'))), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-inner\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-preview\",\n    style: {\n      backgroundColor: getFileTypeIcon(file.type).color\n    }\n  }, h(FilePreview, {\n    file: file\n  }), showEditButton && h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-FileCard-edit\",\n    onClick: event => {\n      // When opening the image editor we want to save any meta fields changes.\n      // Otherwise it's confusing for the user to click save in the editor,\n      // but the changes here are discarded. This bypasses validation,\n      // but we are okay with that.\n      handleSave(event);\n      openFileEditor(file);\n    }\n  }, i18n('editImage'))), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-info\"\n  }, h(RenderMetaFields, {\n    computedMetaFields: computedMetaFields,\n    requiredMetaFields: requiredMetaFields,\n    updateMeta: updateMeta,\n    form: form,\n    formState: formState\n  })), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-actions\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Dashboard-FileCard-actionsBtn\"\n    // If `form` attribute is supported, we want a submit button to trigger the form validation.\n    // Otherwise, fallback to a classic button with a onClick event handler.\n    ,\n    type: \"submit\",\n    form: form.id\n  }, i18n('saveChanges')), h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-link uppy-Dashboard-FileCard-actionsBtn\",\n    type: \"button\",\n    onClick: handleCancel,\n    form: form.id\n  }, i18n('cancel')))));\n}", "import { h } from 'preact';\nexport default function RenderMetaFields(props) {\n  const {\n    computedMetaFields,\n    requiredMetaFields,\n    updateMeta,\n    form,\n    formState\n  } = props;\n  const fieldCSSClasses = {\n    text: 'uppy-u-reset uppy-c-textInput uppy-Dashboard-FileCard-input'\n  };\n  return computedMetaFields.map(field => {\n    const id = `uppy-Dashboard-FileCard-input-${field.id}`;\n    const required = requiredMetaFields.includes(field.id);\n    return h(\"fieldset\", {\n      key: field.id,\n      className: \"uppy-Dashboard-FileCard-fieldset\"\n    }, h(\"label\", {\n      className: \"uppy-Dashboard-FileCard-label\",\n      htmlFor: id\n    }, field.name), field.render !== undefined ? field.render({\n      value: formState[field.id],\n      onChange: newVal => updateMeta(newVal, field.id),\n      fieldCSSClasses,\n      required,\n      form: form.id\n    }, h) : h(\"input\", {\n      className: fieldCSSClasses.text,\n      id: id,\n      form: form.id,\n      type: field.type || 'text',\n      required: required,\n      value: formState[field.id],\n      placeholder: field.placeholder,\n      onInput: ev => updateMeta(ev.target.value, field.id),\n      \"data-uppy-super-focusable\": true\n    }));\n  });\n}", "import { cloneElement, Component, toChildArray } from 'preact';\nimport classNames from 'classnames';\nconst transitionName = 'uppy-transition-slideDownUp';\nconst duration = 250;\n\n/**\n * Vertical slide transition.\n *\n * This can take a _single_ child component, which _must_ accept a `className` prop.\n *\n * Currently this is specific to the `uppy-transition-slideDownUp` transition,\n * but it should be simple to extend this for any type of single-element\n * transition by setting the CSS name and duration as props.\n */\nclass Slide extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      cachedChildren: null,\n      className: ''\n    };\n  }\n\n  // TODO: refactor to stable lifecycle method\n  // eslint-disable-next-line\n  componentWillUpdate(nextProps) {\n    const {\n      cachedChildren\n    } = this.state;\n    const child = toChildArray(nextProps.children)[0];\n    if (cachedChildren === child) return null;\n    const patch = {\n      cachedChildren: child\n    };\n\n    // Enter transition\n    if (child && !cachedChildren) {\n      patch.className = `${transitionName}-enter`;\n      cancelAnimationFrame(this.animationFrame);\n      clearTimeout(this.leaveTimeout);\n      this.leaveTimeout = undefined;\n      this.animationFrame = requestAnimationFrame(() => {\n        // Force it to render before we add the active class\n        // this.base.getBoundingClientRect()\n\n        this.setState({\n          className: `${transitionName}-enter ${transitionName}-enter-active`\n        });\n        this.enterTimeout = setTimeout(() => {\n          this.setState({\n            className: ''\n          });\n        }, duration);\n      });\n    }\n\n    // Leave transition\n    if (cachedChildren && !child && this.leaveTimeout === undefined) {\n      patch.cachedChildren = cachedChildren;\n      patch.className = `${transitionName}-leave`;\n      cancelAnimationFrame(this.animationFrame);\n      clearTimeout(this.enterTimeout);\n      this.enterTimeout = undefined;\n      this.animationFrame = requestAnimationFrame(() => {\n        this.setState({\n          className: `${transitionName}-leave ${transitionName}-leave-active`\n        });\n        this.leaveTimeout = setTimeout(() => {\n          this.setState({\n            cachedChildren: null,\n            className: ''\n          });\n        }, duration);\n      });\n    }\n\n    // eslint-disable-next-line\n    this.setState(patch);\n  }\n  render() {\n    const {\n      cachedChildren,\n      className\n    } = this.state;\n    if (!cachedChildren) {\n      return null;\n    }\n    return cloneElement(cachedChildren, {\n      className: classNames(className, cachedChildren.props.className)\n    });\n  }\n}\nexport default Slide;", "export default {\n  strings: {\n    // When `inline: false`, used as the screen reader label for the button that closes the modal.\n    closeModal: 'Close Modal',\n    // Used as the screen reader label for the plus (+) button that shows the \u201CAdd more files\u201D screen\n    addMoreFiles: 'Add more files',\n    addingMoreFiles: 'Adding more files',\n    // Used as the header for import panels, e.g., \u201CImport from Google Drive\u201D.\n    importFrom: 'Import from %{name}',\n    // When `inline: false`, used as the screen reader label for the dashboard modal.\n    dashboardWindowTitle: 'Uppy Dashboard Window (Press escape to close)',\n    // When `inline: true`, used as the screen reader label for the dashboard area.\n    dashboardTitle: 'Uppy Dashboard',\n    // Shown in the Informer when a link to a file was copied to the clipboard.\n    copyLinkToClipboardSuccess: 'Link copied to clipboard.',\n    // Used when a link cannot be copied automatically \u2014 the user has to select the text from the\n    // input element below this string.\n    copyLinkToClipboardFallback: 'Copy the URL below',\n    // Used as the hover title and screen reader label for buttons that copy a file link.\n    copyLink: 'Copy link',\n    back: 'Back',\n    // Used as the screen reader label for buttons that remove a file.\n    removeFile: 'Remove file',\n    // Used as the screen reader label for buttons that open the metadata editor panel for a file.\n    editFile: 'Edit file',\n    editImage: 'Edit image',\n    // Shown in the panel header for the metadata editor. Rendered as \u201CEditing image.png\u201D.\n    editing: 'Editing %{file}',\n    // Shown on the main upload screen when an upload error occurs\n    error: 'Error',\n    // Used as the screen reader label for the button that saves metadata edits and returns to the\n    // file list view.\n    finishEditingFile: 'Finish editing file',\n    saveChanges: 'Save changes',\n    // Used as the label for the tab button that opens the system file selection dialog.\n    myDevice: 'My Device',\n    dropHint: 'Drop your files here',\n    // Used as the hover text and screen reader label for file progress indicators when\n    // they have been fully uploaded.\n    uploadComplete: 'Upload complete',\n    uploadPaused: 'Upload paused',\n    // Used as the hover text and screen reader label for the buttons to resume paused uploads.\n    resumeUpload: 'Resume upload',\n    // Used as the hover text and screen reader label for the buttons to pause uploads.\n    pauseUpload: 'Pause upload',\n    // Used as the hover text and screen reader label for the buttons to retry failed uploads.\n    retryUpload: 'Retry upload',\n    // Used as the hover text and screen reader label for the buttons to cancel uploads.\n    cancelUpload: 'Cancel upload',\n    // Used in a title, how many files are currently selected\n    xFilesSelected: {\n      0: '%{smart_count} file selected',\n      1: '%{smart_count} files selected'\n    },\n    uploadingXFiles: {\n      0: 'Uploading %{smart_count} file',\n      1: 'Uploading %{smart_count} files'\n    },\n    processingXFiles: {\n      0: 'Processing %{smart_count} file',\n      1: 'Processing %{smart_count} files'\n    },\n    // The \"powered by Uppy\" link at the bottom of the Dashboard.\n    poweredBy: 'Powered by %{uppy}',\n    addMore: 'Add more',\n    editFileWithFilename: 'Edit file %{file}',\n    save: 'Save',\n    cancel: 'Cancel',\n    dropPasteFiles: 'Drop files here or %{browseFiles}',\n    dropPasteFolders: 'Drop files here or %{browseFolders}',\n    dropPasteBoth: 'Drop files here, %{browseFiles} or %{browseFolders}',\n    dropPasteImportFiles: 'Drop files here, %{browseFiles} or import from:',\n    dropPasteImportFolders: 'Drop files here, %{browseFolders} or import from:',\n    dropPasteImportBoth: 'Drop files here, %{browseFiles}, %{browseFolders} or import from:',\n    importFiles: 'Import files from:',\n    browseFiles: 'browse files',\n    browseFolders: 'browse folders',\n    recoveredXFiles: {\n      0: 'We could not fully recover 1 file. Please re-select it and resume the upload.',\n      1: 'We could not fully recover %{smart_count} files. Please re-select them and resume the upload.'\n    },\n    recoveredAllFiles: 'We restored all files. You can now resume the upload.',\n    sessionRestored: 'Session restored',\n    reSelect: 'Re-select',\n    missingRequiredMetaFields: {\n      0: 'Missing required meta field: %{fields}.',\n      1: 'Missing required meta fields: %{fields}.'\n    },\n    // Used for native device camera buttons on mobile\n    takePictureBtn: 'Take Picture',\n    recordVideoBtn: 'Record Video'\n  }\n};", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { UIPlugin } from '@uppy/core';\nimport StatusBar from '@uppy/status-bar';\nimport Informer from '@uppy/informer';\nimport ThumbnailGenerator from '@uppy/thumbnail-generator';\nimport findAllDOMElements from '@uppy/utils/lib/findAllDOMElements';\nimport toArray from '@uppy/utils/lib/toArray';\nimport getDroppedFiles from '@uppy/utils/lib/getDroppedFiles';\nimport { defaultPickerIcon } from '@uppy/provider-views';\nimport { nanoid } from 'nanoid/non-secure';\nimport memoizeOne from 'memoize-one';\nimport * as trapFocus from './utils/trapFocus.js';\nimport createSuperFocus from './utils/createSuperFocus.js';\nimport DashboardUI from \"./components/Dashboard.js\";\nconst packageJson = {\n  \"version\": \"3.7.5\"\n};\nimport locale from './locale.js';\nconst memoize = memoizeOne.default || memoizeOne;\nconst TAB_KEY = 9;\nconst ESC_KEY = 27;\nfunction createPromise() {\n  const o = {};\n  o.promise = new Promise((resolve, reject) => {\n    o.resolve = resolve;\n    o.reject = reject;\n  });\n  return o;\n}\n\n/**\n * Dashboard UI with previews, metadata editing, tabs for various services and more\n */\nvar _disabledNodes = /*#__PURE__*/_classPrivateFieldLooseKey(\"disabledNodes\");\nvar _generateLargeThumbnailIfSingleFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"generateLargeThumbnailIfSingleFile\");\nvar _openFileEditorWhenFilesAdded = /*#__PURE__*/_classPrivateFieldLooseKey(\"openFileEditorWhenFilesAdded\");\nvar _attachRenderFunctionToTarget = /*#__PURE__*/_classPrivateFieldLooseKey(\"attachRenderFunctionToTarget\");\nvar _isTargetSupported = /*#__PURE__*/_classPrivateFieldLooseKey(\"isTargetSupported\");\nvar _getAcquirers = /*#__PURE__*/_classPrivateFieldLooseKey(\"getAcquirers\");\nvar _getProgressIndicators = /*#__PURE__*/_classPrivateFieldLooseKey(\"getProgressIndicators\");\nvar _getEditors = /*#__PURE__*/_classPrivateFieldLooseKey(\"getEditors\");\nvar _addSpecifiedPluginsFromOptions = /*#__PURE__*/_classPrivateFieldLooseKey(\"addSpecifiedPluginsFromOptions\");\nvar _autoDiscoverPlugins = /*#__PURE__*/_classPrivateFieldLooseKey(\"autoDiscoverPlugins\");\nvar _addSupportedPluginIfNoTarget = /*#__PURE__*/_classPrivateFieldLooseKey(\"addSupportedPluginIfNoTarget\");\nexport default class Dashboard extends UIPlugin {\n  constructor(uppy, _opts) {\n    var _this;\n    super(uppy, _opts);\n    _this = this;\n    Object.defineProperty(this, _disabledNodes, {\n      writable: true,\n      value: null\n    });\n    this.removeTarget = plugin => {\n      const pluginState = this.getPluginState();\n      // filter out the one we want to remove\n      const newTargets = pluginState.targets.filter(target => target.id !== plugin.id);\n      this.setPluginState({\n        targets: newTargets\n      });\n    };\n    this.addTarget = plugin => {\n      const callerPluginId = plugin.id || plugin.constructor.name;\n      const callerPluginName = plugin.title || callerPluginId;\n      const callerPluginType = plugin.type;\n      if (callerPluginType !== 'acquirer' && callerPluginType !== 'progressindicator' && callerPluginType !== 'editor') {\n        const msg = 'Dashboard: can only be targeted by plugins of types: acquirer, progressindicator, editor';\n        this.uppy.log(msg, 'error');\n        return undefined;\n      }\n      const target = {\n        id: callerPluginId,\n        name: callerPluginName,\n        type: callerPluginType\n      };\n      const state = this.getPluginState();\n      const newTargets = state.targets.slice();\n      newTargets.push(target);\n      this.setPluginState({\n        targets: newTargets\n      });\n      return this.el;\n    };\n    this.hideAllPanels = () => {\n      const state = this.getPluginState();\n      const update = {\n        activePickerPanel: false,\n        showAddFilesPanel: false,\n        activeOverlayType: null,\n        fileCardFor: null,\n        showFileEditor: false\n      };\n      if (state.activePickerPanel === update.activePickerPanel && state.showAddFilesPanel === update.showAddFilesPanel && state.showFileEditor === update.showFileEditor && state.activeOverlayType === update.activeOverlayType) {\n        // avoid doing a state update if nothing changed\n        return;\n      }\n      this.setPluginState(update);\n      this.uppy.emit('dashboard:close-panel', state.activePickerPanel.id);\n    };\n    this.showPanel = id => {\n      const {\n        targets\n      } = this.getPluginState();\n      const activePickerPanel = targets.filter(target => {\n        return target.type === 'acquirer' && target.id === id;\n      })[0];\n      this.setPluginState({\n        activePickerPanel,\n        activeOverlayType: 'PickerPanel'\n      });\n      this.uppy.emit('dashboard:show-panel', id);\n    };\n    this.canEditFile = file => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      return editors.some(target => this.uppy.getPlugin(target.id).canEditFile(file));\n    };\n    this.openFileEditor = file => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      this.setPluginState({\n        showFileEditor: true,\n        fileCardFor: file.id || null,\n        activeOverlayType: 'FileEditor'\n      });\n      editors.forEach(editor => {\n        this.uppy.getPlugin(editor.id).selectFile(file);\n      });\n    };\n    this.closeFileEditor = () => {\n      const {\n        metaFields\n      } = this.getPluginState();\n      const isMetaEditorEnabled = metaFields && metaFields.length > 0;\n      if (isMetaEditorEnabled) {\n        this.setPluginState({\n          showFileEditor: false,\n          activeOverlayType: 'FileCard'\n        });\n      } else {\n        this.setPluginState({\n          showFileEditor: false,\n          fileCardFor: null,\n          activeOverlayType: 'AddFiles'\n        });\n      }\n    };\n    this.saveFileEditor = () => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      editors.forEach(editor => {\n        this.uppy.getPlugin(editor.id).save();\n      });\n      this.closeFileEditor();\n    };\n    this.openModal = () => {\n      const {\n        promise,\n        resolve\n      } = createPromise();\n      // save scroll position\n      this.savedScrollPosition = window.pageYOffset;\n      // save active element, so we can restore focus when modal is closed\n      this.savedActiveElement = document.activeElement;\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.add('uppy-Dashboard-isFixed');\n      }\n      if (this.opts.animateOpenClose && this.getPluginState().isClosing) {\n        const handler = () => {\n          this.setPluginState({\n            isHidden: false\n          });\n          this.el.removeEventListener('animationend', handler, false);\n          resolve();\n        };\n        this.el.addEventListener('animationend', handler, false);\n      } else {\n        this.setPluginState({\n          isHidden: false\n        });\n        resolve();\n      }\n      if (this.opts.browserBackButtonClose) {\n        this.updateBrowserHistory();\n      }\n\n      // handle ESC and TAB keys in modal dialog\n      document.addEventListener('keydown', this.handleKeyDownInModal);\n      this.uppy.emit('dashboard:modal-open');\n      return promise;\n    };\n    this.closeModal = function (opts) {\n      if (opts === void 0) {\n        opts = {};\n      }\n      const {\n        // Whether the modal is being closed by the user (`true`) or by other means (e.g. browser back button)\n        manualClose = true\n      } = opts;\n      const {\n        isHidden,\n        isClosing\n      } = _this.getPluginState();\n      if (isHidden || isClosing) {\n        // short-circuit if animation is ongoing\n        return undefined;\n      }\n      const {\n        promise,\n        resolve\n      } = createPromise();\n      if (_this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.remove('uppy-Dashboard-isFixed');\n      }\n      if (_this.opts.animateOpenClose) {\n        _this.setPluginState({\n          isClosing: true\n        });\n        const handler = () => {\n          _this.setPluginState({\n            isHidden: true,\n            isClosing: false\n          });\n          _this.superFocus.cancel();\n          _this.savedActiveElement.focus();\n          _this.el.removeEventListener('animationend', handler, false);\n          resolve();\n        };\n        _this.el.addEventListener('animationend', handler, false);\n      } else {\n        _this.setPluginState({\n          isHidden: true\n        });\n        _this.superFocus.cancel();\n        _this.savedActiveElement.focus();\n        resolve();\n      }\n\n      // handle ESC and TAB keys in modal dialog\n      document.removeEventListener('keydown', _this.handleKeyDownInModal);\n      if (manualClose) {\n        if (_this.opts.browserBackButtonClose) {\n          var _history$state;\n          // Make sure that the latest entry in the history state is our modal name\n          // eslint-disable-next-line no-restricted-globals\n          if ((_history$state = history.state) != null && _history$state[_this.modalName]) {\n            // Go back in history to clear out the entry we created (ultimately closing the modal)\n            // eslint-disable-next-line no-restricted-globals\n            history.back();\n          }\n        }\n      }\n      _this.uppy.emit('dashboard:modal-closed');\n      return promise;\n    };\n    this.isModalOpen = () => {\n      return !this.getPluginState().isHidden || false;\n    };\n    this.requestCloseModal = () => {\n      if (this.opts.onRequestCloseModal) {\n        return this.opts.onRequestCloseModal();\n      }\n      return this.closeModal();\n    };\n    this.setDarkModeCapability = isDarkModeOn => {\n      const {\n        capabilities\n      } = this.uppy.getState();\n      this.uppy.setState({\n        capabilities: {\n          ...capabilities,\n          darkMode: isDarkModeOn\n        }\n      });\n    };\n    this.handleSystemDarkModeChange = event => {\n      const isDarkModeOnNow = event.matches;\n      this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnNow ? 'on' : 'off'}`);\n      this.setDarkModeCapability(isDarkModeOnNow);\n    };\n    this.toggleFileCard = (show, fileID) => {\n      const file = this.uppy.getFile(fileID);\n      if (show) {\n        this.uppy.emit('dashboard:file-edit-start', file);\n      } else {\n        this.uppy.emit('dashboard:file-edit-complete', file);\n      }\n      this.setPluginState({\n        fileCardFor: show ? fileID : null,\n        activeOverlayType: show ? 'FileCard' : null\n      });\n    };\n    this.toggleAddFilesPanel = show => {\n      this.setPluginState({\n        showAddFilesPanel: show,\n        activeOverlayType: show ? 'AddFiles' : null\n      });\n    };\n    this.addFiles = files => {\n      const descriptors = files.map(file => ({\n        source: this.id,\n        name: file.name,\n        type: file.type,\n        data: file,\n        meta: {\n          // path of the file relative to the ancestor directory the user selected.\n          // e.g. 'docs/Old Prague/airbnb.pdf'\n          relativePath: file.relativePath || file.webkitRelativePath || null\n        }\n      }));\n      try {\n        this.uppy.addFiles(descriptors);\n      } catch (err) {\n        this.uppy.log(err);\n      }\n    };\n    // ___Why make insides of Dashboard invisible until first ResizeObserver event is emitted?\n    //    ResizeOberserver doesn't emit the first resize event fast enough, users can see the jump from one .uppy-size-- to\n    //    another (e.g. in Safari)\n    // ___Why not apply visibility property to .uppy-Dashboard-inner?\n    //    Because ideally, acc to specs, ResizeObserver should see invisible elements as of width 0. So even though applying\n    //    invisibility to .uppy-Dashboard-inner works now, it may not work in the future.\n    this.startListeningToResize = () => {\n      // Watch for Dashboard container (`.uppy-Dashboard-inner`) resize\n      // and update containerWidth/containerHeight in plugin state accordingly.\n      // Emits first event on initialization.\n      this.resizeObserver = new ResizeObserver(entries => {\n        const uppyDashboardInnerEl = entries[0];\n        const {\n          width,\n          height\n        } = uppyDashboardInnerEl.contentRect;\n        this.setPluginState({\n          containerWidth: width,\n          containerHeight: height,\n          areInsidesReadyToBeVisible: true\n        });\n      });\n      this.resizeObserver.observe(this.el.querySelector('.uppy-Dashboard-inner'));\n\n      // If ResizeObserver fails to emit an event telling us what size to use - default to the mobile view\n      this.makeDashboardInsidesVisibleAnywayTimeout = setTimeout(() => {\n        const pluginState = this.getPluginState();\n        const isModalAndClosed = !this.opts.inline && pluginState.isHidden;\n        if (\n        // We might want to enable this in the future\n\n        // if ResizeObserver hasn't yet fired,\n        !pluginState.areInsidesReadyToBeVisible\n        // and it's not due to the modal being closed\n        && !isModalAndClosed) {\n          this.uppy.log('[Dashboard] resize event didn\u2019t fire on time: defaulted to mobile layout', 'warning');\n          this.setPluginState({\n            areInsidesReadyToBeVisible: true\n          });\n        }\n      }, 1000);\n    };\n    this.stopListeningToResize = () => {\n      this.resizeObserver.disconnect();\n      clearTimeout(this.makeDashboardInsidesVisibleAnywayTimeout);\n    };\n    // Records whether we have been interacting with uppy right now,\n    // which is then used to determine whether state updates should trigger a refocusing.\n    this.recordIfFocusedOnUppyRecently = event => {\n      if (this.el.contains(event.target)) {\n        this.ifFocusedOnUppyRecently = true;\n      } else {\n        this.ifFocusedOnUppyRecently = false;\n        // ___Why run this.superFocus.cancel here when it already runs in superFocusOnEachUpdate?\n        //    Because superFocus is debounced, when we move from Uppy to some other element on the page,\n        //    previously run superFocus sometimes hits and moves focus back to Uppy.\n        this.superFocus.cancel();\n      }\n    };\n    this.disableInteractiveElements = disable => {\n      var _classPrivateFieldLoo;\n      const NODES_TO_DISABLE = ['a[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', '[role=\"button\"]:not([disabled])'];\n      const nodesToDisable = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes]) != null ? _classPrivateFieldLoo : toArray(this.el.querySelectorAll(NODES_TO_DISABLE)).filter(node => !node.classList.contains('uppy-Dashboard-close'));\n      for (const node of nodesToDisable) {\n        // Links can\u2019t have `disabled` attr, so we use `aria-disabled` for a11y\n        if (node.tagName === 'A') {\n          node.setAttribute('aria-disabled', disable);\n        } else {\n          node.disabled = disable;\n        }\n      }\n      if (disable) {\n        _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes] = nodesToDisable;\n      } else {\n        _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes] = null;\n      }\n      this.dashboardIsDisabled = disable;\n    };\n    this.updateBrowserHistory = () => {\n      var _history$state2;\n      // Ensure history state does not already contain our modal name to avoid double-pushing\n      // eslint-disable-next-line no-restricted-globals\n      if (!((_history$state2 = history.state) != null && _history$state2[this.modalName])) {\n        // Push to history so that the page is not lost on browser back button press\n        // eslint-disable-next-line no-restricted-globals\n        history.pushState({\n          // eslint-disable-next-line no-restricted-globals\n          ...history.state,\n          [this.modalName]: true\n        }, '');\n      }\n\n      // Listen for back button presses\n      window.addEventListener('popstate', this.handlePopState, false);\n    };\n    this.handlePopState = event => {\n      var _event$state;\n      // Close the modal if the history state no longer contains our modal name\n      if (this.isModalOpen() && (!event.state || !event.state[this.modalName])) {\n        this.closeModal({\n          manualClose: false\n        });\n      }\n\n      // When the browser back button is pressed and uppy is now the latest entry\n      // in the history but the modal is closed, fix the history by removing the\n      // uppy history entry.\n      // This occurs when another entry is added into the history state while the\n      // modal is open, and then the modal gets manually closed.\n      // Solves PR #575 (https://github.com/transloadit/uppy/pull/575)\n      if (!this.isModalOpen() && (_event$state = event.state) != null && _event$state[this.modalName]) {\n        // eslint-disable-next-line no-restricted-globals\n        history.back();\n      }\n    };\n    this.handleKeyDownInModal = event => {\n      // close modal on esc key press\n      if (event.keyCode === ESC_KEY) this.requestCloseModal(event);\n      // trap focus on tab key press\n      if (event.keyCode === TAB_KEY) trapFocus.forModal(event, this.getPluginState().activeOverlayType, this.el);\n    };\n    this.handleClickOutside = () => {\n      if (this.opts.closeModalOnClickOutside) this.requestCloseModal();\n    };\n    this.handlePaste = event => {\n      // Let any acquirer plugin (Url/Webcam/etc.) handle pastes to the root\n      this.uppy.iteratePlugins(plugin => {\n        if (plugin.type === 'acquirer') {\n          // Every Plugin with .type acquirer can define handleRootPaste(event)\n          plugin.handleRootPaste == null || plugin.handleRootPaste(event);\n        }\n      });\n\n      // Add all dropped files\n      const files = toArray(event.clipboardData.files);\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files pasted');\n        this.addFiles(files);\n      }\n    };\n    this.handleInputChange = event => {\n      event.preventDefault();\n      const files = toArray(event.target.files);\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files selected through input');\n        this.addFiles(files);\n      }\n    };\n    this.handleDragOver = event => {\n      var _this$opts$onDragOver, _this$opts;\n      event.preventDefault();\n      event.stopPropagation();\n\n      // Check if some plugin can handle the datatransfer without files \u2014\n      // for instance, the Url plugin can import a url\n      const canSomePluginHandleRootDrop = () => {\n        let somePluginCanHandleRootDrop = true;\n        this.uppy.iteratePlugins(plugin => {\n          if (plugin.canHandleRootDrop != null && plugin.canHandleRootDrop(event)) {\n            somePluginCanHandleRootDrop = true;\n          }\n        });\n        return somePluginCanHandleRootDrop;\n      };\n\n      // Check if the \"type\" of the datatransfer object includes files\n      const doesEventHaveFiles = () => {\n        const {\n          types\n        } = event.dataTransfer;\n        return types.some(type => type === 'Files');\n      };\n\n      // Deny drop, if no plugins can handle datatransfer, there are no files,\n      // or when opts.disabled is set, or new uploads are not allowed\n      const somePluginCanHandleRootDrop = canSomePluginHandleRootDrop(event);\n      const hasFiles = doesEventHaveFiles(event);\n      if (!somePluginCanHandleRootDrop && !hasFiles || this.opts.disabled\n      // opts.disableLocalFiles should only be taken into account if no plugins\n      // can handle the datatransfer\n      || this.opts.disableLocalFiles && (hasFiles || !somePluginCanHandleRootDrop) || !this.uppy.getState().allowNewUpload) {\n        event.dataTransfer.dropEffect = 'none'; // eslint-disable-line no-param-reassign\n        clearTimeout(this.removeDragOverClassTimeout);\n        return;\n      }\n\n      // Add a small (+) icon on drop\n      // (and prevent browsers from interpreting this as files being _moved_ into the\n      // browser, https://github.com/transloadit/uppy/issues/1978).\n      event.dataTransfer.dropEffect = 'copy'; // eslint-disable-line no-param-reassign\n\n      clearTimeout(this.removeDragOverClassTimeout);\n      this.setPluginState({\n        isDraggingOver: true\n      });\n      (_this$opts$onDragOver = (_this$opts = this.opts).onDragOver) == null || _this$opts$onDragOver.call(_this$opts, event);\n    };\n    this.handleDragLeave = event => {\n      var _this$opts$onDragLeav, _this$opts2;\n      event.preventDefault();\n      event.stopPropagation();\n      clearTimeout(this.removeDragOverClassTimeout);\n      // Timeout against flickering, this solution is taken from drag-drop library.\n      // Solution with 'pointer-events: none' didn't work across browsers.\n      this.removeDragOverClassTimeout = setTimeout(() => {\n        this.setPluginState({\n          isDraggingOver: false\n        });\n      }, 50);\n      (_this$opts$onDragLeav = (_this$opts2 = this.opts).onDragLeave) == null || _this$opts$onDragLeav.call(_this$opts2, event);\n    };\n    this.handleDrop = async event => {\n      var _this$opts$onDrop, _this$opts3;\n      event.preventDefault();\n      event.stopPropagation();\n      clearTimeout(this.removeDragOverClassTimeout);\n      this.setPluginState({\n        isDraggingOver: false\n      });\n\n      // Let any acquirer plugin (Url/Webcam/etc.) handle drops to the root\n      this.uppy.iteratePlugins(plugin => {\n        if (plugin.type === 'acquirer') {\n          // Every Plugin with .type acquirer can define handleRootDrop(event)\n          plugin.handleRootDrop == null || plugin.handleRootDrop(event);\n        }\n      });\n\n      // Add all dropped files\n      let executedDropErrorOnce = false;\n      const logDropError = error => {\n        this.uppy.log(error, 'error');\n\n        // In practice all drop errors are most likely the same,\n        // so let's just show one to avoid overwhelming the user\n        if (!executedDropErrorOnce) {\n          this.uppy.info(error.message, 'error');\n          executedDropErrorOnce = true;\n        }\n      };\n      this.uppy.log('[Dashboard] Processing dropped files');\n\n      // Add all dropped files\n      const files = await getDroppedFiles(event.dataTransfer, {\n        logDropError\n      });\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files dropped');\n        this.addFiles(files);\n      }\n      (_this$opts$onDrop = (_this$opts3 = this.opts).onDrop) == null || _this$opts$onDrop.call(_this$opts3, event);\n    };\n    this.handleRequestThumbnail = file => {\n      if (!this.opts.waitForThumbnailsBeforeUpload) {\n        this.uppy.emit('thumbnail:request', file);\n      }\n    };\n    /**\n     * We cancel thumbnail requests when a file item component unmounts to avoid\n     * clogging up the queue when the user scrolls past many elements.\n     */\n    this.handleCancelThumbnail = file => {\n      if (!this.opts.waitForThumbnailsBeforeUpload) {\n        this.uppy.emit('thumbnail:cancel', file);\n      }\n    };\n    this.handleKeyDownInInline = event => {\n      // Trap focus on tab key press.\n      if (event.keyCode === TAB_KEY) trapFocus.forInline(event, this.getPluginState().activeOverlayType, this.el);\n    };\n    // ___Why do we listen to the 'paste' event on a document instead of onPaste={props.handlePaste} prop,\n    //    or this.el.addEventListener('paste')?\n    //    Because (at least) Chrome doesn't handle paste if focus is on some button, e.g. 'My Device'.\n    //    => Therefore, the best option is to listen to all 'paste' events, and only react to them when we are focused on our\n    //       particular Uppy instance.\n    // ___Why do we still need onPaste={props.handlePaste} for the DashboardUi?\n    //    Because if we click on the 'Drop files here' caption e.g., `document.activeElement` will be 'body'. Which means our\n    //    standard determination of whether we're pasting into our Uppy instance won't work.\n    //    => Therefore, we need a traditional onPaste={props.handlePaste} handler too.\n    this.handlePasteOnBody = event => {\n      const isFocusInOverlay = this.el.contains(document.activeElement);\n      if (isFocusInOverlay) {\n        this.handlePaste(event);\n      }\n    };\n    this.handleComplete = _ref => {\n      let {\n        failed\n      } = _ref;\n      if (this.opts.closeAfterFinish && failed.length === 0) {\n        // All uploads are done\n        this.requestCloseModal();\n      }\n    };\n    this.handleCancelRestore = () => {\n      this.uppy.emit('restore-canceled');\n    };\n    Object.defineProperty(this, _generateLargeThumbnailIfSingleFile, {\n      writable: true,\n      value: () => {\n        if (this.opts.disableThumbnailGenerator) {\n          return;\n        }\n        const LARGE_THUMBNAIL = 600;\n        const files = this.uppy.getFiles();\n        if (files.length === 1) {\n          const thumbnailGenerator = this.uppy.getPlugin(`${this.id}:ThumbnailGenerator`);\n          thumbnailGenerator == null || thumbnailGenerator.setOptions({\n            thumbnailWidth: LARGE_THUMBNAIL\n          });\n          const fileForThumbnail = {\n            ...files[0],\n            preview: undefined\n          };\n          thumbnailGenerator.requestThumbnail(fileForThumbnail).then(() => {\n            thumbnailGenerator == null || thumbnailGenerator.setOptions({\n              thumbnailWidth: this.opts.thumbnailWidth\n            });\n          });\n        }\n      }\n    });\n    Object.defineProperty(this, _openFileEditorWhenFilesAdded, {\n      writable: true,\n      value: files => {\n        const firstFile = files[0];\n        const {\n          metaFields\n        } = this.getPluginState();\n        const isMetaEditorEnabled = metaFields && metaFields.length > 0;\n        const isFileEditorEnabled = this.canEditFile(firstFile);\n        if (isMetaEditorEnabled) {\n          this.toggleFileCard(true, firstFile.id);\n        } else if (isFileEditorEnabled) {\n          this.openFileEditor(firstFile);\n        }\n      }\n    });\n    this.initEvents = () => {\n      // Modal open button\n      if (this.opts.trigger && !this.opts.inline) {\n        const showModalTrigger = findAllDOMElements(this.opts.trigger);\n        if (showModalTrigger) {\n          showModalTrigger.forEach(trigger => trigger.addEventListener('click', this.openModal));\n        } else {\n          this.uppy.log('Dashboard modal trigger not found. Make sure `trigger` is set in Dashboard options, unless you are planning to call `dashboard.openModal()` method yourself', 'warning');\n        }\n      }\n      this.startListeningToResize();\n      document.addEventListener('paste', this.handlePasteOnBody);\n      this.uppy.on('plugin-added', _classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      this.uppy.on('plugin-remove', this.removeTarget);\n      this.uppy.on('file-added', this.hideAllPanels);\n      this.uppy.on('dashboard:modal-closed', this.hideAllPanels);\n      this.uppy.on('complete', this.handleComplete);\n      this.uppy.on('files-added', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      this.uppy.on('file-removed', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n\n      // ___Why fire on capture?\n      //    Because this.ifFocusedOnUppyRecently needs to change before onUpdate() fires.\n      document.addEventListener('focus', this.recordIfFocusedOnUppyRecently, true);\n      document.addEventListener('click', this.recordIfFocusedOnUppyRecently, true);\n      if (this.opts.inline) {\n        this.el.addEventListener('keydown', this.handleKeyDownInInline);\n      }\n      if (this.opts.autoOpenFileEditor) {\n        this.uppy.on('files-added', _classPrivateFieldLooseBase(this, _openFileEditorWhenFilesAdded)[_openFileEditorWhenFilesAdded]);\n      }\n    };\n    this.removeEvents = () => {\n      const showModalTrigger = findAllDOMElements(this.opts.trigger);\n      if (!this.opts.inline && showModalTrigger) {\n        showModalTrigger.forEach(trigger => trigger.removeEventListener('click', this.openModal));\n      }\n      this.stopListeningToResize();\n      document.removeEventListener('paste', this.handlePasteOnBody);\n      window.removeEventListener('popstate', this.handlePopState, false);\n      this.uppy.off('plugin-added', _classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      this.uppy.off('plugin-remove', this.removeTarget);\n      this.uppy.off('file-added', this.hideAllPanels);\n      this.uppy.off('dashboard:modal-closed', this.hideAllPanels);\n      this.uppy.off('complete', this.handleComplete);\n      this.uppy.off('files-added', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      this.uppy.off('file-removed', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      document.removeEventListener('focus', this.recordIfFocusedOnUppyRecently);\n      document.removeEventListener('click', this.recordIfFocusedOnUppyRecently);\n      if (this.opts.inline) {\n        this.el.removeEventListener('keydown', this.handleKeyDownInInline);\n      }\n      if (this.opts.autoOpenFileEditor) {\n        this.uppy.off('files-added', _classPrivateFieldLooseBase(this, _openFileEditorWhenFilesAdded)[_openFileEditorWhenFilesAdded]);\n      }\n    };\n    this.superFocusOnEachUpdate = () => {\n      const isFocusInUppy = this.el.contains(document.activeElement);\n      // When focus is lost on the page (== focus is on body for most browsers, or focus is null for IE11)\n      const isFocusNowhere = document.activeElement === document.body || document.activeElement === null;\n      const isInformerHidden = this.uppy.getState().info.length === 0;\n      const isModal = !this.opts.inline;\n      if (\n      // If update is connected to showing the Informer - let the screen reader calmly read it.\n      isInformerHidden && (\n      // If we are in a modal - always superfocus without concern for other elements\n      // on the page (user is unlikely to want to interact with the rest of the page)\n      isModal\n      // If we are already inside of Uppy, or\n      || isFocusInUppy\n      // If we are not focused on anything BUT we have already, at least once, focused on uppy\n      //   1. We focus when isFocusNowhere, because when the element we were focused\n      //      on disappears (e.g. an overlay), - focus gets lost. If user is typing\n      //      something somewhere else on the page, - focus won't be 'nowhere'.\n      //   2. We only focus when focus is nowhere AND this.ifFocusedOnUppyRecently,\n      //      to avoid focus jumps if we do something else on the page.\n      //   [Practical check] Without '&& this.ifFocusedOnUppyRecently', in Safari, in inline mode,\n      //                     when file is uploading, - navigate via tab to the checkbox,\n      //                     try to press space multiple times. Focus will jump to Uppy.\n      || isFocusNowhere && this.ifFocusedOnUppyRecently)) {\n        this.superFocus(this.el, this.getPluginState().activeOverlayType);\n      } else {\n        this.superFocus.cancel();\n      }\n    };\n    this.afterUpdate = () => {\n      if (this.opts.disabled && !this.dashboardIsDisabled) {\n        this.disableInteractiveElements(true);\n        return;\n      }\n      if (!this.opts.disabled && this.dashboardIsDisabled) {\n        this.disableInteractiveElements(false);\n      }\n      this.superFocusOnEachUpdate();\n    };\n    this.saveFileCard = (meta, fileID) => {\n      this.uppy.setFileMeta(fileID, meta);\n      this.toggleFileCard(false, fileID);\n    };\n    Object.defineProperty(this, _attachRenderFunctionToTarget, {\n      writable: true,\n      value: target => {\n        const plugin = this.uppy.getPlugin(target.id);\n        return {\n          ...target,\n          icon: plugin.icon || this.opts.defaultPickerIcon,\n          render: plugin.render\n        };\n      }\n    });\n    Object.defineProperty(this, _isTargetSupported, {\n      writable: true,\n      value: target => {\n        const plugin = this.uppy.getPlugin(target.id);\n        // If the plugin does not provide a `supported` check, assume the plugin works everywhere.\n        if (typeof plugin.isSupported !== 'function') {\n          return true;\n        }\n        return plugin.isSupported();\n      }\n    });\n    Object.defineProperty(this, _getAcquirers, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'acquirer' && _classPrivateFieldLooseBase(this, _isTargetSupported)[_isTargetSupported](target)).map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    Object.defineProperty(this, _getProgressIndicators, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'progressindicator').map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    Object.defineProperty(this, _getEditors, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'editor').map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    this.render = state => {\n      const pluginState = this.getPluginState();\n      const {\n        files,\n        capabilities,\n        allowNewUpload\n      } = state;\n      const {\n        newFiles,\n        uploadStartedFiles,\n        completeFiles,\n        erroredFiles,\n        inProgressFiles,\n        inProgressNotPausedFiles,\n        processingFiles,\n        isUploadStarted,\n        isAllComplete,\n        isAllErrored,\n        isAllPaused\n      } = this.uppy.getObjectOfFilesPerState();\n      const acquirers = _classPrivateFieldLooseBase(this, _getAcquirers)[_getAcquirers](pluginState.targets);\n      const progressindicators = _classPrivateFieldLooseBase(this, _getProgressIndicators)[_getProgressIndicators](pluginState.targets);\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](pluginState.targets);\n      let theme;\n      if (this.opts.theme === 'auto') {\n        theme = capabilities.darkMode ? 'dark' : 'light';\n      } else {\n        theme = this.opts.theme;\n      }\n      if (['files', 'folders', 'both'].indexOf(this.opts.fileManagerSelectionType) < 0) {\n        this.opts.fileManagerSelectionType = 'files';\n        // eslint-disable-next-line no-console\n        console.warn(`Unsupported option for \"fileManagerSelectionType\". Using default of \"${this.opts.fileManagerSelectionType}\".`);\n      }\n      return DashboardUI({\n        state,\n        isHidden: pluginState.isHidden,\n        files,\n        newFiles,\n        uploadStartedFiles,\n        completeFiles,\n        erroredFiles,\n        inProgressFiles,\n        inProgressNotPausedFiles,\n        processingFiles,\n        isUploadStarted,\n        isAllComplete,\n        isAllErrored,\n        isAllPaused,\n        totalFileCount: Object.keys(files).length,\n        totalProgress: state.totalProgress,\n        allowNewUpload,\n        acquirers,\n        theme,\n        disabled: this.opts.disabled,\n        disableLocalFiles: this.opts.disableLocalFiles,\n        direction: this.opts.direction,\n        activePickerPanel: pluginState.activePickerPanel,\n        showFileEditor: pluginState.showFileEditor,\n        saveFileEditor: this.saveFileEditor,\n        closeFileEditor: this.closeFileEditor,\n        disableInteractiveElements: this.disableInteractiveElements,\n        animateOpenClose: this.opts.animateOpenClose,\n        isClosing: pluginState.isClosing,\n        progressindicators,\n        editors,\n        autoProceed: this.uppy.opts.autoProceed,\n        id: this.id,\n        closeModal: this.requestCloseModal,\n        handleClickOutside: this.handleClickOutside,\n        handleInputChange: this.handleInputChange,\n        handlePaste: this.handlePaste,\n        inline: this.opts.inline,\n        showPanel: this.showPanel,\n        hideAllPanels: this.hideAllPanels,\n        i18n: this.i18n,\n        i18nArray: this.i18nArray,\n        uppy: this.uppy,\n        note: this.opts.note,\n        recoveredState: state.recoveredState,\n        metaFields: pluginState.metaFields,\n        resumableUploads: capabilities.resumableUploads || false,\n        individualCancellation: capabilities.individualCancellation,\n        isMobileDevice: capabilities.isMobileDevice,\n        fileCardFor: pluginState.fileCardFor,\n        toggleFileCard: this.toggleFileCard,\n        toggleAddFilesPanel: this.toggleAddFilesPanel,\n        showAddFilesPanel: pluginState.showAddFilesPanel,\n        saveFileCard: this.saveFileCard,\n        openFileEditor: this.openFileEditor,\n        canEditFile: this.canEditFile,\n        width: this.opts.width,\n        height: this.opts.height,\n        showLinkToFileUploadResult: this.opts.showLinkToFileUploadResult,\n        fileManagerSelectionType: this.opts.fileManagerSelectionType,\n        proudlyDisplayPoweredByUppy: this.opts.proudlyDisplayPoweredByUppy,\n        hideCancelButton: this.opts.hideCancelButton,\n        hideRetryButton: this.opts.hideRetryButton,\n        hidePauseResumeButton: this.opts.hidePauseResumeButton,\n        showRemoveButtonAfterComplete: this.opts.showRemoveButtonAfterComplete,\n        containerWidth: pluginState.containerWidth,\n        containerHeight: pluginState.containerHeight,\n        areInsidesReadyToBeVisible: pluginState.areInsidesReadyToBeVisible,\n        isTargetDOMEl: this.isTargetDOMEl,\n        parentElement: this.el,\n        allowedFileTypes: this.uppy.opts.restrictions.allowedFileTypes,\n        maxNumberOfFiles: this.uppy.opts.restrictions.maxNumberOfFiles,\n        requiredMetaFields: this.uppy.opts.restrictions.requiredMetaFields,\n        showSelectedFiles: this.opts.showSelectedFiles,\n        showNativePhotoCameraButton: this.opts.showNativePhotoCameraButton,\n        showNativeVideoCameraButton: this.opts.showNativeVideoCameraButton,\n        nativeCameraFacingMode: this.opts.nativeCameraFacingMode,\n        singleFileFullScreen: this.opts.singleFileFullScreen,\n        handleCancelRestore: this.handleCancelRestore,\n        handleRequestThumbnail: this.handleRequestThumbnail,\n        handleCancelThumbnail: this.handleCancelThumbnail,\n        // drag props\n        isDraggingOver: pluginState.isDraggingOver,\n        handleDragOver: this.handleDragOver,\n        handleDragLeave: this.handleDragLeave,\n        handleDrop: this.handleDrop\n      });\n    };\n    Object.defineProperty(this, _addSpecifiedPluginsFromOptions, {\n      writable: true,\n      value: () => {\n        const plugins = this.opts.plugins || [];\n        plugins.forEach(pluginID => {\n          const plugin = this.uppy.getPlugin(pluginID);\n          if (plugin) {\n            plugin.mount(this, plugin);\n          } else {\n            this.uppy.log(`[Uppy] Dashboard could not find plugin '${pluginID}', make sure to uppy.use() the plugins you are specifying`, 'warning');\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _autoDiscoverPlugins, {\n      writable: true,\n      value: () => {\n        this.uppy.iteratePlugins(_classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      }\n    });\n    Object.defineProperty(this, _addSupportedPluginIfNoTarget, {\n      writable: true,\n      value: plugin => {\n        var _plugin$opts;\n        // Only these types belong on the Dashboard,\n        // we wouldn\u2019t want to try and mount Compressor or Tus, for example.\n        const typesAllowed = ['acquirer', 'editor'];\n        if (plugin && !((_plugin$opts = plugin.opts) != null && _plugin$opts.target) && typesAllowed.includes(plugin.type)) {\n          const pluginAlreadyAdded = this.getPluginState().targets.some(installedPlugin => plugin.id === installedPlugin.id);\n          if (!pluginAlreadyAdded) {\n            plugin.mount(this, plugin);\n          }\n        }\n      }\n    });\n    this.install = () => {\n      // Set default state for Dashboard\n      this.setPluginState({\n        isHidden: true,\n        fileCardFor: null,\n        activeOverlayType: null,\n        showAddFilesPanel: false,\n        activePickerPanel: false,\n        showFileEditor: false,\n        metaFields: this.opts.metaFields,\n        targets: [],\n        // We'll make them visible once .containerWidth is determined\n        areInsidesReadyToBeVisible: false,\n        isDraggingOver: false\n      });\n      const {\n        inline,\n        closeAfterFinish\n      } = this.opts;\n      if (inline && closeAfterFinish) {\n        throw new Error('[Dashboard] `closeAfterFinish: true` cannot be used on an inline Dashboard, because an inline Dashboard cannot be closed at all. Either set `inline: false`, or disable the `closeAfterFinish` option.');\n      }\n      const {\n        allowMultipleUploads,\n        allowMultipleUploadBatches\n      } = this.uppy.opts;\n      if ((allowMultipleUploads || allowMultipleUploadBatches) && closeAfterFinish) {\n        this.uppy.log('[Dashboard] When using `closeAfterFinish`, we recommended setting the `allowMultipleUploadBatches` option to `false` in the Uppy constructor. See https://uppy.io/docs/uppy/#allowMultipleUploads-true', 'warning');\n      }\n      const {\n        target\n      } = this.opts;\n      if (target) {\n        this.mount(target, this);\n      }\n      if (!this.opts.disableStatusBar) {\n        this.uppy.use(StatusBar, {\n          id: `${this.id}:StatusBar`,\n          target: this,\n          hideUploadButton: this.opts.hideUploadButton,\n          hideRetryButton: this.opts.hideRetryButton,\n          hidePauseResumeButton: this.opts.hidePauseResumeButton,\n          hideCancelButton: this.opts.hideCancelButton,\n          showProgressDetails: this.opts.showProgressDetails,\n          hideAfterFinish: this.opts.hideProgressAfterFinish,\n          locale: this.opts.locale,\n          doneButtonHandler: this.opts.doneButtonHandler\n        });\n      }\n      if (!this.opts.disableInformer) {\n        this.uppy.use(Informer, {\n          id: `${this.id}:Informer`,\n          target: this\n        });\n      }\n      if (!this.opts.disableThumbnailGenerator) {\n        this.uppy.use(ThumbnailGenerator, {\n          id: `${this.id}:ThumbnailGenerator`,\n          thumbnailWidth: this.opts.thumbnailWidth,\n          thumbnailHeight: this.opts.thumbnailHeight,\n          thumbnailType: this.opts.thumbnailType,\n          waitForThumbnailsBeforeUpload: this.opts.waitForThumbnailsBeforeUpload,\n          // If we don't block on thumbnails, we can lazily generate them\n          lazy: !this.opts.waitForThumbnailsBeforeUpload\n        });\n      }\n\n      // Dark Mode / theme\n      this.darkModeMediaQuery = typeof window !== 'undefined' && window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n      const isDarkModeOnFromTheStart = this.darkModeMediaQuery ? this.darkModeMediaQuery.matches : false;\n      this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnFromTheStart ? 'on' : 'off'}`);\n      this.setDarkModeCapability(isDarkModeOnFromTheStart);\n      if (this.opts.theme === 'auto') {\n        this.darkModeMediaQuery.addListener(this.handleSystemDarkModeChange);\n      }\n      _classPrivateFieldLooseBase(this, _addSpecifiedPluginsFromOptions)[_addSpecifiedPluginsFromOptions]();\n      _classPrivateFieldLooseBase(this, _autoDiscoverPlugins)[_autoDiscoverPlugins]();\n      this.initEvents();\n    };\n    this.uninstall = () => {\n      if (!this.opts.disableInformer) {\n        const informer = this.uppy.getPlugin(`${this.id}:Informer`);\n        // Checking if this plugin exists, in case it was removed by uppy-core\n        // before the Dashboard was.\n        if (informer) this.uppy.removePlugin(informer);\n      }\n      if (!this.opts.disableStatusBar) {\n        const statusBar = this.uppy.getPlugin(`${this.id}:StatusBar`);\n        if (statusBar) this.uppy.removePlugin(statusBar);\n      }\n      if (!this.opts.disableThumbnailGenerator) {\n        const thumbnail = this.uppy.getPlugin(`${this.id}:ThumbnailGenerator`);\n        if (thumbnail) this.uppy.removePlugin(thumbnail);\n      }\n      const plugins = this.opts.plugins || [];\n      plugins.forEach(pluginID => {\n        const plugin = this.uppy.getPlugin(pluginID);\n        if (plugin) plugin.unmount();\n      });\n      if (this.opts.theme === 'auto') {\n        this.darkModeMediaQuery.removeListener(this.handleSystemDarkModeChange);\n      }\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.remove('uppy-Dashboard-isFixed');\n      }\n      this.unmount();\n      this.removeEvents();\n    };\n    this.id = this.opts.id || 'Dashboard';\n    this.title = 'Dashboard';\n    this.type = 'orchestrator';\n    this.modalName = `uppy-Dashboard-${nanoid()}`;\n    this.defaultLocale = locale;\n\n    // set default options, must be kept in sync with packages/@uppy/react/src/DashboardModal.js\n    const defaultOptions = {\n      target: 'body',\n      metaFields: [],\n      trigger: null,\n      inline: false,\n      width: 750,\n      height: 550,\n      thumbnailWidth: 280,\n      thumbnailType: 'image/jpeg',\n      waitForThumbnailsBeforeUpload: false,\n      defaultPickerIcon,\n      showLinkToFileUploadResult: false,\n      showProgressDetails: false,\n      hideUploadButton: false,\n      hideCancelButton: false,\n      hideRetryButton: false,\n      hidePauseResumeButton: false,\n      hideProgressAfterFinish: false,\n      doneButtonHandler: () => {\n        this.uppy.clearUploadedFiles();\n        this.requestCloseModal();\n      },\n      note: null,\n      closeModalOnClickOutside: false,\n      closeAfterFinish: false,\n      singleFileFullScreen: true,\n      disableStatusBar: false,\n      disableInformer: false,\n      disableThumbnailGenerator: false,\n      disablePageScrollWhenModalOpen: true,\n      animateOpenClose: true,\n      fileManagerSelectionType: 'files',\n      proudlyDisplayPoweredByUppy: true,\n      onRequestCloseModal: () => this.closeModal(),\n      showSelectedFiles: true,\n      showRemoveButtonAfterComplete: false,\n      browserBackButtonClose: false,\n      showNativePhotoCameraButton: false,\n      showNativeVideoCameraButton: false,\n      theme: 'light',\n      autoOpenFileEditor: false,\n      disabled: false,\n      disableLocalFiles: false\n    };\n\n    // merge default options with the ones set by user\n    this.opts = {\n      ...defaultOptions,\n      ..._opts\n    };\n    this.i18nInit();\n    this.superFocus = createSuperFocus();\n    this.ifFocusedOnUppyRecently = false;\n\n    // Timeouts\n    this.makeDashboardInsidesVisibleAnywayTimeout = null;\n    this.removeDragOverClassTimeout = null;\n  }\n}\nDashboard.VERSION = packageJson.version;", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar NODE_LIST_CLASSES = {\n  '[object HTMLCollection]': true,\n  '[object NodeList]': true,\n  '[object RadioNodeList]': true\n}; // .type values for elements which can appear in .elements and should be ignored\n\nvar IGNORED_ELEMENT_TYPES = {\n  'button': true,\n  'fieldset': true,\n  'reset': true,\n  'submit': true\n};\nvar CHECKED_INPUT_TYPES = {\n  'checkbox': true,\n  'radio': true\n};\nvar TRIM_RE = /^\\s+|\\s+$/g;\nvar slice = Array.prototype.slice;\nvar toString = Object.prototype.toString;\n/**\n * @param {HTMLFormElement} form\n * @param {Object} [options]\n * @return {Object.<string,boolean|string|string[]>} an object containing\n *   submittable value(s) held in the form's .elements collection, with\n *   properties named as per element names or ids.\n */\n\nexport default function getFormData(form, options) {\n  if (!form) {\n    throw new Error(\"A form is required by getFormData, was given form=\" + form);\n  }\n\n  options = _extends({\n    includeDisabled: false,\n    trim: false\n  }, options);\n  var data = {};\n  var elementName;\n  var elementNames = [];\n  var elementNameLookup = {}; // Get unique submittable element names for the form\n\n  for (var i = 0, l = form.elements.length; i < l; i++) {\n    var element = form.elements[i];\n\n    if (IGNORED_ELEMENT_TYPES[element.type] || element.disabled && !options.includeDisabled) {\n      continue;\n    }\n\n    elementName = element.name || element.id;\n\n    if (elementName && !elementNameLookup[elementName]) {\n      elementNames.push(elementName);\n      elementNameLookup[elementName] = true;\n    }\n  } // Extract element data name-by-name for consistent handling of special cases\n  // around elements which contain multiple inputs.\n\n\n  for (var _i = 0, _l = elementNames.length; _i < _l; _i++) {\n    elementName = elementNames[_i];\n    var value = getFieldData(form, elementName, options);\n\n    if (value != null) {\n      data[elementName] = value;\n    }\n  }\n\n  return data;\n}\n/**\n * @param {HTMLFormElement} form\n * @param {string} fieldName\n * @param {Object} [options]\n * @return {?(boolean|string|string[]|File|File[])} submittable value(s) in the\n *   form for a  named element from its .elements collection, or null if there\n *   was no element with that name, or the element had no submittable value(s).\n */\n\nexport function getFieldData(form, fieldName, options) {\n  if (!form) {\n    throw new Error(\"A form is required by getFieldData, was given form=\" + form);\n  }\n\n  if (!fieldName && toString.call(fieldName) !== '[object String]') {\n    throw new Error(\"A field name is required by getFieldData, was given fieldName=\" + fieldName);\n  }\n\n  options = _extends({\n    includeDisabled: false,\n    trim: false\n  }, options);\n  var element = form.elements[fieldName];\n\n  if (!element || element.disabled && !options.includeDisabled) {\n    return null;\n  }\n\n  if (!NODE_LIST_CLASSES[toString.call(element)]) {\n    return getFormElementValue(element, options.trim);\n  } // Deal with multiple form controls which have the same name\n\n\n  var data = [];\n  var allRadios = true;\n\n  for (var i = 0, l = element.length; i < l; i++) {\n    if (element[i].disabled && !options.includeDisabled) {\n      continue;\n    }\n\n    if (allRadios && element[i].type !== 'radio') {\n      allRadios = false;\n    }\n\n    var value = getFormElementValue(element[i], options.trim);\n\n    if (value != null) {\n      data = data.concat(value);\n    }\n  } // Special case for an element with multiple same-named inputs which were all\n  // radio buttons: if there was a selected value, only return the value.\n\n\n  if (allRadios && data.length === 1) {\n    return data[0];\n  }\n\n  return data.length > 0 ? data : null;\n}\n/**\n * @param {HTMLElement} element a form element.\n * @param {boolean} [trim] should values for text entry inputs be trimmed?\n * @return {?(boolean|string|string[]|File|File[])} the element's submittable\n *   value(s), or null if it had none.\n */\n\nfunction getFormElementValue(element, trim) {\n  var value = null;\n  var type = element.type;\n\n  if (type === 'select-one') {\n    if (element.options.length) {\n      value = element.options[element.selectedIndex].value;\n    }\n\n    return value;\n  }\n\n  if (type === 'select-multiple') {\n    value = [];\n\n    for (var i = 0, l = element.options.length; i < l; i++) {\n      if (element.options[i].selected) {\n        value.push(element.options[i].value);\n      }\n    }\n\n    if (value.length === 0) {\n      value = null;\n    }\n\n    return value;\n  } // If a file input doesn't have a files attribute, fall through to using its\n  // value attribute.\n\n\n  if (type === 'file' && 'files' in element) {\n    if (element.multiple) {\n      value = slice.call(element.files);\n\n      if (value.length === 0) {\n        value = null;\n      }\n    } else {\n      // Should be null if not present, according to the spec\n      value = element.files[0];\n    }\n\n    return value;\n  }\n\n  if (!CHECKED_INPUT_TYPES[type]) {\n    value = trim ? element.value.replace(TRIM_RE, '') : element.value;\n  } else if (element.checked) {\n    if (type === 'checkbox' && !element.hasAttribute('value')) {\n      value = true;\n    } else {\n      value = element.value;\n    }\n  }\n\n  return value;\n} // For UMD build access to getFieldData\n\n\ngetFormData.getFieldData = getFieldData;", "import BasePlugin from '@uppy/core/lib/BasePlugin.js';\nimport findDOMElement from '@uppy/utils/lib/findDOMElement';\nimport toArray from '@uppy/utils/lib/toArray';\nimport getFormData from 'get-form-data';\nconst packageJson = {\n  \"version\": \"3.0.3\"\n};\n/**\n * Form\n */\nexport default class Form extends BasePlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.type = 'acquirer';\n    this.id = this.opts.id || 'Form';\n    this.title = 'Form';\n\n    // set default options\n    const defaultOptions = {\n      target: null,\n      resultName: 'uppyResult',\n      getMetaFromForm: true,\n      addResultToForm: true,\n      submitOnSuccess: false,\n      triggerUploadOnSubmit: false\n    };\n\n    // merge default options with the ones set by user\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.handleFormSubmit = this.handleFormSubmit.bind(this);\n    this.handleUploadStart = this.handleUploadStart.bind(this);\n    this.handleSuccess = this.handleSuccess.bind(this);\n    this.addResultToForm = this.addResultToForm.bind(this);\n    this.getMetaFromForm = this.getMetaFromForm.bind(this);\n  }\n  handleUploadStart() {\n    if (this.opts.getMetaFromForm) {\n      this.getMetaFromForm();\n    }\n  }\n  handleSuccess(result) {\n    if (this.opts.addResultToForm) {\n      this.addResultToForm(result);\n    }\n    if (this.opts.submitOnSuccess) {\n      this.form.submit();\n    }\n  }\n  handleFormSubmit(ev) {\n    if (this.opts.triggerUploadOnSubmit) {\n      ev.preventDefault();\n      const elements = toArray(ev.target.elements);\n      const disabledByUppy = [];\n      elements.forEach(el => {\n        const isButton = el.tagName === 'BUTTON' || el.tagName === 'INPUT' && el.type === 'submit';\n        if (isButton && !el.disabled) {\n          el.disabled = true; // eslint-disable-line no-param-reassign\n          disabledByUppy.push(el);\n        }\n      });\n      this.uppy.upload().then(() => {\n        disabledByUppy.forEach(button => {\n          button.disabled = false; // eslint-disable-line no-param-reassign\n        });\n      }, err => {\n        disabledByUppy.forEach(button => {\n          button.disabled = false; // eslint-disable-line no-param-reassign\n        });\n\n        return Promise.reject(err);\n      }).catch(err => {\n        this.uppy.log(err.stack || err.message || err);\n      });\n    }\n  }\n  addResultToForm(result) {\n    this.uppy.log('[Form] Adding result to the original form:');\n    this.uppy.log(result);\n    let resultInput = this.form.querySelector(`[name=\"${this.opts.resultName}\"]`);\n    if (resultInput) {\n      // Append new result to the previous result array.\n      // If the previous result is empty, or not an array,\n      // set it to an empty array.\n      let updatedResult;\n      try {\n        updatedResult = JSON.parse(resultInput.value);\n      } catch (err) {\n        // Nothing, since we check for array below anyway\n      }\n      if (!Array.isArray(updatedResult)) {\n        updatedResult = [];\n      }\n      updatedResult.push(result);\n      resultInput.value = JSON.stringify(updatedResult);\n      return;\n    }\n    resultInput = document.createElement('input');\n    resultInput.name = this.opts.resultName;\n    resultInput.type = 'hidden';\n    resultInput.value = JSON.stringify([result]);\n    this.form.appendChild(resultInput);\n  }\n  getMetaFromForm() {\n    const formMeta = getFormData(this.form);\n    // We want to exclude meta the the Form plugin itself has added\n    // See https://github.com/transloadit/uppy/issues/1637\n    delete formMeta[this.opts.resultName];\n    this.uppy.setMeta(formMeta);\n  }\n  install() {\n    this.form = findDOMElement(this.opts.target);\n    if (!this.form || this.form.nodeName !== 'FORM') {\n      this.uppy.log('Form plugin requires a <form> target element passed in options to operate, none was found', 'error');\n      return;\n    }\n    this.form.addEventListener('submit', this.handleFormSubmit);\n    this.uppy.on('upload', this.handleUploadStart);\n    this.uppy.on('complete', this.handleSuccess);\n  }\n  uninstall() {\n    this.form.removeEventListener('submit', this.handleFormSubmit);\n    this.uppy.off('upload', this.handleUploadStart);\n    this.uppy.off('complete', this.handleSuccess);\n  }\n}\nForm.VERSION = packageJson.version;", "export default {\n  strings: {\n    chooseFiles: 'Choose files'\n  }\n};", "import { UIPlugin } from '@uppy/core';\nimport toArray from '@uppy/utils/lib/toArray';\nimport { h } from 'preact';\nconst packageJson = {\n  \"version\": \"3.0.4\"\n};\nimport locale from './locale.js';\nexport default class FileInput extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.id = this.opts.id || 'FileInput';\n    this.title = 'File Input';\n    this.type = 'acquirer';\n    this.defaultLocale = locale;\n\n    // Default options, must be kept in sync with @uppy/react/src/FileInput.js.\n    const defaultOptions = {\n      target: null,\n      pretty: true,\n      inputName: 'files[]'\n    };\n\n    // Merge default options with the ones set by user\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.i18nInit();\n    this.render = this.render.bind(this);\n    this.handleInputChange = this.handleInputChange.bind(this);\n    this.handleClick = this.handleClick.bind(this);\n  }\n  addFiles(files) {\n    const descriptors = files.map(file => ({\n      source: this.id,\n      name: file.name,\n      type: file.type,\n      data: file\n    }));\n    try {\n      this.uppy.addFiles(descriptors);\n    } catch (err) {\n      this.uppy.log(err);\n    }\n  }\n  handleInputChange(event) {\n    this.uppy.log('[FileInput] Something selected through input...');\n    const files = toArray(event.target.files);\n    this.addFiles(files);\n\n    // We clear the input after a file is selected, because otherwise\n    // change event is not fired in Chrome and Safari when a file\n    // with the same name is selected.\n    // ___Why not use value=\"\" on <input/> instead?\n    //    Because if we use that method of clearing the input,\n    //    Chrome will not trigger change if we drop the same file twice (Issue #768).\n    event.target.value = null; // eslint-disable-line no-param-reassign\n  }\n\n  handleClick() {\n    this.input.click();\n  }\n  render() {\n    /* http://tympanus.net/codrops/2015/09/15/styling-customizing-file-inputs-smart-way/ */\n    const hiddenInputStyle = {\n      width: '0.1px',\n      height: '0.1px',\n      opacity: 0,\n      overflow: 'hidden',\n      position: 'absolute',\n      zIndex: -1\n    };\n    const {\n      restrictions\n    } = this.uppy.opts;\n    const accept = restrictions.allowedFileTypes ? restrictions.allowedFileTypes.join(',') : null;\n    return h(\"div\", {\n      className: \"uppy-FileInput-container\"\n    }, h(\"input\", {\n      className: \"uppy-FileInput-input\",\n      style: this.opts.pretty && hiddenInputStyle,\n      type: \"file\",\n      name: this.opts.inputName,\n      onChange: this.handleInputChange,\n      multiple: restrictions.maxNumberOfFiles !== 1,\n      accept: accept,\n      ref: input => {\n        this.input = input;\n      }\n    }), this.opts.pretty && h(\"button\", {\n      className: \"uppy-FileInput-btn\",\n      type: \"button\",\n      onClick: this.handleClick\n    }, this.i18n('chooseFiles')));\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n  }\n  uninstall() {\n    this.unmount();\n  }\n}\nFileInput.VERSION = packageJson.version;", "class UserFacingApiError extends Error {\n  constructor() {\n    super(...arguments);\n    this.name = 'UserFacingApiError';\n  }\n}\nexport default UserFacingApiError;", "import retry from 'retry';\nimport isNetworkError from 'is-network-error';\n\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\n\t\tif (message instanceof Error) {\n\t\t\tthis.originalError = message;\n\t\t\t({message} = message);\n\t\t} else {\n\t\t\tthis.originalError = new Error(message);\n\t\t\tthis.originalError.stack = this.stack;\n\t\t}\n\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\nconst decorateErrorWithCounts = (error, attemptNumber, options) => {\n\t// Minus 1 from attemptNumber because the first attempt does not count as a retry\n\tconst retriesLeft = options.retries - (attemptNumber - 1);\n\n\terror.attemptNumber = attemptNumber;\n\terror.retriesLeft = retriesLeft;\n\treturn error;\n};\n\nexport default async function pRetry(input, options) {\n\treturn new Promise((resolve, reject) => {\n\t\toptions = {\n\t\t\tonFailedAttempt() {},\n\t\t\tretries: 10,\n\t\t\tshouldRetry: () => true,\n\t\t\t...options,\n\t\t};\n\n\t\tconst operation = retry.operation(options);\n\n\t\tconst abortHandler = () => {\n\t\t\toperation.stop();\n\t\t\treject(options.signal?.reason);\n\t\t};\n\n\t\tif (options.signal && !options.signal.aborted) {\n\t\t\toptions.signal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tconst cleanUp = () => {\n\t\t\toptions.signal?.removeEventListener('abort', abortHandler);\n\t\t\toperation.stop();\n\t\t};\n\n\t\toperation.attempt(async attemptNumber => {\n\t\t\ttry {\n\t\t\t\tconst result = await input(attemptNumber);\n\t\t\t\tcleanUp();\n\t\t\t\tresolve(result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\t\tthrow new TypeError(`Non-error was thrown: \"${error}\". You should only throw errors.`);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof AbortError) {\n\t\t\t\t\t\tthrow error.originalError;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof TypeError && !isNetworkError(error)) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\n\t\t\t\t\tdecorateErrorWithCounts(error, attemptNumber, options);\n\n\t\t\t\t\tif (!(await options.shouldRetry(error))) {\n\t\t\t\t\t\toperation.stop();\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait options.onFailedAttempt(error);\n\n\t\t\t\t\tif (!operation.retry(error)) {\n\t\t\t\t\t\tthrow operation.mainError();\n\t\t\t\t\t}\n\t\t\t\t} catch (finalError) {\n\t\t\t\t\tdecorateErrorWithCounts(finalError, attemptNumber, options);\n\t\t\t\t\tcleanUp();\n\t\t\t\t\treject(finalError);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n", "const objectToString = Object.prototype.toString;\n\nconst isError = value => objectToString.call(value) === '[object Error]';\n\nconst errorMessages = new Set([\n\t'network error', // Chrome\n\t'Failed to fetch', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari 16\n\t'Load failed', // Safari 17+\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n]);\n\nexport default function isNetworkError(error) {\n\tconst isValid = error\n\t\t&& isError(error)\n\t\t&& error.name === 'TypeError'\n\t\t&& typeof error.message === 'string';\n\n\tif (!isValid) {\n\t\treturn false;\n\t}\n\n\t// We do an extra check for Safari 17+ as it has a very generic error message.\n\t// Network errors in Safari have no stack.\n\tif (error.message === 'Load failed') {\n\t\treturn error.stack === undefined;\n\t}\n\n\treturn errorMessages.has(error.message);\n}\n", "class NetworkError extends Error {\n  constructor(error, xhr) {\n    if (xhr === void 0) {\n      xhr = null;\n    }\n    super(`This looks like a network error, the endpoint might be blocked by an internet provider or a firewall.`);\n    this.cause = error;\n    this.isNetworkError = true;\n    this.request = xhr;\n  }\n}\nexport default NetworkError;", "import NetworkError from \"./NetworkError.js\";\n\n/**\n * Wrapper around window.fetch that throws a NetworkError when appropriate\n */\nexport default function fetchWithNetworkError() {\n  return fetch(...arguments).catch(err => {\n    if (err.name === 'AbortError') {\n      throw err;\n    } else {\n      throw new NetworkError(err);\n    }\n  });\n}", "export default function has(object, key) {\n  return Object.prototype.hasOwnProperty.call(object, key);\n}", "import hasProperty from \"./hasProperty.js\";\nclass ErrorWithCause extends Error {\n  constructor(message, options) {\n    super(message);\n    this.cause = options == null ? void 0 : options.cause;\n    if (this.cause && hasProperty(this.cause, 'isNetworkError')) {\n      this.isNetworkError = this.cause.isNetworkError;\n    } else {\n      this.isNetworkError = false;\n    }\n  }\n}\nexport default ErrorWithCause;", "import throttle from 'lodash/throttle.js';\nfunction emitSocketProgress(uploader, progressData, file) {\n  const {\n    progress,\n    bytesUploaded,\n    bytesTotal\n  } = progressData;\n  if (progress) {\n    uploader.uppy.log(`Upload progress: ${progress}`);\n    uploader.uppy.emit('upload-progress', file, {\n      // @ts-expect-error todo remove in next major\n      uploader,\n      bytesUploaded,\n      bytesTotal\n    });\n  }\n}\nexport default throttle(emitSocketProgress, 300, {\n  leading: true,\n  trailing: true\n});", "export default function getSocketHost(url) {\n  var _regex$exec;\n  // get the host domain\n  const regex = /^(?:https?:\\/\\/|\\/\\/)?(?:[^@\\n]+@)?(?:www\\.)?([^\\n]+)/i;\n  const host = (_regex$exec = regex.exec(url)) == null ? void 0 : _regex$exec[1];\n  const socketProtocol = /^http:\\/\\//i.test(url) ? 'ws' : 'wss';\n  return `${socketProtocol}://${host}`;\n}", "'use strict';\n\nclass AuthError extends Error {\n  constructor() {\n    super('Authorization required');\n    this.name = 'AuthError';\n\n    // we use a property because of instanceof is unsafe:\n    // https://github.com/transloadit/uppy/pull/4619#discussion_r1406225982\n    this.isAuthError = true;\n  }\n}\nexport default AuthError;", "let _Symbol$for;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport UserFacingApiError from '@uppy/utils/lib/UserFacingApiError';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport pRetry, { AbortError } from 'p-retry';\nimport fetchWithNetworkError from '@uppy/utils/lib/fetchWithNetworkError';\nimport ErrorWithCause from '@uppy/utils/lib/ErrorWithCause';\nimport emitSocketProgress from '@uppy/utils/lib/emitSocketProgress';\nimport getSocketHost from '@uppy/utils/lib/getSocketHost';\nimport AuthError from \"./AuthError.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.7.3\"\n};\n// Remove the trailing slash so we can always safely append /xyz.\nfunction stripSlash(url) {\n  return url.replace(/\\/$/, '');\n}\nconst retryCount = 10; // set to a low number, like 2 to test manual user retries\nconst socketActivityTimeoutMs = 5 * 60 * 1000; // set to a low number like 10000 to test this\n\nexport const authErrorStatusCode = 401;\nclass HttpError extends Error {\n  constructor(_ref) {\n    let {\n      statusCode,\n      message\n    } = _ref;\n    super(message);\n    this.name = 'HttpError';\n    this.statusCode = statusCode;\n  }\n}\nasync function handleJSONResponse(res) {\n  if (res.status === authErrorStatusCode) {\n    throw new AuthError();\n  }\n  if (res.ok) {\n    return res.json();\n  }\n  let errMsg = `Failed request with status: ${res.status}. ${res.statusText}`;\n  let errData;\n  try {\n    errData = await res.json();\n    if (errData.message) errMsg = `${errMsg} message: ${errData.message}`;\n    if (errData.requestId) errMsg = `${errMsg} request-Id: ${errData.requestId}`;\n  } catch (cause) {\n    // if the response contains invalid JSON, let's ignore the error data\n    throw new Error(errMsg, {\n      cause\n    });\n  }\n  if (res.status >= 400 && res.status <= 499 && errData.message) {\n    throw new UserFacingApiError(errData.message);\n  }\n  throw new HttpError({\n    statusCode: res.status,\n    message: errMsg\n  });\n}\nvar _companionHeaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"companionHeaders\");\nvar _getUrl = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUrl\");\nvar _requestSocketToken = /*#__PURE__*/_classPrivateFieldLooseKey(\"requestSocketToken\");\nvar _awaitRemoteFileUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"awaitRemoteFileUpload\");\n_Symbol$for = Symbol.for('uppy test: getCompanionHeaders');\nexport default class RequestClient {\n  constructor(uppy, opts) {\n    /**\n     * This method will ensure a websocket for the specified file and returns a promise that resolves\n     * when the file has finished downloading, or rejects if it fails.\n     * It will retry if the websocket gets disconnected\n     */\n    Object.defineProperty(this, _awaitRemoteFileUpload, {\n      value: _awaitRemoteFileUpload2\n    });\n    Object.defineProperty(this, _getUrl, {\n      value: _getUrl2\n    });\n    Object.defineProperty(this, _companionHeaders, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _requestSocketToken, {\n      writable: true,\n      value: async _ref2 => {\n        var _file$remote;\n        let {\n          file,\n          postBody,\n          signal\n        } = _ref2;\n        if (((_file$remote = file.remote) == null ? void 0 : _file$remote.url) == null) {\n          throw new Error('Cannot connect to an undefined URL');\n        }\n        const res = await this.post(file.remote.url, {\n          ...file.remote.body,\n          ...postBody\n        }, {\n          signal\n        });\n        return res.token;\n      }\n    });\n    this.uppy = uppy;\n    this.opts = opts;\n    this.onReceiveResponse = this.onReceiveResponse.bind(this);\n    // TODO: Remove optional chaining\n    _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders] = opts == null ? void 0 : opts.companionHeaders;\n  }\n  setCompanionHeaders(headers) {\n    _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders] = headers;\n  }\n  [_Symbol$for]() {\n    return _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders];\n  }\n  get hostname() {\n    const {\n      companion\n    } = this.uppy.getState();\n    const host = this.opts.companionUrl;\n    return stripSlash(companion && companion[host] ? companion[host] : host);\n  }\n  async headers(emptyBody) {\n    if (emptyBody === void 0) {\n      emptyBody = false;\n    }\n    const defaultHeaders = {\n      Accept: 'application/json',\n      ...(emptyBody ? undefined : {\n        // Passing those headers on requests with no data forces browsers to first make a preflight request.\n        'Content-Type': 'application/json'\n      })\n    };\n    return {\n      ...defaultHeaders,\n      ..._classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders]\n    };\n  }\n  onReceiveResponse(res) {\n    const {\n      headers\n    } = res;\n    const state = this.uppy.getState();\n    const companion = state.companion || {};\n    const host = this.opts.companionUrl;\n\n    // Store the self-identified domain name for the Companion instance we just hit.\n    if (headers.has('i-am') && headers.get('i-am') !== companion[host]) {\n      this.uppy.setState({\n        companion: {\n          ...companion,\n          [host]: headers.get('i-am')\n        }\n      });\n    }\n  }\n  async request(_ref3) {\n    let {\n      path,\n      method = 'GET',\n      data,\n      skipPostResponse,\n      signal\n    } = _ref3;\n    try {\n      const headers = await this.headers(!data);\n      const response = await fetchWithNetworkError(_classPrivateFieldLooseBase(this, _getUrl)[_getUrl](path), {\n        method,\n        signal,\n        headers,\n        credentials: this.opts.companionCookiesRule || 'same-origin',\n        body: data ? JSON.stringify(data) : null\n      });\n      if (!skipPostResponse) this.onReceiveResponse(response);\n      return await handleJSONResponse(response);\n    } catch (err) {\n      // pass these through\n      if (err.isAuthError || err.name === 'UserFacingApiError' || err.name === 'AbortError') throw err;\n      throw new ErrorWithCause(`Could not ${method} ${_classPrivateFieldLooseBase(this, _getUrl)[_getUrl](path)}`, {\n        cause: err\n      });\n    }\n  }\n  async get(path, options) {\n    // TODO: remove boolean support for options that was added for backward compatibility.\n    // eslint-disable-next-line no-param-reassign\n    if (typeof options === 'boolean') options = {\n      skipPostResponse: options\n    };\n    return this.request({\n      ...options,\n      path\n    });\n  }\n  async post(path, data, options) {\n    // TODO: remove boolean support for options that was added for backward compatibility.\n    // eslint-disable-next-line no-param-reassign\n    if (typeof options === 'boolean') options = {\n      skipPostResponse: options\n    };\n    return this.request({\n      ...options,\n      path,\n      method: 'POST',\n      data\n    });\n  }\n  async delete(path, data, options) {\n    // TODO: remove boolean support for options that was added for backward compatibility.\n    // eslint-disable-next-line no-param-reassign\n    if (typeof options === 'boolean') options = {\n      skipPostResponse: options\n    };\n    return this.request({\n      ...options,\n      path,\n      method: 'DELETE',\n      data\n    });\n  }\n\n  /**\n   * Remote uploading consists of two steps:\n   * 1. #requestSocketToken which starts the download/upload in companion and returns a unique token for the upload.\n   * Then companion will halt the upload until:\n   * 2. #awaitRemoteFileUpload is called, which will open/ensure a websocket connection towards companion, with the\n   * previously generated token provided. It returns a promise that will resolve/reject once the file has finished\n   * uploading or is otherwise done (failed, canceled)\n   */\n  async uploadRemoteFile(file, reqBody, options) {\n    var _this = this;\n    try {\n      const {\n        signal,\n        getQueue\n      } = options || {};\n      return await pRetry(async () => {\n        var _this$uppy$getFile;\n        // if we already have a serverToken, assume that we are resuming the existing server upload id\n        const existingServerToken = (_this$uppy$getFile = this.uppy.getFile(file.id)) == null ? void 0 : _this$uppy$getFile.serverToken;\n        if (existingServerToken != null) {\n          this.uppy.log(`Connecting to exiting websocket ${existingServerToken}`);\n          return _classPrivateFieldLooseBase(this, _awaitRemoteFileUpload)[_awaitRemoteFileUpload]({\n            file,\n            queue: getQueue(),\n            signal\n          });\n        }\n        const queueRequestSocketToken = getQueue().wrapPromiseFunction(async function () {\n          try {\n            return await _classPrivateFieldLooseBase(_this, _requestSocketToken)[_requestSocketToken](...arguments);\n          } catch (outerErr) {\n            // throwing AbortError will cause p-retry to stop retrying\n            if (outerErr.isAuthError) throw new AbortError(outerErr);\n            if (outerErr.cause == null) throw outerErr;\n            const err = outerErr.cause;\n            const isRetryableHttpError = () => [408, 409, 429, 418, 423].includes(err.statusCode) || err.statusCode >= 500 && err.statusCode <= 599 && ![501, 505].includes(err.statusCode);\n            if (err.name === 'HttpError' && !isRetryableHttpError()) throw new AbortError(err);\n\n            // p-retry will retry most other errors,\n            // but it will not retry TypeError (except network error TypeErrors)\n            throw err;\n          }\n        }, {\n          priority: -1\n        });\n        const serverToken = await queueRequestSocketToken({\n          file,\n          postBody: reqBody,\n          signal\n        }).abortOn(signal);\n        if (!this.uppy.getFile(file.id)) return undefined; // has file since been removed?\n\n        this.uppy.setFileState(file.id, {\n          serverToken\n        });\n        return _classPrivateFieldLooseBase(this, _awaitRemoteFileUpload)[_awaitRemoteFileUpload]({\n          file: this.uppy.getFile(file.id),\n          // re-fetching file because it might have changed in the meantime\n          queue: getQueue(),\n          signal\n        });\n      }, {\n        retries: retryCount,\n        signal,\n        onFailedAttempt: err => this.uppy.log(`Retrying upload due to: ${err.message}`, 'warning')\n      });\n    } catch (err) {\n      // this is a bit confusing, but note that an error with the `name` prop set to 'AbortError' (from AbortController)\n      // is not the same as `p-retry` `AbortError`\n      if (err.name === 'AbortError') {\n        // The file upload was aborted, it\u2019s not an error\n        return undefined;\n      }\n      this.uppy.emit('upload-error', file, err);\n      throw err;\n    }\n  }\n}\nfunction _getUrl2(url) {\n  if (/^(https?:|)\\/\\//.test(url)) {\n    return url;\n  }\n  return `${this.hostname}/${url}`;\n}\nasync function _awaitRemoteFileUpload2(_ref4) {\n  let {\n    file,\n    queue,\n    signal\n  } = _ref4;\n  let removeEventHandlers;\n  const {\n    capabilities\n  } = this.uppy.getState();\n  try {\n    return await new Promise((resolve, reject) => {\n      const token = file.serverToken;\n      const host = getSocketHost(file.remote.companionUrl);\n      let socket;\n      let socketAbortController;\n      let activityTimeout;\n      let {\n        isPaused\n      } = file;\n      const socketSend = (action, payload) => {\n        if (socket == null || socket.readyState !== socket.OPEN) {\n          var _socket;\n          this.uppy.log(`Cannot send \"${action}\" to socket ${file.id} because the socket state was ${String((_socket = socket) == null ? void 0 : _socket.readyState)}`, 'warning');\n          return;\n        }\n        socket.send(JSON.stringify({\n          action,\n          payload: payload != null ? payload : {}\n        }));\n      };\n      function sendState() {\n        if (!capabilities.resumableUploads) return;\n        if (isPaused) socketSend('pause');else socketSend('resume');\n      }\n      const createWebsocket = async () => {\n        if (socketAbortController) socketAbortController.abort();\n        socketAbortController = new AbortController();\n        const onFatalError = err => {\n          var _socketAbortControlle;\n          // Remove the serverToken so that a new one will be created for the retry.\n          this.uppy.setFileState(file.id, {\n            serverToken: null\n          });\n          (_socketAbortControlle = socketAbortController) == null || _socketAbortControlle.abort == null || _socketAbortControlle.abort();\n          reject(err);\n        };\n\n        // todo instead implement the ability for users to cancel / retry *currently uploading files* in the UI\n        function resetActivityTimeout() {\n          clearTimeout(activityTimeout);\n          if (isPaused) return;\n          activityTimeout = setTimeout(() => onFatalError(new Error('Timeout waiting for message from Companion socket')), socketActivityTimeoutMs);\n        }\n        try {\n          await queue.wrapPromiseFunction(async () => {\n            const reconnectWebsocket = async () =>\n            // eslint-disable-next-line promise/param-names\n            new Promise((_, rejectSocket) => {\n              socket = new WebSocket(`${host}/api/${token}`);\n              resetActivityTimeout();\n              socket.addEventListener('close', () => {\n                socket = undefined;\n                rejectSocket(new Error('Socket closed unexpectedly'));\n              });\n              socket.addEventListener('error', error => {\n                var _socket2;\n                this.uppy.log(`Companion socket error ${JSON.stringify(error)}, closing socket`, 'warning');\n                (_socket2 = socket) == null || _socket2.close(); // will 'close' event to be emitted\n              });\n              socket.addEventListener('open', () => {\n                sendState();\n              });\n              socket.addEventListener('message', e => {\n                resetActivityTimeout();\n                try {\n                  const {\n                    action,\n                    payload\n                  } = JSON.parse(e.data);\n                  switch (action) {\n                    case 'progress':\n                      {\n                        emitSocketProgress(this, payload, this.uppy.getFile(file.id));\n                        break;\n                      }\n                    case 'success':\n                      {\n                        var _payload$response, _payload$response$sta, _payload$response2, _socketAbortControlle2;\n                        // payload.response exists for xhr-upload but not for tus/transloadit\n                        const text = (_payload$response = payload.response) == null ? void 0 : _payload$response.responseText;\n                        this.uppy.emit('upload-success', this.uppy.getFile(file.id), {\n                          uploadURL: payload.url,\n                          status: (_payload$response$sta = (_payload$response2 = payload.response) == null ? void 0 : _payload$response2.status) != null ? _payload$response$sta : 200,\n                          body: text ? JSON.parse(text) : undefined\n                        });\n                        (_socketAbortControlle2 = socketAbortController) == null || _socketAbortControlle2.abort == null || _socketAbortControlle2.abort();\n                        resolve();\n                        break;\n                      }\n                    case 'error':\n                      {\n                        const {\n                          message\n                        } = payload.error;\n                        throw Object.assign(new Error(message), {\n                          cause: payload.error\n                        });\n                      }\n                    default:\n                      this.uppy.log(`Companion socket unknown action ${action}`, 'warning');\n                  }\n                } catch (err) {\n                  onFatalError(err);\n                }\n              });\n              const closeSocket = () => {\n                this.uppy.log(`Closing socket ${file.id}`, 'info');\n                clearTimeout(activityTimeout);\n                if (socket) socket.close();\n                socket = undefined;\n              };\n              socketAbortController.signal.addEventListener('abort', () => {\n                closeSocket();\n              });\n            });\n            await pRetry(reconnectWebsocket, {\n              retries: retryCount,\n              signal: socketAbortController.signal,\n              onFailedAttempt: () => {\n                if (socketAbortController.signal.aborted) return; // don't log in this case\n                this.uppy.log(`Retrying websocket ${file.id}`, 'info');\n              }\n            });\n          })().abortOn(socketAbortController.signal);\n        } catch (err) {\n          if (socketAbortController.signal.aborted) return;\n          onFatalError(err);\n        }\n      };\n      const pause = newPausedState => {\n        if (!capabilities.resumableUploads) return;\n        isPaused = newPausedState;\n        if (socket) sendState();\n        if (newPausedState) {\n          var _socketAbortControlle3;\n          // Remove this file from the queue so another file can start in its place.\n          (_socketAbortControlle3 = socketAbortController) == null || _socketAbortControlle3.abort == null || _socketAbortControlle3.abort(); // close socket to free up the request for other uploads\n        } else {\n          // Resuming an upload should be queued, else you could pause and then\n          // resume a queued upload to make it skip the queue.\n          createWebsocket();\n        }\n      };\n      const onFileRemove = targetFile => {\n        var _socketAbortControlle4;\n        if (!capabilities.individualCancellation) return;\n        if (targetFile.id !== file.id) return;\n        socketSend('cancel');\n        (_socketAbortControlle4 = socketAbortController) == null || _socketAbortControlle4.abort == null || _socketAbortControlle4.abort();\n        this.uppy.log(`upload ${file.id} was removed`, 'info');\n        resolve();\n      };\n      const onCancelAll = _ref5 => {\n        var _socketAbortControlle5;\n        let {\n          reason\n        } = _ref5;\n        if (reason === 'user') {\n          socketSend('cancel');\n        }\n        (_socketAbortControlle5 = socketAbortController) == null || _socketAbortControlle5.abort == null || _socketAbortControlle5.abort();\n        this.uppy.log(`upload ${file.id} was canceled`, 'info');\n        resolve();\n      };\n      const onFilePausedChange = (targetFileId, newPausedState) => {\n        if (targetFileId !== file.id) return;\n        pause(newPausedState);\n      };\n      const onPauseAll = () => pause(true);\n      const onResumeAll = () => pause(false);\n      this.uppy.on('file-removed', onFileRemove);\n      this.uppy.on('cancel-all', onCancelAll);\n      this.uppy.on('upload-pause', onFilePausedChange);\n      this.uppy.on('pause-all', onPauseAll);\n      this.uppy.on('resume-all', onResumeAll);\n      removeEventHandlers = () => {\n        this.uppy.off('file-removed', onFileRemove);\n        this.uppy.off('cancel-all', onCancelAll);\n        this.uppy.off('upload-pause', onFilePausedChange);\n        this.uppy.off('pause-all', onPauseAll);\n        this.uppy.off('resume-all', onResumeAll);\n      };\n      signal.addEventListener('abort', () => {\n        var _socketAbortControlle6;\n        (_socketAbortControlle6 = socketAbortController) == null || _socketAbortControlle6.abort();\n      });\n      createWebsocket();\n    });\n  } finally {\n    // @ts-expect-error used before defined\n    removeEventHandlers == null || removeEventHandlers();\n  }\n}\nRequestClient.VERSION = packageJson.version;", "let _Symbol$for, _Symbol$for2;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore no types\nimport ee from 'namespace-emitter';\nvar _queued = /*#__PURE__*/_classPrivateFieldLooseKey(\"queued\");\nvar _emitter = /*#__PURE__*/_classPrivateFieldLooseKey(\"emitter\");\nvar _isOpen = /*#__PURE__*/_classPrivateFieldLooseKey(\"isOpen\");\nvar _socket = /*#__PURE__*/_classPrivateFieldLooseKey(\"socket\");\nvar _handleMessage = /*#__PURE__*/_classPrivateFieldLooseKey(\"handleMessage\");\n_Symbol$for = Symbol.for('uppy test: getSocket');\n_Symbol$for2 = Symbol.for('uppy test: getQueued');\nexport default class UppySocket {\n  constructor(opts) {\n    Object.defineProperty(this, _queued, {\n      writable: true,\n      value: []\n    });\n    Object.defineProperty(this, _emitter, {\n      writable: true,\n      value: ee()\n    });\n    Object.defineProperty(this, _isOpen, {\n      writable: true,\n      value: false\n    });\n    Object.defineProperty(this, _socket, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _handleMessage, {\n      writable: true,\n      value: e => {\n        try {\n          const message = JSON.parse(e.data);\n          this.emit(message.action, message.payload);\n        } catch (err) {\n          // TODO: use a more robust error handler.\n          console.log(err); // eslint-disable-line no-console\n        }\n      }\n    });\n    this.opts = opts;\n    if (!opts || opts.autoOpen !== false) {\n      this.open();\n    }\n  }\n  get isOpen() {\n    return _classPrivateFieldLooseBase(this, _isOpen)[_isOpen];\n  }\n  [_Symbol$for]() {\n    return _classPrivateFieldLooseBase(this, _socket)[_socket];\n  }\n  [_Symbol$for2]() {\n    return _classPrivateFieldLooseBase(this, _queued)[_queued];\n  }\n  open() {\n    if (_classPrivateFieldLooseBase(this, _socket)[_socket] != null) return;\n    _classPrivateFieldLooseBase(this, _socket)[_socket] = new WebSocket(this.opts.target);\n    _classPrivateFieldLooseBase(this, _socket)[_socket].onopen = () => {\n      _classPrivateFieldLooseBase(this, _isOpen)[_isOpen] = true;\n      while (_classPrivateFieldLooseBase(this, _queued)[_queued].length > 0 && _classPrivateFieldLooseBase(this, _isOpen)[_isOpen]) {\n        const first = _classPrivateFieldLooseBase(this, _queued)[_queued].shift();\n        this.send(first.action, first.payload);\n      }\n    };\n    _classPrivateFieldLooseBase(this, _socket)[_socket].onclose = () => {\n      _classPrivateFieldLooseBase(this, _isOpen)[_isOpen] = false;\n      _classPrivateFieldLooseBase(this, _socket)[_socket] = null;\n    };\n    _classPrivateFieldLooseBase(this, _socket)[_socket].onmessage = _classPrivateFieldLooseBase(this, _handleMessage)[_handleMessage];\n  }\n  close() {\n    var _classPrivateFieldLoo;\n    (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _socket)[_socket]) == null || _classPrivateFieldLoo.close();\n  }\n  send(action, payload) {\n    // attach uuid\n\n    if (!_classPrivateFieldLooseBase(this, _isOpen)[_isOpen]) {\n      _classPrivateFieldLooseBase(this, _queued)[_queued].push({\n        action,\n        payload\n      });\n      return;\n    }\n    _classPrivateFieldLooseBase(this, _socket)[_socket].send(JSON.stringify({\n      action,\n      payload\n    }));\n  }\n  on(action, handler) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(action, handler);\n  }\n  emit(action, payload) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].emit(action, payload);\n  }\n  once(action, handler) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].once(action, handler);\n  }\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nvar _uppy = /*#__PURE__*/_classPrivateFieldLooseKey(\"uppy\");\nvar _events = /*#__PURE__*/_classPrivateFieldLooseKey(\"events\");\n/**\n * Create a wrapper around an event emitter with a `remove` method to remove\n * all events that were added using the wrapped emitter.\n */\nexport default class EventManager {\n  constructor(uppy) {\n    Object.defineProperty(this, _uppy, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _events, {\n      writable: true,\n      value: []\n    });\n    _classPrivateFieldLooseBase(this, _uppy)[_uppy] = uppy;\n  }\n  on(event, fn) {\n    _classPrivateFieldLooseBase(this, _events)[_events].push([event, fn]);\n    return _classPrivateFieldLooseBase(this, _uppy)[_uppy].on(event, fn);\n  }\n  remove() {\n    for (const [event, fn] of _classPrivateFieldLooseBase(this, _events)[_events].splice(0)) {\n      _classPrivateFieldLooseBase(this, _uppy)[_uppy].off(event, fn);\n    }\n  }\n  onFilePause(fileID, cb) {\n    this.on('upload-pause', (targetFileID, isPaused) => {\n      if (fileID === targetFileID) {\n        cb(isPaused);\n      }\n    });\n  }\n  onFileRemove(fileID, cb) {\n    this.on('file-removed', file => {\n      if (fileID === file.id) cb(file.id);\n    });\n  }\n  onPause(fileID, cb) {\n    this.on('upload-pause', (targetFileID, isPaused) => {\n      if (fileID === targetFileID) {\n        // const isPaused = this.#uppy.pauseResume(fileID)\n        cb(isPaused);\n      }\n    });\n  }\n  onRetry(fileID, cb) {\n    this.on('upload-retry', targetFileID => {\n      if (fileID === targetFileID) {\n        cb();\n      }\n    });\n  }\n  onRetryAll(fileID, cb) {\n    this.on('retry-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n  onPauseAll(fileID, cb) {\n    this.on('pause-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n  onCancelAll(fileID, eventHandler) {\n    var _this = this;\n    this.on('cancel-all', function () {\n      if (!_classPrivateFieldLooseBase(_this, _uppy)[_uppy].getFile(fileID)) return;\n      eventHandler(...arguments);\n    });\n  }\n  onResumeAll(fileID, cb) {\n    this.on('resume-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nfunction createCancelError(cause) {\n  return new Error('Cancelled', {\n    cause\n  });\n}\nfunction abortOn(signal) {\n  if (signal != null) {\n    var _this$then;\n    const abortPromise = () => this.abort(signal.reason);\n    signal.addEventListener('abort', abortPromise, {\n      once: true\n    });\n    const removeAbortListener = () => {\n      signal.removeEventListener('abort', abortPromise);\n    };\n    (_this$then = this.then) == null || _this$then.call(this, removeAbortListener, removeAbortListener);\n  }\n  return this;\n}\nvar _activeRequests = /*#__PURE__*/_classPrivateFieldLooseKey(\"activeRequests\");\nvar _queuedHandlers = /*#__PURE__*/_classPrivateFieldLooseKey(\"queuedHandlers\");\nvar _paused = /*#__PURE__*/_classPrivateFieldLooseKey(\"paused\");\nvar _pauseTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"pauseTimer\");\nvar _downLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"downLimit\");\nvar _upperLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"upperLimit\");\nvar _rateLimitingTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"rateLimitingTimer\");\nvar _call = /*#__PURE__*/_classPrivateFieldLooseKey(\"call\");\nvar _queueNext = /*#__PURE__*/_classPrivateFieldLooseKey(\"queueNext\");\nvar _next = /*#__PURE__*/_classPrivateFieldLooseKey(\"next\");\nvar _queue = /*#__PURE__*/_classPrivateFieldLooseKey(\"queue\");\nvar _dequeue = /*#__PURE__*/_classPrivateFieldLooseKey(\"dequeue\");\nvar _resume = /*#__PURE__*/_classPrivateFieldLooseKey(\"resume\");\nvar _increaseLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"increaseLimit\");\nexport class RateLimitedQueue {\n  constructor(limit) {\n    Object.defineProperty(this, _dequeue, {\n      value: _dequeue2\n    });\n    Object.defineProperty(this, _queue, {\n      value: _queue2\n    });\n    Object.defineProperty(this, _next, {\n      value: _next2\n    });\n    Object.defineProperty(this, _queueNext, {\n      value: _queueNext2\n    });\n    Object.defineProperty(this, _call, {\n      value: _call2\n    });\n    Object.defineProperty(this, _activeRequests, {\n      writable: true,\n      value: 0\n    });\n    Object.defineProperty(this, _queuedHandlers, {\n      writable: true,\n      value: []\n    });\n    Object.defineProperty(this, _paused, {\n      writable: true,\n      value: false\n    });\n    Object.defineProperty(this, _pauseTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _downLimit, {\n      writable: true,\n      value: 1\n    });\n    Object.defineProperty(this, _upperLimit, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _rateLimitingTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _resume, {\n      writable: true,\n      value: () => this.resume()\n    });\n    Object.defineProperty(this, _increaseLimit, {\n      writable: true,\n      value: () => {\n        if (_classPrivateFieldLooseBase(this, _paused)[_paused]) {\n          _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], 0);\n          return;\n        }\n        _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] = this.limit;\n        this.limit = Math.ceil((_classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] + _classPrivateFieldLooseBase(this, _downLimit)[_downLimit]) / 2);\n        for (let i = _classPrivateFieldLooseBase(this, _downLimit)[_downLimit]; i <= this.limit; i++) {\n          _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n        }\n        if (_classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] - _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] > 3) {\n          _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], 2000);\n        } else {\n          _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] = Math.floor(_classPrivateFieldLooseBase(this, _downLimit)[_downLimit] / 2);\n        }\n      }\n    });\n    if (typeof limit !== 'number' || limit === 0) {\n      this.limit = Infinity;\n    } else {\n      this.limit = limit;\n    }\n  }\n  run(fn, queueOptions) {\n    if (!_classPrivateFieldLooseBase(this, _paused)[_paused] && _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] < this.limit) {\n      return _classPrivateFieldLooseBase(this, _call)[_call](fn);\n    }\n    return _classPrivateFieldLooseBase(this, _queue)[_queue](fn, queueOptions);\n  }\n  wrapSyncFunction(fn, queueOptions) {\n    var _this = this;\n    return function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      const queuedRequest = _this.run(() => {\n        fn(...args);\n        queueMicrotask(() => queuedRequest.done());\n        return () => {};\n      }, queueOptions);\n      return {\n        abortOn,\n        abort() {\n          queuedRequest.abort();\n        }\n      };\n    };\n  }\n  wrapPromiseFunction(fn, queueOptions) {\n    var _this2 = this;\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      let queuedRequest;\n      const outerPromise = new Promise((resolve, reject) => {\n        queuedRequest = _this2.run(() => {\n          let cancelError;\n          let innerPromise;\n          try {\n            innerPromise = Promise.resolve(fn(...args));\n          } catch (err) {\n            innerPromise = Promise.reject(err);\n          }\n          innerPromise.then(result => {\n            if (cancelError) {\n              reject(cancelError);\n            } else {\n              queuedRequest.done();\n              resolve(result);\n            }\n          }, err => {\n            if (cancelError) {\n              reject(cancelError);\n            } else {\n              queuedRequest.done();\n              reject(err);\n            }\n          });\n          return cause => {\n            cancelError = createCancelError(cause);\n          };\n        }, queueOptions);\n      });\n      outerPromise.abort = cause => {\n        queuedRequest.abort(cause);\n      };\n      outerPromise.abortOn = abortOn;\n      return outerPromise;\n    };\n  }\n  resume() {\n    _classPrivateFieldLooseBase(this, _paused)[_paused] = false;\n    clearTimeout(_classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer]);\n    for (let i = 0; i < this.limit; i++) {\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    }\n  }\n  /**\n   * Freezes the queue for a while or indefinitely.\n   *\n   * @param {number | null } [duration] Duration for the pause to happen, in milliseconds.\n   *                                    If omitted, the queue won't resume automatically.\n   */\n  pause(duration) {\n    if (duration === void 0) {\n      duration = null;\n    }\n    _classPrivateFieldLooseBase(this, _paused)[_paused] = true;\n    clearTimeout(_classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer]);\n    if (duration != null) {\n      _classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer] = setTimeout(_classPrivateFieldLooseBase(this, _resume)[_resume], duration);\n    }\n  }\n\n  /**\n   * Pauses the queue for a duration, and lower the limit of concurrent requests\n   * when the queue resumes. When the queue resumes, it tries to progressively\n   * increase the limit in `this.#increaseLimit` until another call is made to\n   * `this.rateLimit`.\n   * Call this function when using the RateLimitedQueue for network requests and\n   * the remote server responds with 429 HTTP code.\n   *\n   * @param {number} duration in milliseconds.\n   */\n  rateLimit(duration) {\n    clearTimeout(_classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer]);\n    this.pause(duration);\n    if (this.limit > 1 && Number.isFinite(this.limit)) {\n      _classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] = this.limit - 1;\n      this.limit = _classPrivateFieldLooseBase(this, _downLimit)[_downLimit];\n      _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], duration);\n    }\n  }\n  get isPaused() {\n    return _classPrivateFieldLooseBase(this, _paused)[_paused];\n  }\n}\nfunction _call2(fn) {\n  _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] += 1;\n  let done = false;\n  let cancelActive;\n  try {\n    cancelActive = fn();\n  } catch (err) {\n    _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n    throw err;\n  }\n  return {\n    abort: cause => {\n      if (done) return;\n      done = true;\n      _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n      cancelActive == null || cancelActive(cause);\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    },\n    done: () => {\n      if (done) return;\n      done = true;\n      _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    }\n  };\n}\nfunction _queueNext2() {\n  // Do it soon but not immediately, this allows clearing out the entire queue synchronously\n  // one by one without continuously _advancing_ it (and starting new tasks before immediately\n  // aborting them)\n  queueMicrotask(() => _classPrivateFieldLooseBase(this, _next)[_next]());\n}\nfunction _next2() {\n  if (_classPrivateFieldLooseBase(this, _paused)[_paused] || _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] >= this.limit) {\n    return;\n  }\n  if (_classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].length === 0) {\n    return;\n  }\n\n  // Dispatch the next request, and update the abort/done handlers\n  // so that cancelling it does the Right Thing (and doesn't just try\n  // to dequeue an already-running request).\n  const next = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].shift();\n  if (next == null) {\n    throw new Error('Invariant violation: next is null');\n  }\n  const handler = _classPrivateFieldLooseBase(this, _call)[_call](next.fn);\n  next.abort = handler.abort;\n  next.done = handler.done;\n}\nfunction _queue2(fn, options) {\n  const handler = {\n    fn,\n    priority: (options == null ? void 0 : options.priority) || 0,\n    abort: () => {\n      _classPrivateFieldLooseBase(this, _dequeue)[_dequeue](handler);\n    },\n    done: () => {\n      throw new Error('Cannot mark a queued request as done: this indicates a bug');\n    }\n  };\n  const index = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].findIndex(other => {\n    return handler.priority > other.priority;\n  });\n  if (index === -1) {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].push(handler);\n  } else {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].splice(index, 0, handler);\n  }\n  return handler;\n}\nfunction _dequeue2(handler) {\n  const index = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].indexOf(handler);\n  if (index !== -1) {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].splice(index, 1);\n  }\n}\nexport const internalRateLimitedQueue = Symbol('__queue');", "export function filterNonFailedFiles(files) {\n  const hasError = file => 'error' in file && !!file.error;\n  return files.filter(file => !hasError(file));\n}\n\n// Don't double-emit upload-started for Golden Retriever-restored files that were already started\nexport function filterFilesToEmitUploadStarted(files) {\n  return files.filter(file => {\n    var _file$progress;\n    return !((_file$progress = file.progress) != null && _file$progress.uploadStarted) || !file.isRestored;\n  });\n}", "import hasOwnProperty from \"./hasProperty.js\";\n/**\n * Little AbortController proxy module so we can swap out the implementation easily later.\n */\nexport const {\n  AbortController\n} = globalThis;\nexport const {\n  AbortSignal\n} = globalThis;\nexport const createAbortError = function (message, options) {\n  if (message === void 0) {\n    message = 'Aborted';\n  }\n  const err = new DOMException(message, 'AbortError');\n  if (options != null && hasOwnProperty(options, 'cause')) {\n    Object.defineProperty(err, 'cause', {\n      // @ts-expect-error TS is drunk\n      __proto__: null,\n      configurable: true,\n      writable: true,\n      value: options.cause\n    });\n  }\n  return err;\n};", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { AbortController } from '@uppy/utils/lib/AbortController';\nconst MB = 1024 * 1024;\nconst defaultOptions = {\n  getChunkSize(file) {\n    return Math.ceil(file.size / 10000);\n  },\n  onProgress() {},\n  onPartComplete() {},\n  onSuccess() {},\n  onError(err) {\n    throw err;\n  }\n};\nfunction ensureInt(value) {\n  if (typeof value === 'string') {\n    return parseInt(value, 10);\n  }\n  if (typeof value === 'number') {\n    return value;\n  }\n  throw new TypeError('Expected a number');\n}\nexport const pausingUploadReason = Symbol('pausing upload, not an actual error');\n\n/**\n * A MultipartUploader instance is used per file upload to determine whether a\n * upload should be done as multipart or as a regular S3 upload\n * (based on the user-provided `shouldUseMultipart` option value) and to manage\n * the chunk splitting.\n */\nvar _abortController = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortController\");\nvar _chunks = /*#__PURE__*/_classPrivateFieldLooseKey(\"chunks\");\nvar _chunkState = /*#__PURE__*/_classPrivateFieldLooseKey(\"chunkState\");\nvar _data = /*#__PURE__*/_classPrivateFieldLooseKey(\"data\");\nvar _file = /*#__PURE__*/_classPrivateFieldLooseKey(\"file\");\nvar _uploadHasStarted = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploadHasStarted\");\nvar _onError = /*#__PURE__*/_classPrivateFieldLooseKey(\"onError\");\nvar _onSuccess = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSuccess\");\nvar _shouldUseMultipart = /*#__PURE__*/_classPrivateFieldLooseKey(\"shouldUseMultipart\");\nvar _isRestoring = /*#__PURE__*/_classPrivateFieldLooseKey(\"isRestoring\");\nvar _onReject = /*#__PURE__*/_classPrivateFieldLooseKey(\"onReject\");\nvar _maxMultipartParts = /*#__PURE__*/_classPrivateFieldLooseKey(\"maxMultipartParts\");\nvar _minPartSize = /*#__PURE__*/_classPrivateFieldLooseKey(\"minPartSize\");\nvar _initChunks = /*#__PURE__*/_classPrivateFieldLooseKey(\"initChunks\");\nvar _createUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createUpload\");\nvar _resumeUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"resumeUpload\");\nvar _onPartProgress = /*#__PURE__*/_classPrivateFieldLooseKey(\"onPartProgress\");\nvar _onPartComplete = /*#__PURE__*/_classPrivateFieldLooseKey(\"onPartComplete\");\nvar _abortUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortUpload\");\nclass MultipartUploader {\n  constructor(data, options) {\n    var _this$options, _this$options$getChun;\n    Object.defineProperty(this, _abortUpload, {\n      value: _abortUpload2\n    });\n    Object.defineProperty(this, _resumeUpload, {\n      value: _resumeUpload2\n    });\n    Object.defineProperty(this, _createUpload, {\n      value: _createUpload2\n    });\n    // initChunks checks the user preference for using multipart uploads (opts.shouldUseMultipart)\n    // and calculates the optimal part size. When using multipart part uploads every part except for the last has\n    // to be at least 5 MB and there can be no more than 10K parts.\n    // This means we sometimes need to change the preferred part size from the user in order to meet these requirements.\n    Object.defineProperty(this, _initChunks, {\n      value: _initChunks2\n    });\n    Object.defineProperty(this, _abortController, {\n      writable: true,\n      value: new AbortController()\n    });\n    /** @type {import(\"../types/chunk\").Chunk[]} */\n    Object.defineProperty(this, _chunks, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {{ uploaded: number, etag?: string, done?: boolean }[]} */\n    Object.defineProperty(this, _chunkState, {\n      writable: true,\n      value: void 0\n    });\n    /**\n     * The (un-chunked) data to upload.\n     *\n     * @type {Blob}\n     */\n    Object.defineProperty(this, _data, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {import(\"@uppy/core\").UppyFile} */\n    Object.defineProperty(this, _file, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {boolean} */\n    Object.defineProperty(this, _uploadHasStarted, {\n      writable: true,\n      value: false\n    });\n    /** @type {(err?: Error | any) => void} */\n    Object.defineProperty(this, _onError, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {() => void} */\n    Object.defineProperty(this, _onSuccess, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {import('../types/index').AwsS3MultipartOptions[\"shouldUseMultipart\"]} */\n    Object.defineProperty(this, _shouldUseMultipart, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {boolean} */\n    Object.defineProperty(this, _isRestoring, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _onReject, {\n      writable: true,\n      value: err => (err == null ? void 0 : err.cause) === pausingUploadReason ? null : _classPrivateFieldLooseBase(this, _onError)[_onError](err)\n    });\n    Object.defineProperty(this, _maxMultipartParts, {\n      writable: true,\n      value: 10000\n    });\n    Object.defineProperty(this, _minPartSize, {\n      writable: true,\n      value: 5 * MB\n    });\n    Object.defineProperty(this, _onPartProgress, {\n      writable: true,\n      value: index => ev => {\n        if (!ev.lengthComputable) return;\n        _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][index].uploaded = ensureInt(ev.loaded);\n        const totalUploaded = _classPrivateFieldLooseBase(this, _chunkState)[_chunkState].reduce((n, c) => n + c.uploaded, 0);\n        this.options.onProgress(totalUploaded, _classPrivateFieldLooseBase(this, _data)[_data].size);\n      }\n    });\n    Object.defineProperty(this, _onPartComplete, {\n      writable: true,\n      value: index => etag => {\n        // This avoids the net::ERR_OUT_OF_MEMORY in Chromium Browsers.\n        _classPrivateFieldLooseBase(this, _chunks)[_chunks][index] = null;\n        _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][index].etag = etag;\n        _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][index].done = true;\n        const part = {\n          PartNumber: index + 1,\n          ETag: etag\n        };\n        this.options.onPartComplete(part);\n      }\n    });\n    this.options = {\n      ...defaultOptions,\n      ...options\n    };\n    // Use default `getChunkSize` if it was null or something\n    (_this$options$getChun = (_this$options = this.options).getChunkSize) != null ? _this$options$getChun : _this$options.getChunkSize = defaultOptions.getChunkSize;\n    _classPrivateFieldLooseBase(this, _data)[_data] = data;\n    _classPrivateFieldLooseBase(this, _file)[_file] = options.file;\n    _classPrivateFieldLooseBase(this, _onSuccess)[_onSuccess] = this.options.onSuccess;\n    _classPrivateFieldLooseBase(this, _onError)[_onError] = this.options.onError;\n    _classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart] = this.options.shouldUseMultipart;\n\n    // When we are restoring an upload, we already have an UploadId and a Key. Otherwise\n    // we need to call `createMultipartUpload` to get an `uploadId` and a `key`.\n    // Non-multipart uploads are not restorable.\n    _classPrivateFieldLooseBase(this, _isRestoring)[_isRestoring] = options.uploadId && options.key;\n    _classPrivateFieldLooseBase(this, _initChunks)[_initChunks]();\n  }\n  start() {\n    if (_classPrivateFieldLooseBase(this, _uploadHasStarted)[_uploadHasStarted]) {\n      if (!_classPrivateFieldLooseBase(this, _abortController)[_abortController].signal.aborted) _classPrivateFieldLooseBase(this, _abortController)[_abortController].abort(pausingUploadReason);\n      _classPrivateFieldLooseBase(this, _abortController)[_abortController] = new AbortController();\n      _classPrivateFieldLooseBase(this, _resumeUpload)[_resumeUpload]();\n    } else if (_classPrivateFieldLooseBase(this, _isRestoring)[_isRestoring]) {\n      this.options.companionComm.restoreUploadFile(_classPrivateFieldLooseBase(this, _file)[_file], {\n        uploadId: this.options.uploadId,\n        key: this.options.key\n      });\n      _classPrivateFieldLooseBase(this, _resumeUpload)[_resumeUpload]();\n    } else {\n      _classPrivateFieldLooseBase(this, _createUpload)[_createUpload]();\n    }\n  }\n  pause() {\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController].abort(pausingUploadReason);\n    // Swap it out for a new controller, because this instance may be resumed later.\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController] = new AbortController();\n  }\n  abort(opts) {\n    var _opts;\n    if (opts === void 0) {\n      opts = undefined;\n    }\n    if ((_opts = opts) != null && _opts.really) _classPrivateFieldLooseBase(this, _abortUpload)[_abortUpload]();else this.pause();\n  }\n\n  // TODO: remove this in the next major\n  get chunkState() {\n    return _classPrivateFieldLooseBase(this, _chunkState)[_chunkState];\n  }\n}\nfunction _initChunks2() {\n  const fileSize = _classPrivateFieldLooseBase(this, _data)[_data].size;\n  const shouldUseMultipart = typeof _classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart] === 'function' ? _classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart](_classPrivateFieldLooseBase(this, _file)[_file]) : Boolean(_classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart]);\n  if (shouldUseMultipart && fileSize > _classPrivateFieldLooseBase(this, _minPartSize)[_minPartSize]) {\n    // At least 5MB per request:\n    let chunkSize = Math.max(this.options.getChunkSize(_classPrivateFieldLooseBase(this, _data)[_data]), _classPrivateFieldLooseBase(this, _minPartSize)[_minPartSize]);\n    let arraySize = Math.floor(fileSize / chunkSize);\n\n    // At most 10k requests per file:\n    if (arraySize > _classPrivateFieldLooseBase(this, _maxMultipartParts)[_maxMultipartParts]) {\n      arraySize = _classPrivateFieldLooseBase(this, _maxMultipartParts)[_maxMultipartParts];\n      chunkSize = fileSize / _classPrivateFieldLooseBase(this, _maxMultipartParts)[_maxMultipartParts];\n    }\n    _classPrivateFieldLooseBase(this, _chunks)[_chunks] = Array(arraySize);\n    for (let offset = 0, j = 0; offset < fileSize; offset += chunkSize, j++) {\n      const end = Math.min(fileSize, offset + chunkSize);\n\n      // Defer data fetching/slicing until we actually need the data, because it's slow if we have a lot of files\n      const getData = () => {\n        const i2 = offset;\n        return _classPrivateFieldLooseBase(this, _data)[_data].slice(i2, end);\n      };\n      _classPrivateFieldLooseBase(this, _chunks)[_chunks][j] = {\n        getData,\n        onProgress: _classPrivateFieldLooseBase(this, _onPartProgress)[_onPartProgress](j),\n        onComplete: _classPrivateFieldLooseBase(this, _onPartComplete)[_onPartComplete](j),\n        shouldUseMultipart\n      };\n      if (_classPrivateFieldLooseBase(this, _isRestoring)[_isRestoring]) {\n        const size = offset + chunkSize > fileSize ? fileSize - offset : chunkSize;\n        // setAsUploaded is called by listPart, to keep up-to-date the\n        // quantity of data that is left to actually upload.\n        _classPrivateFieldLooseBase(this, _chunks)[_chunks][j].setAsUploaded = () => {\n          _classPrivateFieldLooseBase(this, _chunks)[_chunks][j] = null;\n          _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][j].uploaded = size;\n        };\n      }\n    }\n  } else {\n    _classPrivateFieldLooseBase(this, _chunks)[_chunks] = [{\n      getData: () => _classPrivateFieldLooseBase(this, _data)[_data],\n      onProgress: _classPrivateFieldLooseBase(this, _onPartProgress)[_onPartProgress](0),\n      onComplete: _classPrivateFieldLooseBase(this, _onPartComplete)[_onPartComplete](0),\n      shouldUseMultipart\n    }];\n  }\n  _classPrivateFieldLooseBase(this, _chunkState)[_chunkState] = _classPrivateFieldLooseBase(this, _chunks)[_chunks].map(() => ({\n    uploaded: 0\n  }));\n}\nfunction _createUpload2() {\n  this.options.companionComm.uploadFile(_classPrivateFieldLooseBase(this, _file)[_file], _classPrivateFieldLooseBase(this, _chunks)[_chunks], _classPrivateFieldLooseBase(this, _abortController)[_abortController].signal).then(_classPrivateFieldLooseBase(this, _onSuccess)[_onSuccess], _classPrivateFieldLooseBase(this, _onReject)[_onReject]);\n  _classPrivateFieldLooseBase(this, _uploadHasStarted)[_uploadHasStarted] = true;\n}\nfunction _resumeUpload2() {\n  this.options.companionComm.resumeUploadFile(_classPrivateFieldLooseBase(this, _file)[_file], _classPrivateFieldLooseBase(this, _chunks)[_chunks], _classPrivateFieldLooseBase(this, _abortController)[_abortController].signal).then(_classPrivateFieldLooseBase(this, _onSuccess)[_onSuccess], _classPrivateFieldLooseBase(this, _onReject)[_onReject]);\n}\nfunction _abortUpload2() {\n  _classPrivateFieldLooseBase(this, _abortController)[_abortController].abort();\n  this.options.companionComm.abortFileUpload(_classPrivateFieldLooseBase(this, _file)[_file]).catch(err => this.options.log(err));\n}\nexport default MultipartUploader;", "/**\n * Create a canonical request by concatenating the following strings, separated\n * by newline characters. This helps ensure that the signature that you\n * calculate and the signature that AWS calculates can match.\n *\n * @see https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request\n *\n * @param {object} param0\n * @param {string} param0.method \u2013 The HTTP method.\n * @param {string} param0.CanonicalUri \u2013 The URI-encoded version of the absolute\n * path component URL (everything between the host and the question mark\n * character (?) that starts the query string parameters). If the absolute path\n * is empty, use a forward slash character (/).\n * @param {string} param0.CanonicalQueryString \u2013 The URL-encoded query string\n * parameters, separated by ampersands (&). Percent-encode reserved characters,\n * including the space character. Encode names and values separately. If there\n * are empty parameters, append the equals sign to the parameter name before\n * encoding. After encoding, sort the parameters alphabetically by key name. If\n * there is no query string, use an empty string (\"\").\n * @param {Record<string, string>} param0.SignedHeaders \u2013 The request headers,\n * that will be signed, and their values, separated by newline characters.\n * For the values, trim any leading or trailing spaces, convert sequential\n * spaces to a single space, and separate the values for a multi-value header\n * using commas. You must include the host header (HTTP/1.1), and any x-amz-*\n * headers in the signature. You can optionally include other standard headers\n * in the signature, such as content-type.\n * @param {string} param0.HashedPayload \u2013 A string created using the payload in\n * the body of the HTTP request as input to a hash function. This string uses\n * lowercase hexadecimal characters. If the payload is empty, use an empty\n * string as the input to the hash function.\n * @returns {string}\n */\nfunction createCanonicalRequest(_ref) {\n  let {\n    method = 'PUT',\n    CanonicalUri = '/',\n    CanonicalQueryString = '',\n    SignedHeaders,\n    HashedPayload\n  } = _ref;\n  const headerKeys = Object.keys(SignedHeaders).map(k => k.toLowerCase()).sort();\n  return [method, CanonicalUri, CanonicalQueryString, ...headerKeys.map(k => `${k}:${SignedHeaders[k]}`), '', headerKeys.join(';'), HashedPayload].join('\\n');\n}\nconst ec = new TextEncoder();\nconst algorithm = {\n  name: 'HMAC',\n  hash: 'SHA-256'\n};\nasync function digest(data) {\n  const {\n    subtle\n  } = globalThis.crypto;\n  return subtle.digest(algorithm.hash, ec.encode(data));\n}\nasync function generateHmacKey(secret) {\n  const {\n    subtle\n  } = globalThis.crypto;\n  return subtle.importKey('raw', typeof secret === 'string' ? ec.encode(secret) : secret, algorithm, false, ['sign']);\n}\nfunction arrayBufferToHexString(arrayBuffer) {\n  const byteArray = new Uint8Array(arrayBuffer);\n  let hexString = '';\n  for (let i = 0; i < byteArray.length; i++) {\n    hexString += byteArray[i].toString(16).padStart(2, '0');\n  }\n  return hexString;\n}\nasync function hash(key, data) {\n  const {\n    subtle\n  } = globalThis.crypto;\n  return subtle.sign(algorithm, await generateHmacKey(key), ec.encode(data));\n}\n\n/**\n * @see https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html\n * @param {Record<string,string>} param0\n * @returns {Promise<URL>} the signed URL\n */\nexport default async function createSignedURL(_ref2) {\n  let {\n    accountKey,\n    accountSecret,\n    sessionToken,\n    bucketName,\n    Key,\n    Region,\n    expires,\n    uploadId,\n    partNumber\n  } = _ref2;\n  const Service = 's3';\n  const host = `${bucketName}.${Service}.${Region}.amazonaws.com`;\n  const CanonicalUri = `/${encodeURI(Key)}`;\n  const payload = 'UNSIGNED-PAYLOAD';\n  const requestDateTime = new Date().toISOString().replace(/[-:]|\\.\\d+/g, ''); // YYYYMMDDTHHMMSSZ\n  const date = requestDateTime.slice(0, 8); // YYYYMMDD\n  const scope = `${date}/${Region}/${Service}/aws4_request`;\n  const url = new URL(`https://${host}${CanonicalUri}`);\n  // N.B.: URL search params needs to be added in the ASCII order\n  url.searchParams.set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256');\n  url.searchParams.set('X-Amz-Content-Sha256', payload);\n  url.searchParams.set('X-Amz-Credential', `${accountKey}/${scope}`);\n  url.searchParams.set('X-Amz-Date', requestDateTime);\n  url.searchParams.set('X-Amz-Expires', expires);\n  // We are signing on the client, so we expect there's going to be a session token:\n  url.searchParams.set('X-Amz-Security-Token', sessionToken);\n  url.searchParams.set('X-Amz-SignedHeaders', 'host');\n  // Those two are present only for Multipart Uploads:\n  if (partNumber) url.searchParams.set('partNumber', partNumber);\n  if (uploadId) url.searchParams.set('uploadId', uploadId);\n  url.searchParams.set('x-id', partNumber && uploadId ? 'UploadPart' : 'PutObject');\n\n  // Step 1: Create a canonical request\n  const canonical = createCanonicalRequest({\n    CanonicalUri,\n    CanonicalQueryString: url.search.slice(1),\n    SignedHeaders: {\n      host\n    },\n    HashedPayload: payload\n  });\n\n  // Step 2: Create a hash of the canonical request\n  const hashedCanonical = arrayBufferToHexString(await digest(canonical));\n\n  // Step 3: Create a string to sign\n  const stringToSign = [`AWS4-HMAC-SHA256`,\n  // The algorithm used to create the hash of the canonical request.\n  requestDateTime,\n  // The date and time used in the credential scope.\n  scope,\n  // The credential scope. This restricts the resulting signature to the specified Region and service.\n  hashedCanonical // The hash of the canonical request.\n  ].join('\\n');\n\n  // Step 4: Calculate the signature\n  const kDate = await hash(`AWS4${accountSecret}`, date);\n  const kRegion = await hash(kDate, Region);\n  const kService = await hash(kRegion, Service);\n  const kSigning = await hash(kService, 'aws4_request');\n  const signature = arrayBufferToHexString(await hash(kSigning, stringToSign));\n\n  // Step 5: Add the signature to the request\n  url.searchParams.set('X-Amz-Signature', signature);\n  return url;\n}", "let _Symbol$for;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport BasePlugin from '@uppy/core/lib/BasePlugin.js';\nimport { RequestClient } from '@uppy/companion-client';\nimport EventManager from '@uppy/utils/lib/EventManager';\nimport { RateLimitedQueue } from '@uppy/utils/lib/RateLimitedQueue';\nimport { filterNonFailedFiles, filterFilesToEmitUploadStarted } from '@uppy/utils/lib/fileFilters';\nimport { createAbortError } from '@uppy/utils/lib/AbortController';\nimport MultipartUploader, { pausingUploadReason } from './MultipartUploader.js';\nimport createSignedURL from './createSignedURL.js';\nconst packageJson = {\n  \"version\": \"3.10.2\"\n};\nfunction assertServerError(res) {\n  if (res && res.error) {\n    const error = new Error(res.message);\n    Object.assign(error, res.error);\n    throw error;\n  }\n  return res;\n}\nfunction removeMetadataFromURL(urlString) {\n  const urlObject = new URL(urlString);\n  urlObject.search = '';\n  urlObject.hash = '';\n  return urlObject.href;\n}\n\n/**\n * Computes the expiry time for a request signed with temporary credentials. If\n * no expiration was provided, or an invalid value (e.g. in the past) is\n * provided, undefined is returned. This function assumes the client clock is in\n * sync with the remote server, which is a requirement for the signature to be\n * validated for AWS anyway.\n *\n * @param {import('../types/index.js').AwsS3STSResponse['credentials']} credentials\n * @returns {number | undefined}\n */\nfunction getExpiry(credentials) {\n  const expirationDate = credentials.Expiration;\n  if (expirationDate) {\n    const timeUntilExpiry = Math.floor((new Date(expirationDate) - Date.now()) / 1000);\n    if (timeUntilExpiry > 9) {\n      return timeUntilExpiry;\n    }\n  }\n  return undefined;\n}\nfunction getAllowedMetadata(_ref) {\n  let {\n    meta,\n    allowedMetaFields,\n    querify = false\n  } = _ref;\n  const metaFields = allowedMetaFields != null ? allowedMetaFields : Object.keys(meta);\n  if (!meta) return {};\n  return Object.fromEntries(metaFields.filter(key => meta[key] != null).map(key => {\n    const realKey = querify ? `metadata[${key}]` : key;\n    const value = String(meta[key]);\n    return [realKey, value];\n  }));\n}\nfunction throwIfAborted(signal) {\n  if (signal != null && signal.aborted) {\n    throw createAbortError('The operation was aborted', {\n      cause: signal.reason\n    });\n  }\n}\nvar _abortMultipartUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortMultipartUpload\");\nvar _cache = /*#__PURE__*/_classPrivateFieldLooseKey(\"cache\");\nvar _createMultipartUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createMultipartUpload\");\nvar _fetchSignature = /*#__PURE__*/_classPrivateFieldLooseKey(\"fetchSignature\");\nvar _getUploadParameters = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUploadParameters\");\nvar _listParts = /*#__PURE__*/_classPrivateFieldLooseKey(\"listParts\");\nvar _previousRetryDelay = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousRetryDelay\");\nvar _requests = /*#__PURE__*/_classPrivateFieldLooseKey(\"requests\");\nvar _retryDelays = /*#__PURE__*/_classPrivateFieldLooseKey(\"retryDelays\");\nvar _sendCompletionRequest = /*#__PURE__*/_classPrivateFieldLooseKey(\"sendCompletionRequest\");\nvar _setS3MultipartState = /*#__PURE__*/_classPrivateFieldLooseKey(\"setS3MultipartState\");\nvar _uploadPartBytes = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploadPartBytes\");\nvar _getFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"getFile\");\nvar _shouldRetry = /*#__PURE__*/_classPrivateFieldLooseKey(\"shouldRetry\");\nvar _nonMultipartUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"nonMultipartUpload\");\nclass HTTPCommunicationQueue {\n  constructor(_requests2, options, setS3MultipartState, getFile) {\n    Object.defineProperty(this, _nonMultipartUpload, {\n      value: _nonMultipartUpload2\n    });\n    Object.defineProperty(this, _shouldRetry, {\n      value: _shouldRetry2\n    });\n    Object.defineProperty(this, _abortMultipartUpload, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _cache, {\n      writable: true,\n      value: new WeakMap()\n    });\n    Object.defineProperty(this, _createMultipartUpload, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _fetchSignature, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _getUploadParameters, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _listParts, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousRetryDelay, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _requests, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _retryDelays, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _sendCompletionRequest, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _setS3MultipartState, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _uploadPartBytes, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _getFile, {\n      writable: true,\n      value: void 0\n    });\n    _classPrivateFieldLooseBase(this, _requests)[_requests] = _requests2;\n    _classPrivateFieldLooseBase(this, _setS3MultipartState)[_setS3MultipartState] = setS3MultipartState;\n    _classPrivateFieldLooseBase(this, _getFile)[_getFile] = getFile;\n    this.setOptions(options);\n  }\n  setOptions(options) {\n    const requests = _classPrivateFieldLooseBase(this, _requests)[_requests];\n    if ('abortMultipartUpload' in options) {\n      _classPrivateFieldLooseBase(this, _abortMultipartUpload)[_abortMultipartUpload] = requests.wrapPromiseFunction(options.abortMultipartUpload, {\n        priority: 1\n      });\n    }\n    if ('createMultipartUpload' in options) {\n      _classPrivateFieldLooseBase(this, _createMultipartUpload)[_createMultipartUpload] = requests.wrapPromiseFunction(options.createMultipartUpload, {\n        priority: -1\n      });\n    }\n    if ('signPart' in options) {\n      _classPrivateFieldLooseBase(this, _fetchSignature)[_fetchSignature] = requests.wrapPromiseFunction(options.signPart);\n    }\n    if ('listParts' in options) {\n      _classPrivateFieldLooseBase(this, _listParts)[_listParts] = requests.wrapPromiseFunction(options.listParts);\n    }\n    if ('completeMultipartUpload' in options) {\n      _classPrivateFieldLooseBase(this, _sendCompletionRequest)[_sendCompletionRequest] = requests.wrapPromiseFunction(options.completeMultipartUpload, {\n        priority: 1\n      });\n    }\n    if ('retryDelays' in options) {\n      var _options$retryDelays;\n      _classPrivateFieldLooseBase(this, _retryDelays)[_retryDelays] = (_options$retryDelays = options.retryDelays) != null ? _options$retryDelays : [];\n    }\n    if ('uploadPartBytes' in options) {\n      _classPrivateFieldLooseBase(this, _uploadPartBytes)[_uploadPartBytes] = requests.wrapPromiseFunction(options.uploadPartBytes, {\n        priority: Infinity\n      });\n    }\n    if ('getUploadParameters' in options) {\n      _classPrivateFieldLooseBase(this, _getUploadParameters)[_getUploadParameters] = requests.wrapPromiseFunction(options.getUploadParameters);\n    }\n  }\n  async getUploadId(file, signal) {\n    let cachedResult;\n    // As the cache is updated asynchronously, there could be a race condition\n    // where we just miss a new result so we loop here until we get nothing back,\n    // at which point it's out turn to create a new cache entry.\n    while ((cachedResult = _classPrivateFieldLooseBase(this, _cache)[_cache].get(file.data)) != null) {\n      try {\n        return await cachedResult;\n      } catch {\n        // In case of failure, we want to ignore the cached error.\n        // At this point, either there's a new cached value, or we'll exit the loop a create a new one.\n      }\n    }\n    const promise = _classPrivateFieldLooseBase(this, _createMultipartUpload)[_createMultipartUpload](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), signal);\n    const abortPromise = () => {\n      promise.abort(signal.reason);\n      _classPrivateFieldLooseBase(this, _cache)[_cache].delete(file.data);\n    };\n    signal.addEventListener('abort', abortPromise, {\n      once: true\n    });\n    _classPrivateFieldLooseBase(this, _cache)[_cache].set(file.data, promise);\n    promise.then(async result => {\n      signal.removeEventListener('abort', abortPromise);\n      _classPrivateFieldLooseBase(this, _setS3MultipartState)[_setS3MultipartState](file, result);\n      _classPrivateFieldLooseBase(this, _cache)[_cache].set(file.data, result);\n    }, () => {\n      signal.removeEventListener('abort', abortPromise);\n      _classPrivateFieldLooseBase(this, _cache)[_cache].delete(file.data);\n    });\n    return promise;\n  }\n  async abortFileUpload(file) {\n    const result = _classPrivateFieldLooseBase(this, _cache)[_cache].get(file.data);\n    if (result == null) {\n      // If the createMultipartUpload request never was made, we don't\n      // need to send the abortMultipartUpload request.\n      return;\n    }\n    // Remove the cache entry right away for follow-up requests do not try to\n    // use the soon-to-be aborted chached values.\n    _classPrivateFieldLooseBase(this, _cache)[_cache].delete(file.data);\n    _classPrivateFieldLooseBase(this, _setS3MultipartState)[_setS3MultipartState](file, Object.create(null));\n    let awaitedResult;\n    try {\n      awaitedResult = await result;\n    } catch {\n      // If the cached result rejects, there's nothing to abort.\n      return;\n    }\n    await _classPrivateFieldLooseBase(this, _abortMultipartUpload)[_abortMultipartUpload](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), awaitedResult);\n  }\n  /**\n   * @param {import(\"@uppy/core\").UppyFile} file\n   * @param {import(\"../types/chunk\").Chunk[]} chunks\n   * @param {AbortSignal} signal\n   * @returns {Promise<void>}\n   */\n  async uploadFile(file, chunks, signal) {\n    throwIfAborted(signal);\n    if (chunks.length === 1 && !chunks[0].shouldUseMultipart) {\n      return _classPrivateFieldLooseBase(this, _nonMultipartUpload)[_nonMultipartUpload](file, chunks[0], signal);\n    }\n    const {\n      uploadId,\n      key\n    } = await this.getUploadId(file, signal);\n    throwIfAborted(signal);\n    try {\n      const parts = await Promise.all(chunks.map((chunk, i) => this.uploadChunk(file, i + 1, chunk, signal)));\n      throwIfAborted(signal);\n      return await _classPrivateFieldLooseBase(this, _sendCompletionRequest)[_sendCompletionRequest](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n        key,\n        uploadId,\n        parts,\n        signal\n      }, signal).abortOn(signal);\n    } catch (err) {\n      if ((err == null ? void 0 : err.cause) !== pausingUploadReason && (err == null ? void 0 : err.name) !== 'AbortError') {\n        // We purposefully don't wait for the promise and ignore its status,\n        // because we want the error `err` to bubble up ASAP to report it to the\n        // user. A failure to abort is not that big of a deal anyway.\n        this.abortFileUpload(file);\n      }\n      throw err;\n    }\n  }\n  restoreUploadFile(file, uploadIdAndKey) {\n    _classPrivateFieldLooseBase(this, _cache)[_cache].set(file.data, uploadIdAndKey);\n  }\n  async resumeUploadFile(file, chunks, signal) {\n    throwIfAborted(signal);\n    if (chunks.length === 1 && chunks[0] != null && !chunks[0].shouldUseMultipart) {\n      return _classPrivateFieldLooseBase(this, _nonMultipartUpload)[_nonMultipartUpload](file, chunks[0], signal);\n    }\n    const {\n      uploadId,\n      key\n    } = await this.getUploadId(file, signal);\n    throwIfAborted(signal);\n    const alreadyUploadedParts = await _classPrivateFieldLooseBase(this, _listParts)[_listParts](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n      uploadId,\n      key,\n      signal\n    }, signal).abortOn(signal);\n    throwIfAborted(signal);\n    const parts = await Promise.all(chunks.map((chunk, i) => {\n      const partNumber = i + 1;\n      const alreadyUploadedInfo = alreadyUploadedParts.find(_ref2 => {\n        let {\n          PartNumber\n        } = _ref2;\n        return PartNumber === partNumber;\n      });\n      if (alreadyUploadedInfo == null) {\n        return this.uploadChunk(file, partNumber, chunk, signal);\n      }\n      // Already uploaded chunks are set to null. If we are restoring the upload, we need to mark it as already uploaded.\n      chunk == null || chunk.setAsUploaded == null || chunk.setAsUploaded();\n      return {\n        PartNumber: partNumber,\n        ETag: alreadyUploadedInfo.ETag\n      };\n    }));\n    throwIfAborted(signal);\n    return _classPrivateFieldLooseBase(this, _sendCompletionRequest)[_sendCompletionRequest](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n      key,\n      uploadId,\n      parts,\n      signal\n    }, signal).abortOn(signal);\n  }\n\n  /**\n   *\n   * @param {import(\"@uppy/core\").UppyFile} file\n   * @param {number} partNumber\n   * @param {import(\"../types/chunk\").Chunk} chunk\n   * @param {AbortSignal} signal\n   * @returns {Promise<object>}\n   */\n  async uploadChunk(file, partNumber, chunk, signal) {\n    throwIfAborted(signal);\n    const {\n      uploadId,\n      key\n    } = await this.getUploadId(file, signal);\n    const signatureRetryIterator = _classPrivateFieldLooseBase(this, _retryDelays)[_retryDelays].values();\n    const chunkRetryIterator = _classPrivateFieldLooseBase(this, _retryDelays)[_retryDelays].values();\n    const shouldRetrySignature = () => {\n      const next = signatureRetryIterator.next();\n      if (next == null || next.done) {\n        return null;\n      }\n      return next.value;\n    };\n    for (;;) {\n      throwIfAborted(signal);\n      const chunkData = chunk.getData();\n      const {\n        onProgress,\n        onComplete\n      } = chunk;\n      let signature;\n      try {\n        signature = await _classPrivateFieldLooseBase(this, _fetchSignature)[_fetchSignature](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n          uploadId,\n          key,\n          partNumber,\n          body: chunkData,\n          signal\n        }).abortOn(signal);\n      } catch (err) {\n        const timeout = shouldRetrySignature();\n        if (timeout == null || signal.aborted) {\n          throw err;\n        }\n        await new Promise(resolve => setTimeout(resolve, timeout));\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n      throwIfAborted(signal);\n      try {\n        return {\n          PartNumber: partNumber,\n          ...(await _classPrivateFieldLooseBase(this, _uploadPartBytes)[_uploadPartBytes]({\n            signature,\n            body: chunkData,\n            size: chunkData.size,\n            onProgress,\n            onComplete,\n            signal\n          }).abortOn(signal))\n        };\n      } catch (err) {\n        if (!(await _classPrivateFieldLooseBase(this, _shouldRetry)[_shouldRetry](err, chunkRetryIterator))) throw err;\n      }\n    }\n  }\n}\nasync function _shouldRetry2(err, retryDelayIterator) {\n  var _err$source;\n  const requests = _classPrivateFieldLooseBase(this, _requests)[_requests];\n  const status = err == null || (_err$source = err.source) == null ? void 0 : _err$source.status;\n\n  // TODO: this retry logic is taken out of Tus. We should have a centralized place for retrying,\n  // perhaps the rate limited queue, and dedupe all plugins with that.\n  if (status == null) {\n    return false;\n  }\n  if (status === 403 && err.message === 'Request has expired') {\n    if (!requests.isPaused) {\n      // We don't want to exhaust the retryDelayIterator as long as there are\n      // more than one request in parallel, to give slower connection a chance\n      // to catch up with the expiry set in Companion.\n      if (requests.limit === 1 || _classPrivateFieldLooseBase(this, _previousRetryDelay)[_previousRetryDelay] == null) {\n        const next = retryDelayIterator.next();\n        if (next == null || next.done) {\n          return false;\n        }\n        // If there are more than 1 request done in parallel, the RLQ limit is\n        // decreased and the failed request is requeued after waiting for a bit.\n        // If there is only one request in parallel, the limit can't be\n        // decreased, so we iterate over `retryDelayIterator` as we do for\n        // other failures.\n        // `#previousRetryDelay` caches the value so we can re-use it next time.\n        _classPrivateFieldLooseBase(this, _previousRetryDelay)[_previousRetryDelay] = next.value;\n      }\n      // No need to stop the other requests, we just want to lower the limit.\n      requests.rateLimit(0);\n      await new Promise(resolve => setTimeout(resolve, _classPrivateFieldLooseBase(this, _previousRetryDelay)[_previousRetryDelay]));\n    }\n  } else if (status === 429) {\n    // HTTP 429 Too Many Requests => to avoid the whole download to fail, pause all requests.\n    if (!requests.isPaused) {\n      const next = retryDelayIterator.next();\n      if (next == null || next.done) {\n        return false;\n      }\n      requests.rateLimit(next.value);\n    }\n  } else if (status > 400 && status < 500 && status !== 409) {\n    // HTTP 4xx, the server won't send anything, it's doesn't make sense to retry\n    return false;\n  } else if (typeof navigator !== 'undefined' && navigator.onLine === false) {\n    // The navigator is offline, let's wait for it to come back online.\n    if (!requests.isPaused) {\n      requests.pause();\n      window.addEventListener('online', () => {\n        requests.resume();\n      }, {\n        once: true\n      });\n    }\n  } else {\n    // Other error code means the request can be retried later.\n    const next = retryDelayIterator.next();\n    if (next == null || next.done) {\n      return false;\n    }\n    await new Promise(resolve => setTimeout(resolve, next.value));\n  }\n  return true;\n}\nasync function _nonMultipartUpload2(file, chunk, signal) {\n  const {\n    method = 'POST',\n    url,\n    fields,\n    headers\n  } = await _classPrivateFieldLooseBase(this, _getUploadParameters)[_getUploadParameters](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n    signal\n  }).abortOn(signal);\n  let body;\n  const data = chunk.getData();\n  if (method.toUpperCase() === 'POST') {\n    const formData = new FormData();\n    Object.entries(fields).forEach(_ref10 => {\n      let [key, value] = _ref10;\n      return formData.set(key, value);\n    });\n    formData.set('file', data);\n    body = formData;\n  } else {\n    body = data;\n  }\n  const {\n    onProgress,\n    onComplete\n  } = chunk;\n  const result = await _classPrivateFieldLooseBase(this, _uploadPartBytes)[_uploadPartBytes]({\n    signature: {\n      url,\n      headers,\n      method\n    },\n    body,\n    size: data.size,\n    onProgress,\n    onComplete,\n    signal\n  }).abortOn(signal);\n  return 'location' in result ? result : {\n    location: removeMetadataFromURL(url),\n    ...result\n  };\n}\nvar _companionCommunicationQueue = /*#__PURE__*/_classPrivateFieldLooseKey(\"companionCommunicationQueue\");\nvar _client = /*#__PURE__*/_classPrivateFieldLooseKey(\"client\");\nvar _cachedTemporaryCredentials = /*#__PURE__*/_classPrivateFieldLooseKey(\"cachedTemporaryCredentials\");\nvar _getTemporarySecurityCredentials = /*#__PURE__*/_classPrivateFieldLooseKey(\"getTemporarySecurityCredentials\");\nvar _setS3MultipartState2 = /*#__PURE__*/_classPrivateFieldLooseKey(\"setS3MultipartState\");\nvar _getFile2 = /*#__PURE__*/_classPrivateFieldLooseKey(\"getFile\");\nvar _uploadLocalFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploadLocalFile\");\nvar _getCompanionClientArgs = /*#__PURE__*/_classPrivateFieldLooseKey(\"getCompanionClientArgs\");\nvar _upload = /*#__PURE__*/_classPrivateFieldLooseKey(\"upload\");\nvar _setCompanionHeaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"setCompanionHeaders\");\nvar _setResumableUploadsCapability = /*#__PURE__*/_classPrivateFieldLooseKey(\"setResumableUploadsCapability\");\nvar _resetResumableCapability = /*#__PURE__*/_classPrivateFieldLooseKey(\"resetResumableCapability\");\n_Symbol$for = Symbol.for('uppy test: getClient');\nexport default class AwsS3Multipart extends BasePlugin {\n  constructor(uppy, opts) {\n    var _this$opts$rateLimite;\n    super(uppy, opts);\n    // eslint-disable-next-line class-methods-use-this\n    Object.defineProperty(this, _getCompanionClientArgs, {\n      value: _getCompanionClientArgs2\n    });\n    Object.defineProperty(this, _uploadLocalFile, {\n      value: _uploadLocalFile2\n    });\n    Object.defineProperty(this, _getTemporarySecurityCredentials, {\n      value: _getTemporarySecurityCredentials2\n    });\n    Object.defineProperty(this, _companionCommunicationQueue, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _client, {\n      writable: true,\n      value: void 0\n    });\n    /**\n     * @type {import(\"../types\").AwsS3STSResponse | Promise<import(\"../types\").AwsS3STSResponse>}\n     */\n    Object.defineProperty(this, _cachedTemporaryCredentials, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _setS3MultipartState2, {\n      writable: true,\n      value: (file, _ref3) => {\n        let {\n          key,\n          uploadId\n        } = _ref3;\n        const cFile = this.uppy.getFile(file.id);\n        if (cFile == null) {\n          // file was removed from store\n          return;\n        }\n        this.uppy.setFileState(file.id, {\n          s3Multipart: {\n            ...cFile.s3Multipart,\n            key,\n            uploadId\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _getFile2, {\n      writable: true,\n      value: file => {\n        return this.uppy.getFile(file.id) || file;\n      }\n    });\n    Object.defineProperty(this, _upload, {\n      writable: true,\n      value: async fileIDs => {\n        if (fileIDs.length === 0) return undefined;\n        const files = this.uppy.getFilesByIds(fileIDs);\n        const filesFiltered = filterNonFailedFiles(files);\n        const filesToEmit = filterFilesToEmitUploadStarted(filesFiltered);\n        this.uppy.emit('upload-start', filesToEmit);\n        const promises = filesFiltered.map(file => {\n          if (file.isRemote) {\n            const getQueue = () => this.requests;\n            _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](false);\n            const controller = new AbortController();\n            const removedHandler = removedFile => {\n              if (removedFile.id === file.id) controller.abort();\n            };\n            this.uppy.on('file-removed', removedHandler);\n            const uploadPromise = this.uppy.getRequestClientForFile(file).uploadRemoteFile(file, _classPrivateFieldLooseBase(this, _getCompanionClientArgs)[_getCompanionClientArgs](file), {\n              signal: controller.signal,\n              getQueue\n            });\n            this.requests.wrapSyncFunction(() => {\n              this.uppy.off('file-removed', removedHandler);\n            }, {\n              priority: -1\n            })();\n            return uploadPromise;\n          }\n          return _classPrivateFieldLooseBase(this, _uploadLocalFile)[_uploadLocalFile](file);\n        });\n        const upload = await Promise.all(promises);\n        // After the upload is done, another upload may happen with only local files.\n        // We reset the capability so that the next upload can use resumable uploads.\n        _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](true);\n        return upload;\n      }\n    });\n    Object.defineProperty(this, _setCompanionHeaders, {\n      writable: true,\n      value: () => {\n        _classPrivateFieldLooseBase(this, _client)[_client].setCompanionHeaders(this.opts.companionHeaders);\n      }\n    });\n    Object.defineProperty(this, _setResumableUploadsCapability, {\n      writable: true,\n      value: boolean => {\n        const {\n          capabilities\n        } = this.uppy.getState();\n        this.uppy.setState({\n          capabilities: {\n            ...capabilities,\n            resumableUploads: boolean\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _resetResumableCapability, {\n      writable: true,\n      value: () => {\n        _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](true);\n      }\n    });\n    this.type = 'uploader';\n    this.id = this.opts.id || 'AwsS3Multipart';\n    this.title = 'AWS S3 Multipart';\n    _classPrivateFieldLooseBase(this, _client)[_client] = new RequestClient(uppy, opts);\n    const defaultOptions = {\n      // TODO: null here means \u201Cinclude all\u201D, [] means include none.\n      // This is inconsistent with @uppy/aws-s3 and @uppy/transloadit\n      allowedMetaFields: null,\n      limit: 6,\n      shouldUseMultipart: file => file.size !== 0,\n      // TODO: Switch default to:\n      // eslint-disable-next-line no-bitwise\n      // shouldUseMultipart: (file) => file.size >> 10 >> 10 > 100,\n      retryDelays: [0, 1000, 3000, 5000],\n      createMultipartUpload: this.createMultipartUpload.bind(this),\n      listParts: this.listParts.bind(this),\n      abortMultipartUpload: this.abortMultipartUpload.bind(this),\n      completeMultipartUpload: this.completeMultipartUpload.bind(this),\n      getTemporarySecurityCredentials: false,\n      signPart: opts != null && opts.getTemporarySecurityCredentials ? this.createSignedURL.bind(this) : this.signPart.bind(this),\n      uploadPartBytes: AwsS3Multipart.uploadPartBytes,\n      getUploadParameters: opts != null && opts.getTemporarySecurityCredentials ? this.createSignedURL.bind(this) : this.getUploadParameters.bind(this),\n      companionHeaders: {}\n    };\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    if ((opts == null ? void 0 : opts.prepareUploadParts) != null && opts.signPart == null) {\n      this.opts.signPart = async (file, _ref4) => {\n        let {\n          uploadId,\n          key,\n          partNumber,\n          body,\n          signal\n        } = _ref4;\n        const {\n          presignedUrls,\n          headers\n        } = await opts.prepareUploadParts(file, {\n          uploadId,\n          key,\n          parts: [{\n            number: partNumber,\n            chunk: body\n          }],\n          signal\n        });\n        return {\n          url: presignedUrls == null ? void 0 : presignedUrls[partNumber],\n          headers: headers == null ? void 0 : headers[partNumber]\n        };\n      };\n    }\n\n    /**\n     * Simultaneous upload limiting is shared across all uploads with this plugin.\n     *\n     * @type {RateLimitedQueue}\n     */\n    this.requests = (_this$opts$rateLimite = this.opts.rateLimitedQueue) != null ? _this$opts$rateLimite : new RateLimitedQueue(this.opts.limit);\n    _classPrivateFieldLooseBase(this, _companionCommunicationQueue)[_companionCommunicationQueue] = new HTTPCommunicationQueue(this.requests, this.opts, _classPrivateFieldLooseBase(this, _setS3MultipartState2)[_setS3MultipartState2], _classPrivateFieldLooseBase(this, _getFile2)[_getFile2]);\n    this.uploaders = Object.create(null);\n    this.uploaderEvents = Object.create(null);\n    this.uploaderSockets = Object.create(null);\n  }\n  [_Symbol$for]() {\n    return _classPrivateFieldLooseBase(this, _client)[_client];\n  }\n  setOptions(newOptions) {\n    _classPrivateFieldLooseBase(this, _companionCommunicationQueue)[_companionCommunicationQueue].setOptions(newOptions);\n    super.setOptions(newOptions);\n    _classPrivateFieldLooseBase(this, _setCompanionHeaders)[_setCompanionHeaders]();\n  }\n\n  /**\n   * Clean up all references for a file's upload: the MultipartUploader instance,\n   * any events related to the file, and the Companion WebSocket connection.\n   *\n   * Set `opts.abort` to tell S3 that the multipart upload is cancelled and must be removed.\n   * This should be done when the user cancels the upload, not when the upload is completed or errored.\n   */\n  resetUploaderReferences(fileID, opts) {\n    if (opts === void 0) {\n      opts = {};\n    }\n    if (this.uploaders[fileID]) {\n      this.uploaders[fileID].abort({\n        really: opts.abort || false\n      });\n      this.uploaders[fileID] = null;\n    }\n    if (this.uploaderEvents[fileID]) {\n      this.uploaderEvents[fileID].remove();\n      this.uploaderEvents[fileID] = null;\n    }\n    if (this.uploaderSockets[fileID]) {\n      this.uploaderSockets[fileID].close();\n      this.uploaderSockets[fileID] = null;\n    }\n  }\n\n  // TODO: make this a private method in the next major\n  assertHost(method) {\n    if (!this.opts.companionUrl) {\n      throw new Error(`Expected a \\`companionUrl\\` option containing a Companion address, or if you are not using Companion, a custom \\`${method}\\` implementation.`);\n    }\n  }\n  createMultipartUpload(file, signal) {\n    this.assertHost('createMultipartUpload');\n    throwIfAborted(signal);\n    const metadata = getAllowedMetadata({\n      meta: file.meta,\n      allowedMetaFields: this.opts.allowedMetaFields\n    });\n    return _classPrivateFieldLooseBase(this, _client)[_client].post('s3/multipart', {\n      filename: file.name,\n      type: file.type,\n      metadata\n    }, {\n      signal\n    }).then(assertServerError);\n  }\n  listParts(file, _ref5, signal) {\n    let {\n      key,\n      uploadId\n    } = _ref5;\n    this.assertHost('listParts');\n    throwIfAborted(signal);\n    const filename = encodeURIComponent(key);\n    return _classPrivateFieldLooseBase(this, _client)[_client].get(`s3/multipart/${uploadId}?key=${filename}`, {\n      signal\n    }).then(assertServerError);\n  }\n  completeMultipartUpload(file, _ref6, signal) {\n    let {\n      key,\n      uploadId,\n      parts\n    } = _ref6;\n    this.assertHost('completeMultipartUpload');\n    throwIfAborted(signal);\n    const filename = encodeURIComponent(key);\n    const uploadIdEnc = encodeURIComponent(uploadId);\n    return _classPrivateFieldLooseBase(this, _client)[_client].post(`s3/multipart/${uploadIdEnc}/complete?key=${filename}`, {\n      parts\n    }, {\n      signal\n    }).then(assertServerError);\n  }\n  async createSignedURL(file, options) {\n    const data = await _classPrivateFieldLooseBase(this, _getTemporarySecurityCredentials)[_getTemporarySecurityCredentials](options);\n    const expires = getExpiry(data.credentials) || 604800; // 604 800 is the max value accepted by AWS.\n\n    const {\n      uploadId,\n      key,\n      partNumber,\n      signal\n    } = options;\n\n    // Return an object in the correct shape.\n    return {\n      method: 'PUT',\n      expires,\n      fields: {},\n      url: `${await createSignedURL({\n        accountKey: data.credentials.AccessKeyId,\n        accountSecret: data.credentials.SecretAccessKey,\n        sessionToken: data.credentials.SessionToken,\n        expires,\n        bucketName: data.bucket,\n        Region: data.region,\n        Key: key != null ? key : `${crypto.randomUUID()}-${file.name}`,\n        uploadId,\n        partNumber,\n        signal\n      })}`,\n      // Provide content type header required by S3\n      headers: {\n        'Content-Type': file.type\n      }\n    };\n  }\n  signPart(file, _ref7) {\n    let {\n      uploadId,\n      key,\n      partNumber,\n      signal\n    } = _ref7;\n    this.assertHost('signPart');\n    throwIfAborted(signal);\n    if (uploadId == null || key == null || partNumber == null) {\n      throw new Error('Cannot sign without a key, an uploadId, and a partNumber');\n    }\n    const filename = encodeURIComponent(key);\n    return _classPrivateFieldLooseBase(this, _client)[_client].get(`s3/multipart/${uploadId}/${partNumber}?key=${filename}`, {\n      signal\n    }).then(assertServerError);\n  }\n  abortMultipartUpload(file, _ref8, signal) {\n    let {\n      key,\n      uploadId\n    } = _ref8;\n    this.assertHost('abortMultipartUpload');\n    const filename = encodeURIComponent(key);\n    const uploadIdEnc = encodeURIComponent(uploadId);\n    return _classPrivateFieldLooseBase(this, _client)[_client].delete(`s3/multipart/${uploadIdEnc}?key=${filename}`, undefined, {\n      signal\n    }).then(assertServerError);\n  }\n  getUploadParameters(file, options) {\n    const {\n      meta\n    } = file;\n    const {\n      type,\n      name: filename\n    } = meta;\n    const metadata = getAllowedMetadata({\n      meta,\n      allowedMetaFields: this.opts.allowedMetaFields,\n      querify: true\n    });\n    const query = new URLSearchParams({\n      filename,\n      type,\n      ...metadata\n    });\n    return _classPrivateFieldLooseBase(this, _client)[_client].get(`s3/params?${query}`, options);\n  }\n  static async uploadPartBytes(_ref9) {\n    let {\n      signature: {\n        url,\n        expires,\n        headers,\n        method = 'PUT'\n      },\n      body,\n      size = body.size,\n      onProgress,\n      onComplete,\n      signal\n    } = _ref9;\n    throwIfAborted(signal);\n    if (url == null) {\n      throw new Error('Cannot upload to an undefined URL');\n    }\n    return new Promise((resolve, reject) => {\n      const xhr = new XMLHttpRequest();\n      xhr.open(method, url, true);\n      if (headers) {\n        Object.keys(headers).forEach(key => {\n          xhr.setRequestHeader(key, headers[key]);\n        });\n      }\n      xhr.responseType = 'text';\n      if (typeof expires === 'number') {\n        xhr.timeout = expires * 1000;\n      }\n      function onabort() {\n        xhr.abort();\n      }\n      function cleanup() {\n        signal.removeEventListener('abort', onabort);\n      }\n      signal.addEventListener('abort', onabort);\n      xhr.upload.addEventListener('progress', ev => {\n        onProgress(ev);\n      });\n      xhr.addEventListener('abort', () => {\n        cleanup();\n        reject(createAbortError());\n      });\n      xhr.addEventListener('timeout', () => {\n        cleanup();\n        const error = new Error('Request has expired');\n        error.source = {\n          status: 403\n        };\n        reject(error);\n      });\n      xhr.addEventListener('load', ev => {\n        cleanup();\n        if (ev.target.status === 403 && ev.target.responseText.includes('<Message>Request has expired</Message>')) {\n          const error = new Error('Request has expired');\n          error.source = ev.target;\n          reject(error);\n          return;\n        }\n        if (ev.target.status < 200 || ev.target.status >= 300) {\n          const error = new Error('Non 2xx');\n          error.source = ev.target;\n          reject(error);\n          return;\n        }\n\n        // todo make a proper onProgress API (breaking change)\n        onProgress == null || onProgress({\n          loaded: size,\n          lengthComputable: true\n        });\n\n        // NOTE This must be allowed by CORS.\n        const etag = ev.target.getResponseHeader('ETag');\n        const location = ev.target.getResponseHeader('Location');\n        if (method.toUpperCase() === 'POST' && location === null) {\n          // Not being able to read the Location header is not a fatal error.\n          // eslint-disable-next-line no-console\n          console.warn('AwsS3/Multipart: Could not read the Location header. This likely means CORS is not configured correctly on the S3 Bucket. See https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration for instructions.');\n        }\n        if (etag === null) {\n          reject(new Error('AwsS3/Multipart: Could not read the ETag header. This likely means CORS is not configured correctly on the S3 Bucket. See https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration for instructions.'));\n          return;\n        }\n        onComplete == null || onComplete(etag);\n        resolve({\n          ETag: etag,\n          ...(location ? {\n            location\n          } : undefined)\n        });\n      });\n      xhr.addEventListener('error', ev => {\n        cleanup();\n        const error = new Error('Unknown error');\n        error.source = ev.target;\n        reject(error);\n      });\n      xhr.send(body);\n    });\n  }\n  install() {\n    _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](true);\n    this.uppy.addPreProcessor(_classPrivateFieldLooseBase(this, _setCompanionHeaders)[_setCompanionHeaders]);\n    this.uppy.addUploader(_classPrivateFieldLooseBase(this, _upload)[_upload]);\n    this.uppy.on('cancel-all', _classPrivateFieldLooseBase(this, _resetResumableCapability)[_resetResumableCapability]);\n  }\n  uninstall() {\n    this.uppy.removePreProcessor(_classPrivateFieldLooseBase(this, _setCompanionHeaders)[_setCompanionHeaders]);\n    this.uppy.removeUploader(_classPrivateFieldLooseBase(this, _upload)[_upload]);\n    this.uppy.off('cancel-all', _classPrivateFieldLooseBase(this, _resetResumableCapability)[_resetResumableCapability]);\n  }\n}\nasync function _getTemporarySecurityCredentials2(options) {\n  throwIfAborted(options == null ? void 0 : options.signal);\n  if (_classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] == null) {\n    // We do not await it just yet, so concurrent calls do not try to override it:\n    if (this.opts.getTemporarySecurityCredentials === true) {\n      this.assertHost('getTemporarySecurityCredentials');\n      _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = _classPrivateFieldLooseBase(this, _client)[_client].get('s3/sts', null, options).then(assertServerError);\n    } else {\n      _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = this.opts.getTemporarySecurityCredentials(options);\n    }\n    _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = await _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials];\n    setTimeout(() => {\n      // At half the time left before expiration, we clear the cache. That's\n      // an arbitrary tradeoff to limit the number of requests made to the\n      // remote while limiting the risk of using an expired token in case the\n      // clocks are not exactly synced.\n      // The HTTP cache should be configured to ensure a client doesn't request\n      // more tokens than it needs, but this timeout provides a second layer of\n      // security in case the HTTP cache is disabled or misconfigured.\n      _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = null;\n    }, (getExpiry(_classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials].credentials) || 0) * 500);\n  }\n  return _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials];\n}\nfunction _uploadLocalFile2(file) {\n  var _this = this;\n  return new Promise((resolve, reject) => {\n    const onProgress = (bytesUploaded, bytesTotal) => {\n      this.uppy.emit('upload-progress', this.uppy.getFile(file.id), {\n        uploader: this,\n        bytesUploaded,\n        bytesTotal\n      });\n    };\n    const onError = err => {\n      this.uppy.log(err);\n      this.uppy.emit('upload-error', file, err);\n      this.resetUploaderReferences(file.id);\n      reject(err);\n    };\n    const onSuccess = result => {\n      const uploadResp = {\n        body: {\n          ...result\n        },\n        uploadURL: result.location\n      };\n      this.resetUploaderReferences(file.id);\n      this.uppy.emit('upload-success', _classPrivateFieldLooseBase(this, _getFile2)[_getFile2](file), uploadResp);\n      if (result.location) {\n        this.uppy.log(`Download ${file.name} from ${result.location}`);\n      }\n      resolve();\n    };\n    const onPartComplete = part => {\n      this.uppy.emit('s3-multipart:part-uploaded', _classPrivateFieldLooseBase(this, _getFile2)[_getFile2](file), part);\n    };\n    const upload = new MultipartUploader(file.data, {\n      // .bind to pass the file object to each handler.\n      companionComm: _classPrivateFieldLooseBase(this, _companionCommunicationQueue)[_companionCommunicationQueue],\n      log: function () {\n        return _this.uppy.log(...arguments);\n      },\n      getChunkSize: this.opts.getChunkSize ? this.opts.getChunkSize.bind(this) : null,\n      onProgress,\n      onError,\n      onSuccess,\n      onPartComplete,\n      file,\n      shouldUseMultipart: this.opts.shouldUseMultipart,\n      ...file.s3Multipart\n    });\n    this.uploaders[file.id] = upload;\n    const eventManager = new EventManager(this.uppy);\n    this.uploaderEvents[file.id] = eventManager;\n    eventManager.onFileRemove(file.id, removed => {\n      upload.abort();\n      this.resetUploaderReferences(file.id, {\n        abort: true\n      });\n      resolve(`upload ${removed.id} was removed`);\n    });\n    eventManager.onCancelAll(file.id, function (_temp) {\n      let {\n        reason\n      } = _temp === void 0 ? {} : _temp;\n      if (reason === 'user') {\n        upload.abort();\n        _this.resetUploaderReferences(file.id, {\n          abort: true\n        });\n      }\n      resolve(`upload ${file.id} was canceled`);\n    });\n    eventManager.onFilePause(file.id, isPaused => {\n      if (isPaused) {\n        upload.pause();\n      } else {\n        upload.start();\n      }\n    });\n    eventManager.onPauseAll(file.id, () => {\n      upload.pause();\n    });\n    eventManager.onResumeAll(file.id, () => {\n      upload.start();\n    });\n    upload.start();\n  });\n}\nfunction _getCompanionClientArgs2(file) {\n  return {\n    ...file.remote.body,\n    protocol: 's3-multipart',\n    size: file.data.size,\n    metadata: file.meta\n  };\n}\nAwsS3Multipart.VERSION = packageJson.version;", "const fr_FR = {\n  strings: {},\n  pluralize(n) {\n    if (n <= 1) {\n      return 0;\n    }\n    return 1;\n  }\n};\nfr_FR.strings = {\n  addBulkFilesFailed: {\n    '0': 'L\u2019ajout de %{smart_count} fichier a \u00E9chou\u00E9',\n    '1': 'L\u2019ajout de %{smart_count} fichiers a \u00E9chou\u00E9'\n  },\n  addedNumFiles: '%{numFiles} fichier(s) ajout\u00E9(s)',\n  addingMoreFiles: 'Ajout de fichiers',\n  addMore: 'Ajouter d\u2019autres',\n  addMoreFiles: 'Ajouter d\u2019autres fichiers',\n  allFilesFromFolderNamed: 'Tous les fichiers du dossier %{name}',\n  allowAccessDescription: 'Pour prendre des photos ou enregistrer une vid\u00E9o, veuillez autoriser l\u2019acc\u00E8s \u00E0 votre cam\u00E9ra pour ce site.',\n  allowAccessTitle: 'Veuillez autoriser l\u2019acc\u00E8s \u00E0 votre cam\u00E9ra',\n  authAborted: 'Authentification interrompue',\n  authenticateWith: 'Se connecter \u00E0 %{pluginName}',\n  authenticateWithTitle: 'Veuillez vous authentifier avec %{pluginName} pour s\u00E9lectionner les fichiers',\n  back: 'Retour',\n  browse: 'naviguer',\n  browseFiles: 'naviguer',\n  cancel: 'Annuler',\n  cancelUpload: 'Annuler le t\u00E9l\u00E9versement',\n  chooseFiles: 'Choisir des fichiers',\n  closeModal: 'Fermer la fen\u00EAtre',\n  companionError: 'Connexion \u00E0 Companion a \u00E9chou\u00E9',\n  companionUnauthorizeHint: 'Pour vous d\u00E9connecter de votre compte %{provider}, veuillez aller \u00E0 %{url}',\n  complete: 'Termin\u00E9',\n  compressedX: '%{size} \u00E9conomis\u00E9(s) par la compression',\n  compressingImages: 'Compression des images\u2026',\n  connectedToInternet: 'Connect\u00E9 \u00E0 Internet',\n  copyLink: 'Copier le lien',\n  copyLinkToClipboardFallback: 'Copier le lien ci-dessous',\n  copyLinkToClipboardSuccess: 'Lien copi\u00E9',\n  creatingAssembly: 'Pr\u00E9paration du t\u00E9l\u00E9versement\u2026',\n  creatingAssemblyFailed: 'Transloadit: Impossible de cr\u00E9er Assembly',\n  dashboardTitle: 'T\u00E9l\u00E9verseur de fichiers',\n  dashboardWindowTitle: 'Fen\u00EAtre de t\u00E9l\u00E9versement de fichiers (Appuyez sur \u00C9chap pour fermer)',\n  dataUploadedOfTotal: '%{complete} sur %{total}',\n  done: 'Termin\u00E9',\n  dropHereOr: 'D\u00E9poser les fichiers ici ou %{browse}',\n  dropHint: 'D\u00E9posez vos fichiers ici',\n  dropPasteBoth: 'D\u00E9poser les fichiers ici, coller ou %{browse}',\n  dropPasteFiles: 'D\u00E9poser les fichiers ici, coller ou %{browse}',\n  dropPasteFolders: 'D\u00E9poser les fichiers ici, coller ou %{browse}',\n  dropPasteImportBoth: 'D\u00E9poser les fichiers ici, coller, %{browse} ou importer de',\n  dropPasteImportFiles: 'D\u00E9poser les fichiers ici, coller, %{browse} ou importer de',\n  dropPasteImportFolders: 'D\u00E9poser les fichiers ici, coller, %{browse} ou importer de',\n  editFile: 'Modifier le fichier',\n  editImage: 'Modifier l\u2019image',\n  editFileWithFilename: 'Modifier le fichier %{file}',\n  editing: 'Modification en cours de %{file}',\n  emptyFolderAdded: 'Aucun fichier n\u2019a \u00E9t\u00E9 ajout\u00E9 depuis un dossier vide',\n  encoding: 'Traitement\u2026',\n  enterCorrectUrl: 'Lien incorrect: Assurez-vous que vous entrez un lien direct vers le fichier',\n  enterUrlToImport: 'Entrez le lien pour importer un fichier',\n  exceedsSize: 'Ce fichier d\u00E9passe la taille maximale autoris\u00E9e de %{size}',\n  failedToFetch: 'Companion a \u00E9chou\u00E9 \u00E0 r\u00E9cup\u00E9rer ce lien, assurez-vous qu\u2019il est correct',\n  failedToUpload: 'Le t\u00E9l\u00E9versement de %{file} a \u00E9chou\u00E9',\n  fileSource: 'Fichier source: %{name}',\n  filesUploadedOfTotal: {\n    '0': '%{complete} sur %{smart_count} fichier t\u00E9l\u00E9vers\u00E9',\n    '1': '%{complete} sur %{smart_count} fichiers t\u00E9l\u00E9vers\u00E9s'\n  },\n  filter: 'Filtrer',\n  finishEditingFile: 'Terminer l\u2019\u00E9dition du fichier',\n  folderAdded: {\n    '0': '%{smart_count} fichier ajout\u00E9 de %{folder}',\n    '1': '%{smart_count} fichiers ajout\u00E9s de %{folder}'\n  },\n  generatingThumbnails: 'G\u00E9n\u00E9ration des vignettes\u2026',\n  import: 'Importer',\n  importFrom: 'Importer de %{name}',\n  loading: 'Chargement\u2026',\n  logOut: 'D\u00E9connexion',\n  micDisabled: 'Acc\u00E8s au micro refus\u00E9 par l\u2019utilisateur',\n  myDevice: 'Mon Appareil',\n  noDuplicates: 'Impossible d\u2019ajouter le fichier \"%{fileName}\", il existe d\u00E9j\u00E0',\n  noFilesFound: 'Vous n\u2019avez aucun fichier ou dossier ici',\n  noInternetConnection: 'Pas de connexion \u00E0 Internet',\n  noMoreFilesAllowed: 'Impossible d\u2019ajouter de nouveaux fichiers: en cours de chargement ',\n  openFolderNamed: 'Ouvrir %{name}',\n  pause: 'Pause',\n  pauseUpload: 'Mettre en pause le t\u00E9l\u00E9versement',\n  paused: 'En pause',\n  poweredBy: 'Propuls\u00E9 par %{uppy}',\n  processingXFiles: {\n    '0': 'Traitement de %{smart_count} fichier',\n    '1': 'Traitement de %{smart_count} fichiers'\n  },\n  recording: 'Enregistrement',\n  recordingLength: 'Dur\u00E9e d\u2019enregistrement %{recording_length}',\n  recordingStoppedMaxSize: 'L\u2019enregistrement s\u2019est arr\u00E9t\u00E9 car la taille du fichier d\u00E9passe la limite',\n  removeFile: 'Effacer le fichier %{file}',\n  resetFilter: 'R\u00E9initialiser filtre',\n  resume: 'Reprendre',\n  resumeUpload: 'Reprendre le t\u00E9l\u00E9versement',\n  retry: 'R\u00E9essayer',\n  retryUpload: 'R\u00E9essayer le t\u00E9l\u00E9versement',\n  save: 'Sauvegarder',\n  saveChanges: 'Sauvegarder les modifications',\n  selectFileNamed: 'S\u00E9lectionner le fichier %{name}',\n  selectX: {\n    '0': 'S\u00E9lectionner %{smart_count}',\n    '1': 'S\u00E9lectionner %{smart_count}'\n  },\n  smile: 'Souriez !',\n  startRecording: 'Commencer l\u2019enregistrement vid\u00E9o',\n  stopRecording: 'Arr\u00EAter l\u2019enregistrement vid\u00E9o',\n  streamActive: 'Stream actif',\n  streamPassive: 'Stream passif',\n  submitRecordedFile: 'Envoyer la vid\u00E9o enregistr\u00E9e',\n  takePicture: 'Prendre une photo',\n  timedOut: 'T\u00E9l\u00E9versement bloqu\u00E9 durant %{seconds} secondes, annulation.',\n  unselectFileNamed: 'D\u00E9s\u00E9lectionner le fichier %{name}',\n  upload: 'T\u00E9l\u00E9verser',\n  uploadComplete: 'T\u00E9l\u00E9versement termin\u00E9',\n  uploadFailed: 'Le t\u00E9l\u00E9versement a \u00E9chou\u00E9',\n  uploadPaused: 'T\u00E9l\u00E9versement mis en pause',\n  uploadStalled: 'T\u00E9l\u00E9versement bloqu\u00E9 depuis %{seconds} secondes. Il est peut-\u00EAtre n\u00E9cessaire de recommencer l\u2019op\u00E9ration.',\n  uploadXFiles: {\n    '0': 'T\u00E9l\u00E9verser %{smart_count} fichier',\n    '1': 'T\u00E9l\u00E9verser %{smart_count} fichiers'\n  },\n  uploadXNewFiles: {\n    '0': 'T\u00E9l\u00E9verser +%{smart_count} fichier',\n    '1': 'T\u00E9l\u00E9verser +%{smart_count} fichiers'\n  },\n  uploading: 'T\u00E9l\u00E9versement en cours',\n  uploadingXFiles: {\n    '0': 'T\u00E9l\u00E9versement de %{smart_count} fichier',\n    '1': 'T\u00E9l\u00E9versement de %{smart_count} fichiers'\n  },\n  xFilesSelected: {\n    '0': '%{smart_count} fichier s\u00E9lectionn\u00E9',\n    '1': '%{smart_count} fichiers s\u00E9lectionn\u00E9s'\n  },\n  xMoreFilesAdded: {\n    '0': '%{smart_count} autre fichier ajout\u00E9',\n    '1': '%{smart_count} autres fichiers ajout\u00E9s'\n  },\n  xTimeLeft: '%{time} restantes',\n  youCanOnlyUploadFileTypes: 'Vous pouvez seulement t\u00E9l\u00E9verser: %{types}',\n  youCanOnlyUploadX: {\n    '0': 'Vous pouvez seulement t\u00E9l\u00E9verser %{smart_count} fichier',\n    '1': 'Vous pouvez seulement t\u00E9l\u00E9verser %{smart_count} fichiers'\n  },\n  youHaveToAtLeastSelectX: {\n    '0': 'Vous devez s\u00E9lectionner au moins %{smart_count} fichier',\n    '1': 'Vous devez s\u00E9lectionner au moins %{smart_count} fichiers'\n  }\n};\n\n// TODO: remove this in the next major?\n// @ts-expect-error Uppy can be a global in legacy bundle\nif (typeof Uppy !== 'undefined') {\n  // @ts-expect-error Uppy can be a global in legacy bundle\n  globalThis.Uppy.locales.fr_FR = fr_FR;\n}\nexport default fr_FR;", "import { Controller } from '@hotwired/stimulus';\n\nimport Uppy from '@uppy/core';\nimport Dashboard from '@uppy/dashboard';\nimport Form from '@uppy/form';\nimport FileInput from '@uppy/file-input';\nimport AwsS3Multipart from '@uppy/aws-s3-multipart';\nimport French from '@uppy/locales/lib/fr_FR';\n\nexport default class extends Controller {\n  initialize() {\n    const directUploadForm = document.getElementById('direct-upload-form');\n    let filePrefix = '';\n    let allowedFileTypes = null;\n\n    if (directUploadForm && directUploadForm !== '') {\n      if (directUploadForm.dataset.prefix && directUploadForm.dataset.prefix !== '') {\n        filePrefix = `${directUploadForm.dataset.prefix}/`;\n      }\n\n      if (directUploadForm.dataset.accept && directUploadForm.dataset.accept !== '') {\n        allowedFileTypes = directUploadForm.dataset.accept.split(',');\n      }\n\n      delete directUploadForm.dataset.accept;\n      delete directUploadForm.dataset.prefix;\n    }\n\n    this.uppy = new Uppy({\n      autoProceed: false,\n      locale: French,\n      restrictions: {\n        allowedFileTypes: allowedFileTypes,\n      },\n\n      onBeforeFileAdded: (currentFile, files) => ({\n        ...currentFile,\n        name: `${filePrefix}${currentFile.name}`,\n      }),\n    }).use(Dashboard, {\n      height: '480px',\n      hideProgressAfterFinish: true,\n      hideRetryButton: true,\n      inline: true,\n      proudlyDisplayPoweredByUppy: false,\n      target: '#drag-drop-area',\n      width: '100%',\n    }).use(AwsS3Multipart, {\n      companionUrl: '/',\n    }).use(FileInput, {\n      inputName: 'files[]',\n      pretty: true,\n    }).use(Form, {\n      addResultToForm: true,\n      getMetaFromForm: false,\n      resultName: 'file_data',\n      submitOnSuccess: false,\n      target: '#direct-upload-form',\n      triggerUploadOnSubmit: false,\n    });\n  }\n\n  connect() {\n    this.uppy.on('complete', (result) => {\n      if (result.failed.length === 0) {\n        this.uppy.setState({ totalProgress: 100 });\n        document.querySelector('.uppy-StatusBar').setAttribute('style', 'height: 50px;');\n        document.querySelector('#direct-upload-form button[type=submit]').disabled = false;\n        document.querySelector('#direct-upload-form button[type=submit]').classList.remove(\"!cursor-not-allowed\");\n      }\n    });\n  }\n}\n", "import AwsS3Multipart from '@uppy/aws-s3-multipart';\nimport { Controller } from '@hotwired/stimulus';\nimport FileInput from '@uppy/file-input';\nimport Form from '@uppy/form';\nimport French from '@uppy/locales/lib/fr_FR';\nimport Uppy from '@uppy/core';\n\nexport default class extends Controller {\n  initialize() {\n    const directUploadInputForm = document.getElementById('direct-upload-input-form');\n    let filePrefix = '';\n    let allowedFileTypes = null;\n\n    if (directUploadInputForm && directUploadInputForm !== '') {\n      if (directUploadInputForm.dataset.prefix && directUploadInputForm.dataset.prefix !== '') {\n        filePrefix = `${directUploadInputForm.dataset.prefix}/`;\n      }\n\n      if (directUploadInputForm.dataset.accept && directUploadInputForm.dataset.accept !== '') {\n        allowedFileTypes = directUploadInputForm.dataset.accept.split(',');\n      }\n\n      delete directUploadInputForm.dataset.accept;\n      delete directUploadInputForm.dataset.prefix;\n    }\n\n    this.uppy = new Uppy({\n      maxNumberOfFiles: 1,\n      minNumberOfFiles: 1,\n      autoProceed: true,\n      locale: French,\n      restrictions: {\n        allowedFileTypes: allowedFileTypes,\n      },\n      onBeforeFileAdded: (currentFile, files) => ({\n        ...currentFile,\n        name: `${filePrefix}${currentFile.name}`,\n      }),\n    });\n\n    this.uppy.use(FileInput, {\n      target: '#direct-upload-input-form',\n      pretty: true,\n      inputName: 'file',\n    }).use(AwsS3Multipart, {\n      companionUrl: '/',\n    }).use(Form, {\n      addResultToForm: true,\n      getMetaFromForm: false,\n      resultName: 'file_data',\n      submitOnSuccess: true,\n      target: '#direct-upload-input-form',\n      triggerUploadOnSubmit: false,\n    });\n  }\n\n  connect() {\n    this.uppy.on('complete', (result) => {\n      if (result.failed.length === 0) {\n        document.querySelector('#uploaded-documents-feedback').innerHTML = directUploadInputForm.dataset.translationSuccess;\n      }\n    });\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\n    \"selectedKycType\",\n    \"singleOrSeparateFileChoiceButtons\",\n    \"choseSingleFile\",\n    \"choseSeparateFiles\",\n    \"fileBackCachedData\",\n    \"fileBackInputBlock\",\n    \"fileFrontAndBackInputBlock\",\n    \"separateLabel\",\n    \"singleLabel\"\n  ]\n\n  connect() {\n    this.toggleSingleFileOrMultipleFilesMenu();\n  }\n\n  toggleSingleFileOrMultipleFilesMenu() {\n    this.#showInputsIfATypeIsSelected();\n    this.#toggleSingleOrSeparateFileChoiceButtons();\n    this.toggleFileBackInput();\n  }\n\n  toggleFileBackInput() {\n    if (!this.hasChoseSeparateFilesTarget) return;\n\n    if (this.choseSeparateFilesTarget.checked && this.#canSelectedDocumentTypeHaveABack()) {\n      this.fileBackInputBlockTarget.classList.remove('hidden');\n      this.fileBackInputBlockTarget.querySelectorAll('[name*=\"[file_back]\"]').forEach((el) => {\n        el.disabled = false;\n        el.required = !(this.hasFileBackCachedDataTarget && this.fileBackCachedDataTarget.value);\n      });\n\n      this.separateLabelTarget.classList.add(\"bg-info\");\n      this.singleLabelTarget.classList.remove(\"bg-info\");\n\n      this.fileFrontAndBackInputBlockTarget.classList.add('md:grid-cols-2');\n    } else {\n      this.fileBackInputBlockTarget.querySelector(\"input\").required = false;\n      this.fileBackInputBlockTarget.classList.add('hidden');\n      this.fileBackInputBlockTarget.querySelectorAll('[name*=\"[file_back]\"]').forEach((el) => {\n        el.disabled = true;\n        el.required = false;\n      });\n\n      if (this.choseSingleFileTarget.checked) {\n        this.separateLabelTarget.classList.remove(\"bg-info\");\n        this.singleLabelTarget.classList.add(\"bg-info\");\n      }\n\n      this.fileFrontAndBackInputBlockTarget.classList.remove('md:grid-cols-2');\n    }\n  }\n\n  #toggleSingleOrSeparateFileChoiceButtons() {\n    if (!this.hasSingleOrSeparateFileChoiceButtonsTarget) return;\n\n    if (this.#canSelectedDocumentTypeHaveABack()) {\n      this.singleOrSeparateFileChoiceButtonsTarget.classList.remove('hidden');\n\n      this.choseSingleFileTarget.checked = false;\n      this.choseSeparateFilesTarget.checked = true;\n    } else {\n      this.singleOrSeparateFileChoiceButtonsTarget.classList.add('hidden');\n    }\n  }\n\n  #canSelectedDocumentTypeHaveABack() {\n    if (!this.hasSelectedKycTypeTarget) return false;\n\n    const typesWithBack = JSON.parse(this.selectedKycTypeTarget.dataset.fileBackSelectionMenuTypesWithBack);\n    const selectedValue = this.selectedKycTypeTarget.value;\n    return typesWithBack.includes(selectedValue);\n  }\n\n  #showInputsIfATypeIsSelected() {\n    // return if empty list\n    if (!this.hasSelectedKycTypeTarget || this.selectedKycTypeTarget.options.length === 0) return;\n\n    // Hide upload inputs if no type is selected\n    if (this.selectedKycTypeTarget.selectedIndex === 0 &&\n      this.selectedKycTypeTarget.options[0].value === \"\") {\n      this.fileFrontAndBackInputBlockTarget.classList.add('hidden');\n    } else {\n      this.fileFrontAndBackInputBlockTarget.classList.remove('hidden');\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\nimport toastr from \"toastr\";\n\nexport default class extends Controller {\n  static values = {message: String, level: String};\n\n  connect() {\n    this.initToast();\n  }\n\n  initToast() {\n    if (this.levelValue === \"error\") {\n      toastr.error(this.messageValue);\n    } else {\n      toastr.success(this.messageValue);\n    }\n  }\n}\n", "// TODO delete when KPIS are implemented\n\nimport { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['validationErrors'];\n\n  clear(event) {\n    event.target.reset();\n  }\n\n  clearValidationErrors() {\n    if (this.hasValidationErrorsTarget) {\n      this.validationErrorsTargets.forEach((element) => {\n        try {\n          element.innerText = '';\n        } catch (e) {}\n      });\n    }\n  }\n\n  removeWhitespace(event) {\n    const input = event.target;\n    input.value = input.value.replace(/\\s+/g, \"\");\n  }\n\n  toggleHiddenInputs(event) {\n    const triggerElement = event.target;\n    const targetSelector = triggerElement.dataset.toggleTarget;\n    const targetElement = document.querySelector(targetSelector);\n    \n    if (!targetElement) return;\n    \n    const fields = targetElement.querySelectorAll('input, select, textarea');\n    const isActive = triggerElement.value && triggerElement.value !== '';\n    \n    targetElement.style.display = isActive ? '' : 'none';\n    fields.forEach((field) => (field.disabled = !isActive));\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  connect() {\n    this.element.textContent = \"Hello World!\"\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static values = {\n    onboardingUrl: String,\n    redirectUrl: String,\n    widgetId: String\n  }\n\n  connect() {\n    this.initWidget()\n  }\n\n  initWidget() {\n    LemonwayWidget.init(\n      this.onboardingUrlValue,\n      this.widgetIdValue,\n      {\n        lang: \"fr\",\n        onMyAccount: () => this.redirectToNextStep(false),\n        onFinish: () => this.redirectToNextStep(true),\n        onPageChange: () => window.scrollTo({\n          top: 0,\n          behavior: \"smooth\",\n        })\n      }\n    )\n  }\n\n  redirectToNextStep(success = false) {\n    const url = new URL(this.redirectUrlValue)\n    if (success) {\n      url.searchParams.set(\"status\", \"success\")\n    }\n\n    window.location.replace(url)\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Connects to data-controller=\"mobile-sidebar\"\nexport default class extends Controller {\n  static targets = [\n    'closeButton',\n    'backdrop',\n    'drawer',\n    'openButton',\n    'openButtonWrapper',\n    'body',\n    'backdropContainer',\n  ];\n\n  connect() {}\n\n  openMobileSidebar(event) {\n    const {\n      backdropTarget,\n      drawerTarget,\n      closeButtonTarget,\n      openButtonTarget,\n      openButtonWrapperTarget,\n      bodyTarget,\n    } = this;\n    bodyTarget.classList.add('overflow-hidden');\n    backdropTarget.classList.remove('-z-10');\n    backdropTarget.classList.add('bg-dark/30', 'z-50');\n    drawerTarget.classList.remove(\n      'translate-x-full',\n      'pointer-events-none',\n      'opacity-0'\n    );\n    drawerTarget.classList.add('opacity-100');\n    closeButtonTarget.classList.remove('hidden');\n    openButtonTarget.classList.add('hidden');\n    openButtonWrapperTarget.classList.remove('z-50');\n    backdropContainer.classList.add('z-40');\n  }\n\n  closeMobileSidebar(event) {\n    const {\n      backdropTarget,\n      drawerTarget,\n      closeButtonTarget,\n      openButtonTarget,\n      openButtonWrapperTarget,\n      bodyTarget,\n    } = this;\n    bodyTarget.classList.remove('overflow-hidden');\n    backdropTarget.classList.remove('bg-dark/30', 'z-50');\n    backdropTarget.classList.add('-z-10');\n    drawerTarget.classList.remove('opacity-100');\n    drawerTarget.classList.add(\n      'translate-x-full',\n      'pointer-events-none',\n      'opacity-0'\n    );\n    closeButtonTarget.classList.add('hidden');\n    openButtonTarget.classList.remove('hidden');\n    openButtonWrapperTarget.classList.add('z-50');\n    backdropContainer.classList.remove('z-40');\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static values = {autoShow: Boolean, targetId: String}\n\n  connect() {\n    if (this.autoShowValue) { this.open() }\n  }\n\n  open() {\n    const modal = this.hasTargetIdValue ? document.getElementById(this.targetIdValue) : this.element\n    modal.classList.remove(\"hidden\")\n  }\n\n  close() {\n    this.element.classList.add(\"hidden\")\n  }\n}\n", "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 && Array.isArray(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\"; // 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 (!contains(state.elements.popper, arrowElement)) {\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, win) {\n  var x = _ref.x,\n      y = _ref.y;\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  }, getWindow(popper)) : {\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  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  } // $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 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 orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\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        });\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          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\n        for (var index = 0; index < state.orderedModifiers.length; index++) {\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      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 (_ref) {\n        var name = _ref.name,\n            _ref$options = _ref.options,\n            options = _ref$options === void 0 ? {} : _ref$options,\n            effect = _ref.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\";\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\";", "import { Controller } from '@hotwired/stimulus';\nimport { createPopper } from '@popperjs/core';\n\nexport default class extends Controller {\n  static targets = ['element', 'tooltip'];\n  static values = {\n    placement: { type: String, default: 'top' },\n    offset: { type: Array, default: [0, 10] },\n    delay: { type: Number, default: 0 }\n  };\n\n  connect() {\n    // Create a new Popper instance\n    this.popperInstance = createPopper(this.elementTarget, this.tooltipTarget, {\n      placement: this.placementValue,\n      modifiers: [\n        {\n          name: 'offset',\n          options: {\n            offset: this.offsetValue,\n          },\n        },\n      ],\n    });\n  }\n\n  show(event) {\n    clearTimeout(this.timer);\n    this.tooltipTarget.setAttribute('data-show', '');\n\n    // We need to tell Popper to update the tooltip position\n    // after we show the tooltip, otherwise it will be incorrect\n    this.popperInstance.update();\n  }\n\n  hide(event) {\n    this.timer = setTimeout(() => {\n      this.tooltipTarget.removeAttribute('data-show');\n    }, this.delayValue);\n  }\n\n  // Destroy the Popper instance\n  disconnect() {\n    if (this.popperInstance) {\n      this.popperInstance.destroy();\n    }\n    clearTimeout(this.timer);\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Connects to data-controller=\"profile-switcher\"\nexport default class extends Controller {\n  static targets = ['menu'];\n  static values = {\n    profilesCount: Number,\n  };\n\n  initialize() {\n    this.menuIsOpen = false;\n  }\n\n  connect() {}\n\n  handleClick(event) {\n    event.preventDefault();\n    event.stopPropagation();\n    const noOtherProfilesToSwitchTo = this.profilesCountValue < 1;\n    if (noOtherProfilesToSwitchTo) {\n      return;\n    }\n\n    this.menuIsOpen ? this.closeMenu() : this.openMenu();\n  }\n\n  openMenu() {\n    const { menuTarget } = this;\n    menuTarget.classList.remove('h-0', 'opacity-0');\n    menuTarget.classList.add('opacity-100', 'h-full');\n    this.menuIsOpen = true;\n  }\n\n  closeMenu() {\n    const { menuTarget } = this;\n    menuTarget.classList.remove('h-full', 'opacity-100');\n    menuTarget.classList.add('h-0', 'opacity-0');\n    this.menuIsOpen = false;\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = [\"form\"]\n  static values = {documentUrl: String}\n\n  connect() {\n    this.#generateDocumentIframe(this.element);\n    this.#injectCsrfToken();\n  }\n\n  #generateDocumentIframe(container) {\n    const iframe = document.createElement('iframe');\n    iframe.classList = ['w-full h-lvh'];\n    iframe.src = this.documentUrlValue;\n\n    container.prepend(iframe);\n  }\n\n  #injectCsrfToken() {\n    // Inject CSRF token manually, because form can be rendered with Turbo from Sidekiq\n    // Token is missing in this context\n    const formToken = this.formTarget.querySelector('input[name=\"authenticity_token\"]');\n    if (formToken) return;\n\n    const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n    const input = document.createElement(\"input\");\n    input.type = \"hidden\";\n    input.name = \"authenticity_token\";\n    input.value = csrfToken;\n    this.formTarget.prepend(input);\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"link\"]\n\n  connect() {\n    const options = {\n      root: null,\n      rootMargin: \"0px\",\n      threshold: 0.4,\n    }\n\n    this.observer = new IntersectionObserver(this.handleIntersect.bind(this), options)\n\n    this.linkTargets.forEach(link => {\n      const href = link.getAttribute(\"href\")\n      const section = document.querySelector(href)\n      if (section) {\n        this.observer.observe(section)\n      }\n    })\n  }\n\n  handleIntersect(entries) {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        const id = entry.target.getAttribute(\"id\")\n        this.activateLink(`#${id}`)\n      }\n    })\n  }\n\n  activateLink(id) {\n    this.linkTargets.forEach(link => {\n      if (link.getAttribute(\"href\") === id) {\n        link.classList.add(\"text-indigo-900\", \"font-semibold\")\n        link.classList.remove(\"hover:text-indigo-800\")\n      } else {\n        link.classList.remove(\"text-indigo-900\", \"font-semibold\")\n        link.classList.add(\"hover:text-indigo-800\")\n      }\n    })\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = [\n    'fileBackName',\n    'fileBackValidationErrors',\n    'fileName',\n    'identityProofDocumentType',\n    'validationErrors',\n  ];\n\n  static values = {\n    changeDocumentText: String,\n  };\n\n  requireDocumentType(event) {\n    if (this.hasIdentityProofDocumentTypeTarget) {\n      try {\n        this.identityProofDocumentTypeTarget.required = true;\n      } catch (e) {}\n    }\n  }\n\n  displayFileName(event) {\n    if (this.hasFileNameTarget) {\n      const fileName = event.target.value.split('\\\\').pop();\n      this.fileNameTarget.textContent = fileName;\n    }\n  }\n\n  displayFileBackName(event) {\n    if (this.hasFileBackNameTarget) {\n      const fileName = event.target.value.split('\\\\').pop();\n      this.fileBackNameTarget.textContent = fileName;\n    }\n  }\n\n  displayUploadDocumentText() {\n    if (this.hasUploadDocumentTextTarget) {\n      try {\n        this.uploadDocumentTextTarget.innerText = this.changeDocumentTextValue;\n      } catch (e) {}\n    }\n  }\n\n  clearValidationErrors() {\n    if (this.hasValidationErrorsTarget) {\n      try {\n        this.validationErrorsTarget.innerText = '';\n      } catch (e) {}\n    }\n  }\n\n  clearFileBackValidationErrors(event) {\n    const errorElement = event.target\n      .closest('div')\n      .querySelector('span.text-red-400');\n    if (errorElement) {\n      errorElement.textContent = '';\n    }\n  }\n\n  triggerFileInput(event) {\n    event.preventDefault();\n    const targetId = event.currentTarget.dataset.target;\n    const fileInput = document.getElementById(targetId);\n    if (fileInput) {\n      fileInput.click();\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"errorsContainer\", \"modalAmount\", \"submitButton\"]\n  static values = {\n    currency: String,\n    errorTranslations: Object,\n    leftToCollect: Number,\n    locale: String,\n    minimumAmount: Number,\n    profileBalance: Number,\n  }\n\n  validateAmount(event) {\n    const amount = event.target.value;\n    const errors = [];\n\n    if (amount < this.minimumAmountValue) { errors.push(this.errorTranslationsValue.lower_than_minimum_subscription_amount); }\n    if (amount > this.leftToCollectValue) { errors.push(this.errorTranslationsValue.higher_than_left_to_collect); }\n    if (amount > this.profileBalanceValue) { errors.push(this.errorTranslationsValue.insufficient_balance); }\n\n    this.#displayErrors(errors, event.target);\n    this.#toggleSubmitButton(errors);\n    this.#updateModalAmount(amount);\n  }\n\n  #displayErrors(errors, input) {\n    if (errors.length > 0) {\n      this.errorsContainerTarget.innerHTML = errors.join(\"<br>\");\n      input.classList.add(\"!border-danger\");\n    } else {\n      this.errorsContainerTarget.innerHTML = \"\"\n      input.classList.remove(\"!border-danger\");\n    }\n  }\n\n  #toggleSubmitButton(errors) {\n    this.submitButtonTargets.forEach(button => {\n      button.disabled = errors.length > 0;\n    });\n  }\n\n  #updateModalAmount(amount) {\n    const formattedAmount = new Intl.NumberFormat(this.localeValue, {\n      style: \"currency\",\n      currency: this.currencyValue,\n    }).format(amount);\n\n    this.modalAmountTarget.textContent = formattedAmount;\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static values = {\n    iframeEndpoint: String,\n    signatureId: String,\n  }\n\n  connect() {\n    const configuration = {};\n    const iframeEndpoint = this.iframeEndpointValue;\n    const signerId = this.signatureIdValue;\n    universignSigInit(this.element.id, signerId, configuration, iframeEndpoint);\n  }\n}\n", "import { Controller } from '@hotwired/stimulus'\nimport intlTelInput from 'intl-tel-input'\n\nexport default class extends Controller {\n  static targets = ['input']\n\n  connect() {\n    this.iti = intlTelInput(this.inputTarget, {\n      initialCountry: 'FR',\n      preferredCountries: ['FR'],\n      separateDialCode: true,\n      formatOnDisplay: true,\n      autoHideDialCode: false,\n      nationalMode: false,\n      loadUtils: () => import('intl-tel-input/utils'),\n    })\n  }\n\n  disconnect() {\n    if (this.iti) this.iti.destroy();\n  }\n\n  getNumber() {\n    this.inputTarget.value = this.iti.getNumber();\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"input\", \"submit\"]\n\n  connect() {\n    this.updateSubmitButton()\n  }\n\n  formatInput() {\n    this.inputTarget.value = this.inputTarget.value.replace(/\\D/g, \"\")\n    this.updateSubmitButton()\n  }\n\n  updateSubmitButton() {\n    if (this.hasSubmitTarget) {\n      this.submitTarget.disabled = this.inputTarget.value.length !== 6\n    }\n  }\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 AccordionController from './accordion_controller.js'\nimport CollapseController from './collapse_controller.js';\nimport CopyToClipboardController from './copy_to_clipboard_controller.js';\nimport DirectUploadFormController from './direct_upload_form_controller.js';\nimport DirectUploadInputController from './direct_upload_input_controller.js';\nimport FileBackSelectionMenuController from './file_back_selection_menu_controller.js'\nimport FlashController from './flash_controller.js';\nimport FormController from './form_controller.js';\nimport HelloController from './hello_controller.js';\nimport LemonwayIframeController from './lemonway_iframe_controller.js';\nimport MobileSidebarController from './mobile_sidebar_controller.js';\nimport ModalController from './modal_controller.js'\nimport PopperController from './popper_controller.js';\nimport ProfileSwitcherController from './profile_switcher_controller.js';\nimport SignController from './sign_controller.js';\nimport ScrollspyController from './scrollspy_controller.js'\nimport Users__Profiles__KycDocumentFormController from './users/profiles/kyc_document_form_controller.js';\nimport Users__Profiles__RecoveryFeeCollections__SubscriptionFormController from './users/profiles/recovery_fee_collections/subscription_form_controller.js';\nimport UniversignController from './universign_controller.js';\nimport PhoneInputController from './phone_input_controller.js';\nimport VerificationCodeController from './verification_code_controller.js';\n\napplication.register('accordion', AccordionController)\napplication.register('collapse', CollapseController);\napplication.register('copy-to-clipboard', CopyToClipboardController);\napplication.register('direct-upload-form', DirectUploadFormController);\napplication.register('direct-upload-input', DirectUploadInputController);\napplication.register('file-back-selection-menu', FileBackSelectionMenuController)\napplication.register('flash', FlashController);\napplication.register('form', FormController);\napplication.register('hello', HelloController);\napplication.register('lemonway-iframe', LemonwayIframeController);\napplication.register('mobile-sidebar', MobileSidebarController);\napplication.register('modal', ModalController)\napplication.register('popper', PopperController);\napplication.register('profile-switcher', ProfileSwitcherController);\napplication.register('sign', SignController);\napplication.register('scrollspy', ScrollspyController)\napplication.register(\n  'users--profiles--kyc-document-form',\n  Users__Profiles__KycDocumentFormController\n);\napplication.register(\n  'users--profiles--recovery-fee-collections-subscription-form',\n  Users__Profiles__RecoveryFeeCollections__SubscriptionFormController\n);\napplication.register('universign', UniversignController);\napplication.register('phone-input', PhoneInputController);\napplication.register('verification-code', VerificationCodeController);\n", "var adapters = {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now());\n      adapters.logger.log(\"[ActionCable]\", ...messages);\n    }\n  }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this);\n    this.connection = connection;\n    this.reconnectAttempts = 0;\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  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  isRunning() {\n    return this.startedAt && !this.stoppedAt;\n  }\n  recordPing() {\n    this.pingedAt = now();\n  }\n  recordConnect() {\n    this.reconnectAttempts = 0;\n    this.recordPing();\n    delete this.disconnectedAt;\n    logger.log(\"ConnectionMonitor recorded connect\");\n  }\n  recordDisconnect() {\n    this.disconnectedAt = now();\n    logger.log(\"ConnectionMonitor recorded disconnect\");\n  }\n  startPolling() {\n    this.stopPolling();\n    this.poll();\n  }\n  stopPolling() {\n    clearTimeout(this.pollTimeout);\n  }\n  poll() {\n    this.pollTimeout = setTimeout((() => {\n      this.reconnectIfStale();\n      this.poll();\n    }), this.getPollInterval());\n  }\n  getPollInterval() {\n    const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n    const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n    const jitter = jitterMax * Math.random();\n    return staleThreshold * 1e3 * backoff * (1 + jitter);\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  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt;\n  }\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n  }\n  disconnectedRecently() {\n    return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\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      }), 200);\n    }\n  }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\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    remote: \"remote\"\n  },\n  default_mount_path: \"/cable\",\n  protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\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  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data));\n      return true;\n    } else {\n      return false;\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      const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n      if (this.webSocket) {\n        this.uninstallEventHandlers();\n      }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n      this.installEventHandlers();\n      this.monitor.start();\n      return true;\n    }\n  }\n  close({allowReconnect: allowReconnect} = {\n    allowReconnect: true\n  }) {\n    if (!allowReconnect) {\n      this.monitor.stop();\n    }\n    if (this.isOpen()) {\n      return this.webSocket.close();\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      } 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  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol;\n    }\n  }\n  isOpen() {\n    return this.isState(\"open\");\n  }\n  isActive() {\n    return this.isState(\"open\", \"connecting\");\n  }\n  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0;\n  }\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n  }\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0;\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  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  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {};\n    }\n  }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) {\n      return;\n    }\n    const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n    switch (type) {\n     case message_types.welcome:\n      if (this.triedToReconnect()) {\n        this.reconnectAttempted = true;\n      }\n      this.monitor.recordConnect();\n      return this.subscriptions.reload();\n\n     case message_types.disconnect:\n      logger.log(`Disconnecting. Reason: ${reason}`);\n      return this.close({\n        allowReconnect: reconnect\n      });\n\n     case message_types.ping:\n      return this.monitor.recordPing();\n\n     case message_types.confirmation:\n      this.subscriptions.confirmSubscription(identifier);\n      if (this.reconnectAttempted) {\n        this.reconnectAttempted = false;\n        return this.subscriptions.notify(identifier, \"connected\", {\n          reconnected: true\n        });\n      } else {\n        return this.subscriptions.notify(identifier, \"connected\", {\n          reconnected: false\n        });\n      }\n\n     case message_types.rejection:\n      return this.subscriptions.reject(identifier);\n\n     default:\n      return this.subscriptions.notify(identifier, \"received\", message);\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({\n        allowReconnect: false\n      });\n    }\n  },\n  close(event) {\n    logger.log(\"WebSocket onclose event\");\n    if (this.disconnected) {\n      return;\n    }\n    this.disconnected = true;\n    this.monitor.recordDisconnect();\n    return this.subscriptions.notifyAll(\"disconnected\", {\n      willAttemptReconnect: this.monitor.isRunning()\n    });\n  },\n  error() {\n    logger.log(\"WebSocket onerror event\");\n  }\n};\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\nclass Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer;\n    this.identifier = JSON.stringify(params);\n    extend(this, mixin);\n  }\n  perform(action, data = {}) {\n    data.action = action;\n    return this.send(data);\n  }\n  send(data) {\n    return this.consumer.send({\n      command: \"message\",\n      identifier: this.identifier,\n      data: JSON.stringify(data)\n    });\n  }\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this);\n  }\n}\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions;\n    this.pendingSubscriptions = [];\n  }\n  guarantee(subscription) {\n    if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n      this.pendingSubscriptions.push(subscription);\n    } else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n    }\n    this.startGuaranteeing();\n  }\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n    this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n  }\n  startGuaranteeing() {\n    this.stopGuaranteeing();\n    this.retrySubscribing();\n  }\n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout);\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    }), 500);\n  }\n}\n\nclass Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer;\n    this.guarantor = new SubscriptionGuarantor(this);\n    this.subscriptions = [];\n  }\n  create(channelName, mixin) {\n    const channel = channelName;\n    const params = typeof channel === \"object\" ? channel : {\n      channel: channel\n    };\n    const subscription = new Subscription(this.consumer, params, mixin);\n    return this.add(subscription);\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  remove(subscription) {\n    this.forget(subscription);\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\");\n    }\n    return subscription;\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  forget(subscription) {\n    this.guarantor.forget(subscription);\n    this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n    return subscription;\n  }\n  findAll(identifier) {\n    return this.subscriptions.filter((s => s.identifier === identifier));\n  }\n  reload() {\n    return this.subscriptions.map((subscription => this.subscribe(subscription)));\n  }\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\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    return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n  }\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription);\n    }\n  }\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`);\n    this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n  }\n  sendCommand(subscription, command) {\n    const {identifier: identifier} = subscription;\n    return this.consumer.send({\n      command: command,\n      identifier: identifier\n    });\n  }\n}\n\nclass Consumer {\n  constructor(url) {\n    this._url = url;\n    this.subscriptions = new Subscriptions(this);\n    this.connection = new Connection(this);\n    this.subprotocols = [];\n  }\n  get url() {\n    return createWebSocketURL(this._url);\n  }\n  send(data) {\n    return this.connection.send(data);\n  }\n  connect() {\n    return this.connection.open();\n  }\n  disconnect() {\n    return this.connection.close({\n      allowReconnect: false\n    });\n  }\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open();\n    }\n  }\n  addSubProtocol(subprotocol) {\n    this.subprotocols = [ ...this.subprotocols, subprotocol ];\n  }\n}\n\nfunction createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url();\n  }\n  if (url && !/^wss?:/i.test(url)) {\n    const a = document.createElement(\"a\");\n    a.href = url;\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\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url);\n}\n\nfunction getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n", "// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\"\n\nexport default createConsumer()\n", "import consumer from \"./consumer\"\n\ndocument.addEventListener(\"turbo:load\", () => {\n  const exportButton = document.getElementById(\"export-button\")\n  if (exportButton === null) {\n    return;\n  }\n\n  const profile_id = exportButton.dataset.profileId;\n\n  consumer.subscriptions.create({channel: \"ExportChannel\", profile_id: profile_id}, {\n    exportContainer: null,\n\n    initialized() {\n      this.exportContainer = document.getElementById(\"export-container\");\n    },\n\n    connected() {\n      const exportLoader = document.getElementById(\"exportLoader\");\n\n      exportButton.onclick = () => {\n        exportButton.classList.add(\"hidden\");\n        exportLoader.classList.remove(\"hidden\");\n      }\n    },\n\n    received(data) {\n      exportLoader.classList.add(\"hidden\");\n      exportButton.classList.remove(\"hidden\");\n\n      if (data.status === \"success\") {\n        const htmlLink = `<a href=\"${data.export_url}\" id=\"export-link\" class=\"underline\">Export - ${data.created_at}</a>`;\n        this.exportContainer.innerHTML = htmlLink;\n        document.getElementById(\"export-link\").click();\n      } else {\n        const htmlError = \"<p>An error occured. Please try again later.</p>\";\n        this.exportContainer.innerHTML = htmlError;\n      }\n    }\n  });\n});\n", "import \"@hotwired/turbo-rails\";\n\nimport \"./controllers\";\nimport \"./channels\";\n\nimport toastr from \"toastr\";\nwindow.toastr = toastr;\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAO;AAAP;AAAA;AAAA,MAAO,mBAAQ;AAAA,QACb,QAAQ,OAAO,YAAY,cAAc,UAAU;AAAA,QACnD,WAAW,OAAO,cAAc,cAAc,YAAY;AAAA,MAC5D;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,OAAM,oBAAI,KAAK,GAAE,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,cAAc,IAAI;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,iBAAiB,kBAAkB,aAAa,KAAK,WAAW,CAAC,yBAAyB,KAAK,YAAY,cAAc,IAAI;AACjN,iBAAK;AACL,gBAAI,KAAK,qBAAqB,GAAG;AAC/B,6BAAO,IAAI,+EAA+E,aAAa,KAAK,cAAc,CAAC,IAAI;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,eAAe,EAAE;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,UAClB,UAAU;AAAA,QACZ;AAAA,QACA,sBAAsB;AAAA,QACtB,aAAa;AAAA,UACX;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA;AAAA;;;ACnBA,MAOO,eAAe,WAChB,oBAEA,SAEA,YAuKC;AAnLP;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,CAAC,EAAE;AACnF,mBAAO;AAAA,UACT,OAAO;AACL,kBAAM,kBAAkB,CAAC,GAAG,WAAW,GAAG,KAAK,SAAS,gBAAgB,CAAC,CAAC;AAC1E,2BAAO,IAAI,uCAAuC,KAAK,SAAS,CAAC,mBAAmB,eAAe,EAAE;AACrG,gBAAI,KAAK,WAAW;AAAE,mBAAK,uBAAuB;AAAA,YAAE;AACpD,iBAAK,YAAY,IAAI,iBAAS,UAAU,KAAK,SAAS,KAAK,eAAe;AAC1E,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,CAAC,EAAE;AACrE,cAAI,KAAK,SAAS,GAAG;AACnB,gBAAI;AACF,qBAAO,KAAK,MAAM;AAAA,YACpB,SAASC,QAAO;AACd,6BAAO,IAAI,8BAA8BA,MAAK;AAAA,YAChD,UACA;AACE,6BAAO,IAAI,0BAA0B,KAAK,YAAY,WAAW,IAAI;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,QAEA,mBAAmB;AACjB,iBAAO,KAAK,QAAQ,oBAAoB;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,SAAS,EAAE,IAAI;AAAA,UACrC;AAAA,QACF;AAAA,QAEA,yBAAyB;AACvB,mBAAS,aAAa,KAAK,QAAQ;AACjC,iBAAK,UAAU,KAAK,SAAS,EAAE,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,kBAAI,KAAK,iBAAiB,GAAG;AAC3B,qBAAK,qBAAqB;AAAA,cAC5B;AACA,mBAAK,QAAQ,cAAc;AAC3B,qBAAO,KAAK,cAAc,OAAO;AAAA,YACnC,KAAK,cAAc;AACjB,6BAAO,IAAI,0BAA0B,MAAM,EAAE;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,kBAAI,KAAK,oBAAoB;AAC3B,qBAAK,qBAAqB;AAC1B,uBAAO,KAAK,cAAc,OAAO,YAAY,aAAa,EAAC,aAAa,KAAI,CAAC;AAAA,cAC/E,OAAO;AACL,uBAAO,KAAK,cAAc,OAAO,YAAY,aAAa,EAAC,aAAa,MAAK,CAAC;AAAA,cAChF;AAAA,YACF,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,CAAC,eAAe;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;;;ACnLf,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,UAAU,EAAE;AAC1E,iBAAK,qBAAqB,KAAK,YAAY;AAAA,UAC7C,OACK;AACH,2BAAO,IAAI,8CAA8C,aAAa,UAAU,EAAE;AAAA,UACpF;AACA,eAAK,kBAAkB;AAAA,QACzB;AAAA,QAEA,OAAO,cAAc;AACnB,yBAAO,IAAI,oCAAoC,aAAa,UAAU,EAAE;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,UAAU,EAAE;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,UAAU,EAAE;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;;;ACtCO,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;AA/EA,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;AACrC,eAAK,eAAe,CAAC;AAAA,QACvB;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,QAEA,eAAe,aAAa;AAC1B,eAAK,eAAe,CAAC,GAAG,KAAK,cAAc,WAAW;AAAA,QACxD;AAAA,MACF;AAAA;AAAA;;;AC9DA;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,IAAI,IAAI;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;AAcA,aAAO,UAAU,SAAS,yBAA0B;AAClD,YAAI,UAAU,CAAC;AACf,YAAI,OAAO,QAAQ,OAAO,CAAC;AAY3B,gBAAQ,OAAO,SAAS,KAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AACvE,cAAI,SAAS,aAAa,KAAK;AAE/B,cAAI,OAAO,QAAQ;AACjB,oBAAQ,OAAO,QAAQ,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,CAAC;AAAA,UAC7D;AAAA,QACF;AAWA,gBAAQ,KAAK,SAAS,GAAI,OAAOC,KAAI;AACnC,cAAI,CAAC,KAAK,KAAK,GAAG;AAChB,iBAAK,KAAK,IAAI,CAAC;AAAA,UACjB;AAEA,eAAK,KAAK,EAAE,KAAKA,GAAE;AAAA,QACrB;AAWA,gBAAQ,OAAO,SAAS,KAAM,OAAOA,KAAI;AACvC,mBAAS,MAAO;AACd,YAAAA,IAAG,MAAM,MAAM,SAAS;AACxB,oBAAQ,IAAI,OAAO,GAAG;AAAA,UACxB;AACA,eAAK,GAAG,OAAO,GAAG;AAAA,QACpB;AAaA,gBAAQ,MAAM,SAAS,IAAK,OAAOA,KAAI;AACrC,cAAI,OAAO,CAAC;AAEZ,cAAI,SAASA,KAAI;AACf,gBAAI,MAAM,KAAK,KAAK,KAAK;AACzB,gBAAIC,KAAI;AACR,gBAAIC,KAAI,MAAM,IAAI,SAAS;AAE3B,iBAAKD,IAAGA,KAAIC,IAAGD,MAAK;AAClB,kBAAI,IAAIA,EAAC,MAAMD,KAAI;AACjB,qBAAK,KAAK,IAAIC,EAAC,CAAC;AAAA,cAClB;AAAA,YACF;AAAA,UACF;AAEA,eAAK,SAAS,KAAK,KAAK,KAAK,IAAI,OAAO,OAAO,KAAK,KAAK,KAAK;AAAA,QAChE;AAEA,iBAAS,aAAcE,IAAG;AACxB,cAAI,MAAM,KAAKA,EAAC,IAAI,KAAKA,EAAC,IAAI,CAAC;AAC/B,cAAI,MAAMA,GAAE,QAAQ,GAAG;AACvB,cAAI,OAAQ,QAAQ,KAAM,CAACA,EAAC,IAAI,CAACA,GAAE,UAAU,GAAG,GAAG,GAAGA,GAAE,UAAU,MAAM,CAAC,CAAC;AAE1E,cAAI,OAAO,OAAO,KAAK,IAAI;AAC3B,cAAIF,KAAI;AACR,cAAIC,KAAI,KAAK;AAEb,eAAKD,IAAGA,KAAIC,IAAGD,MAAK;AAClB,gBAAI,MAAM,KAAKA,EAAC;AAChB,gBAAI,QAAQ,KAAK;AACf,oBAAM,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,YAC5B;AAEA,gBAAI,KAAK,WAAW,KAAK,KAAK,CAAC,MAAM,KAAK;AACxC,oBAAM,IAAI,OAAO,KAAK,GAAG,CAAC;AAC1B;AAAA,YACF;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAEA,iBAAS,QAASE,IAAG,KAAK,MAAM;AAC9B,cAAIF,KAAI;AACR,cAAIC,KAAI,IAAI;AAEZ,eAAKD,IAAGA,KAAIC,IAAGD,MAAK;AAClB,gBAAI,CAAC,IAAIA,EAAC,EAAG;AACb,gBAAIA,EAAC,EAAE,QAAQE;AACf,gBAAIF,EAAC,EAAE,MAAM,IAAIA,EAAC,GAAG,IAAI;AAAA,UAC3B;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAAA;AAAA;;;ACvIA;AAAA;AAyBA,eAAS,SAAS,OAAO;AACvB,YAAI,OAAO,OAAO;AAClB,eAAO,SAAS,SAAS,QAAQ,YAAY,QAAQ;AAAA,MACvD;AAEA,aAAO,UAAU;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,UAAIG,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,IAAG;AAAA,QAAC;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,eAASC,gBAAe,OAAO;AAC7B,eAAO,qBAAqB,KAAK,KAAK;AAAA,MACxC;AAEA,aAAO,UAAUA;AAAA;AAAA;;;ACrBjB;AAAA;AAAA,UAAIC,UAAS;AAAb,UACI,YAAY;AADhB,UAEIC,kBAAiB;AAGrB,UAAI,UAAU;AAAd,UACI,eAAe;AAGnB,UAAI,iBAAiBD,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,IACfC,gBAAe,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,UACI,WAAW;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,YAAI,SAAS,KAAK,GAAG;AACnB,cAAI,QAAQ,OAAO,MAAM,WAAW,aAAa,MAAM,QAAQ,IAAI;AACnE,kBAAQ,SAAS,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,UAAI,WAAW;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,YAAI,SAAS,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,OAAOD,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;AAAA,UAAIC,YAAW;AAAf,UACI,WAAW;AAGf,UAAI,kBAAkB;AA8CtB,eAASC,UAAS,MAAM,MAAM,SAAS;AACrC,YAAI,UAAU,MACV,WAAW;AAEf,YAAI,OAAO,QAAQ,YAAY;AAC7B,gBAAM,IAAI,UAAU,eAAe;AAAA,QACrC;AACA,YAAI,SAAS,OAAO,GAAG;AACrB,oBAAU,aAAa,UAAU,CAAC,CAAC,QAAQ,UAAU;AACrD,qBAAW,cAAc,UAAU,CAAC,CAAC,QAAQ,WAAW;AAAA,QAC1D;AACA,eAAOD,UAAS,MAAM,MAAM;AAAA,UAC1B,WAAW;AAAA,UACX,WAAW;AAAA,UACX,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AAEA,aAAO,UAAUC;AAAA;AAAA;;;ACpEjB;AAAA;AAGA,aAAO,UAAU,SAASC,eAAe,KAAK;AAC5C,YAAI,OAAO,QAAQ,YAAY,MAAM,GAAG,GAAG;AACzC,gBAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AAAA,QAC5D;AAEA,cAAM,MAAM,MAAM;AAClB,cAAM,QAAQ,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAElE,YAAI,KAAK;AACP,gBAAM,CAAC;AAAA,QACT;AAEA,YAAI,MAAM,GAAG;AACX,iBAAO,IAAI,MAAM,MAAM,MAAM,GAAG;AAAA,QAClC;AAEA,cAAM,WAAW,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC;AACtF,cAAM,OAAO,MAAM,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC3C,cAAM,OAAO,MAAM,QAAQ;AAE3B,YAAI,OAAO,MAAM,MAAM,MAAM,GAAG;AAG9B,iBAAO,IAAI,MAAM,MAAM,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI;AAAA,QACrD;AACA,eAAO,IAAI,MAAM,MAAM,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI;AAAA,MACrD;AAAA;AAAA;;;AC7BA;AAAA;AAAA;AA8BA,eAAS,gBAAgB,MAAMC,YAAW;AACxC,aAAK,OAAO,OAAO,QAAQ;AAC3B,aAAK,UAAU,CAAC,KAAK,QAAQ,GAAG;AAChC,aAAK,YAAYA;AACjB,aAAK,QAAQ,KAAK,MAAMA,UAAS;AAAA,MACnC;AAEA,sBAAgB,UAAU,QAAQ,SAAS,OAAO;AAChD,YAAI,UAAU;AACd,YAAI,QAAQ,KAAK;AACjB,YAAI;AACJ,YAAI,aAAa,MAAM;AACvB,YAAI;AAEJ,YAAI,OAAO,SAAS,YAAY,iBAAiB,QAAQ;AACvD,cAAI,CAAC,KAAK,WAAW,KAAK,QAAQ,OAAO;AACvC,sBAAU;AAAA,UACZ,OAAO;AACL,yBAAa,SAAS,IAAI,MAAM,KAAK,SAAS;AAC9C,iBAAK,KAAK,GAAG,WAAW,KAAK,YAAY,MAAM;AAC7C,kBAAI,MAAM,EAAE,MAAM,KAAM;AACtB;AAAA,cACF,WAAW,KAAK,UAAU,QAAQ;AAChC,0BAAU,MAAM,EAAE,MAAM,UAAU,EAAE;AAAA,cACtC,OAAO;AACL,0BAAU;AAAA,cACZ;AAAA,YACF;AAGA,sBAAU,WAAW;AAAA,UACvB;AAAA,QACF,WACS,OAAO,MAAM,UAAU,YAAY;AAC1C,oBAAU,CAAC;AAEX,eAAK,KAAK,MAAM,QAAQ,QAAQ;AAC9B,gBAAI,KAAK,MAAM,MAAM,EAAE,CAAC,GAAG;AACzB,sBAAQ,QAAQ,MAAM,IAAI,MAAM,EAAE;AAAA,YACpC;AAAA,UACF;AAAA,QACF,WACS,OAAO,SAAS,UAAU;AACjC,oBAAU,CAAC;AAEX,mBAAS,OAAO,OAAO;AACrB,gBAAI,KAAK,MAAM,GAAG,GAAG;AACnB,sBAAQ,GAAG,IAAI,MAAM,GAAG;AAAA,YAC1B;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAEA,aAAO,UAAU,SAAS,MAAM,MAAMA,YAAW;AAC/C,YAAI,UAAU,IAAI,gBAAgB,MAAMA,cAAa,QAAQ;AAC7D,YAAI,OAAO,QAAQ,aAAa;AAC9B,iBAAO,QAAQ,MAAM,IAAI;AAAA,QAC3B;AAEA,eAAO;AAAA,MACT;AAAA;AAAA;;;AC5FA;AAAA;AAAA,UAAI,WAAW;AACf,UAAI,kBAAkB;AAatB,aAAO,UAAU,SAAS,QAAQ,SAAS;AACzC,iBAAS,KAAKC,UAAS;AACrB,cAAI,SAAS,SAASA,UAAS,QAAQ,eAAe;AAGtD,iBAAO,UAAU,OAAO,UAAU;AAAA,QACpC;AAEA,eAAO,UAAU,KAAK,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI;AAAA,MACjD;AAAA;AAAA;;;ACvBA;AAAA;AAOA,OAAC,WAAY;AACZ;AAEA,YAAI,SAAS,CAAC,EAAE;AAEhB,iBAASC,eAAc;AACtB,cAAI,UAAU;AAEd,mBAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AAC1C,gBAAI,MAAM,UAAUA,EAAC;AACrB,gBAAI,KAAK;AACR,wBAAU,YAAY,SAAS,WAAW,GAAG,CAAC;AAAA,YAC/C;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,WAAY,KAAK;AACzB,cAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,UAAU;AACvD,mBAAO;AAAA,UACR;AAEA,cAAI,OAAO,QAAQ,UAAU;AAC5B,mBAAO;AAAA,UACR;AAEA,cAAI,MAAM,QAAQ,GAAG,GAAG;AACvB,mBAAOD,aAAW,MAAM,MAAM,GAAG;AAAA,UAClC;AAEA,cAAI,IAAI,aAAa,OAAO,UAAU,YAAY,CAAC,IAAI,SAAS,SAAS,EAAE,SAAS,eAAe,GAAG;AACrG,mBAAO,IAAI,SAAS;AAAA,UACrB;AAEA,cAAI,UAAU;AAEd,mBAAS,OAAO,KAAK;AACpB,gBAAI,OAAO,KAAK,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG;AACtC,wBAAU,YAAY,SAAS,GAAG;AAAA,YACnC;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,YAAa,OAAO,UAAU;AACtC,cAAI,CAAC,UAAU;AACd,mBAAO;AAAA,UACR;AAEA,cAAI,OAAO;AACV,mBAAO,QAAQ,MAAM;AAAA,UACtB;AAEA,iBAAO,QAAQ;AAAA,QAChB;AAEA,YAAI,OAAO,WAAW,eAAe,OAAO,SAAS;AACpD,UAAAA,aAAW,UAAUA;AACrB,iBAAO,UAAUA;AAAA,QAClB,WAAW,OAAO,WAAW,cAAc,OAAO,OAAO,QAAQ,YAAY,OAAO,KAAK;AAExF,iBAAO,cAAc,CAAC,GAAG,WAAY;AACpC,mBAAOA;AAAA,UACR,CAAC;AAAA,QACF,OAAO;AACN,iBAAO,aAAaA;AAAA,QACrB;AAAA,MACD,GAAE;AAAA;AAAA;;;;;;ACzEF,aAAA,UAAS,SAASE,eAAc,KAAW;AACzC,YAAI,OAAO,QAAQ,YAAY,OAAO,MAAM,GAAG,GAAG;AAChD,gBAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;QAC5D;AAEA,cAAM,MAAM,MAAM;AAClB,cAAM,QAAQ,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAElE,YAAI,KAAK;AACP,gBAAM,CAAC;QACT;AAEA,YAAI,MAAM,GAAG;AACX,iBAAO,IAAI,MAAM,MAAM,MAAM,GAAG;QAClC;AAEA,cAAM,WAAW,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC;AACtF,cAAM,OAAO,MAAM,QAAQ,QAAQ;AACnC,cAAM,OAAO,MAAM,QAAQ;AAE3B,YAAI,OAAO,MAAM,MAAM,MAAM,GAAG;AAG9B,iBAAO,IAAI,MAAM,MAAM,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI;QACrD;AAEA,eAAO,IAAI,MAAM,MAAM,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI;MACrD;;;;;AC9BA;AAAA;AAAA;AAEA,UAAIC,OAAM,OAAO,UAAU;AAA3B,UACI,SAAS;AASb,eAAS,SAAS;AAAA,MAAC;AASnB,UAAI,OAAO,QAAQ;AACjB,eAAO,YAAY,uBAAO,OAAO,IAAI;AAMrC,YAAI,CAAC,IAAI,OAAO,EAAE,UAAW,UAAS;AAAA,MACxC;AAWA,eAAS,GAAGC,KAAI,SAAS,MAAM;AAC7B,aAAK,KAAKA;AACV,aAAK,UAAU;AACf,aAAK,OAAO,QAAQ;AAAA,MACtB;AAaA,eAAS,YAAY,SAAS,OAAOA,KAAI,SAAS,MAAM;AACtD,YAAI,OAAOA,QAAO,YAAY;AAC5B,gBAAM,IAAI,UAAU,iCAAiC;AAAA,QACvD;AAEA,YAAI,WAAW,IAAI,GAAGA,KAAI,WAAW,SAAS,IAAI,GAC9C,MAAM,SAAS,SAAS,QAAQ;AAEpC,YAAI,CAAC,QAAQ,QAAQ,GAAG,EAAG,SAAQ,QAAQ,GAAG,IAAI,UAAU,QAAQ;AAAA,iBAC3D,CAAC,QAAQ,QAAQ,GAAG,EAAE,GAAI,SAAQ,QAAQ,GAAG,EAAE,KAAK,QAAQ;AAAA,YAChE,SAAQ,QAAQ,GAAG,IAAI,CAAC,QAAQ,QAAQ,GAAG,GAAG,QAAQ;AAE3D,eAAO;AAAA,MACT;AASA,eAAS,WAAW,SAAS,KAAK;AAChC,YAAI,EAAE,QAAQ,iBAAiB,EAAG,SAAQ,UAAU,IAAI,OAAO;AAAA,YAC1D,QAAO,QAAQ,QAAQ,GAAG;AAAA,MACjC;AASA,eAASC,gBAAe;AACtB,aAAK,UAAU,IAAI,OAAO;AAC1B,aAAK,eAAe;AAAA,MACtB;AASA,MAAAA,cAAa,UAAU,aAAa,SAAS,aAAa;AACxD,YAAI,QAAQ,CAAC,GACT,QACA;AAEJ,YAAI,KAAK,iBAAiB,EAAG,QAAO;AAEpC,aAAK,QAAS,SAAS,KAAK,SAAU;AACpC,cAAIF,KAAI,KAAK,QAAQ,IAAI,EAAG,OAAM,KAAK,SAAS,KAAK,MAAM,CAAC,IAAI,IAAI;AAAA,QACtE;AAEA,YAAI,OAAO,uBAAuB;AAChC,iBAAO,MAAM,OAAO,OAAO,sBAAsB,MAAM,CAAC;AAAA,QAC1D;AAEA,eAAO;AAAA,MACT;AASA,MAAAE,cAAa,UAAU,YAAY,SAAS,UAAU,OAAO;AAC3D,YAAI,MAAM,SAAS,SAAS,QAAQ,OAChC,WAAW,KAAK,QAAQ,GAAG;AAE/B,YAAI,CAAC,SAAU,QAAO,CAAC;AACvB,YAAI,SAAS,GAAI,QAAO,CAAC,SAAS,EAAE;AAEpC,iBAASC,KAAI,GAAGC,KAAI,SAAS,QAAQC,MAAK,IAAI,MAAMD,EAAC,GAAGD,KAAIC,IAAGD,MAAK;AAClE,UAAAE,IAAGF,EAAC,IAAI,SAASA,EAAC,EAAE;AAAA,QACtB;AAEA,eAAOE;AAAA,MACT;AASA,MAAAH,cAAa,UAAU,gBAAgB,SAAS,cAAc,OAAO;AACnE,YAAI,MAAM,SAAS,SAAS,QAAQ,OAChC,YAAY,KAAK,QAAQ,GAAG;AAEhC,YAAI,CAAC,UAAW,QAAO;AACvB,YAAI,UAAU,GAAI,QAAO;AACzB,eAAO,UAAU;AAAA,MACnB;AASA,MAAAA,cAAa,UAAU,OAAO,SAAS,KAAK,OAAO,IAAII,KAAIC,KAAI,IAAI,IAAI;AACrE,YAAI,MAAM,SAAS,SAAS,QAAQ;AAEpC,YAAI,CAAC,KAAK,QAAQ,GAAG,EAAG,QAAO;AAE/B,YAAI,YAAY,KAAK,QAAQ,GAAG,GAC5B,MAAM,UAAU,QAChB,MACAJ;AAEJ,YAAI,UAAU,IAAI;AAChB,cAAI,UAAU,KAAM,MAAK,eAAe,OAAO,UAAU,IAAI,QAAW,IAAI;AAE5E,kBAAQ,KAAK;AAAA,YACX,KAAK;AAAG,qBAAO,UAAU,GAAG,KAAK,UAAU,OAAO,GAAG;AAAA,YACrD,KAAK;AAAG,qBAAO,UAAU,GAAG,KAAK,UAAU,SAAS,EAAE,GAAG;AAAA,YACzD,KAAK;AAAG,qBAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAIG,GAAE,GAAG;AAAA,YAC7D,KAAK;AAAG,qBAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAIA,KAAIC,GAAE,GAAG;AAAA,YACjE,KAAK;AAAG,qBAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAID,KAAIC,KAAI,EAAE,GAAG;AAAA,YACrE,KAAK;AAAG,qBAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAID,KAAIC,KAAI,IAAI,EAAE,GAAG;AAAA,UAC3E;AAEA,eAAKJ,KAAI,GAAG,OAAO,IAAI,MAAM,MAAK,CAAC,GAAGA,KAAI,KAAKA,MAAK;AAClD,iBAAKA,KAAI,CAAC,IAAI,UAAUA,EAAC;AAAA,UAC3B;AAEA,oBAAU,GAAG,MAAM,UAAU,SAAS,IAAI;AAAA,QAC5C,OAAO;AACL,cAAI,SAAS,UAAU,QACnBK;AAEJ,eAAKL,KAAI,GAAGA,KAAI,QAAQA,MAAK;AAC3B,gBAAI,UAAUA,EAAC,EAAE,KAAM,MAAK,eAAe,OAAO,UAAUA,EAAC,EAAE,IAAI,QAAW,IAAI;AAElF,oBAAQ,KAAK;AAAA,cACX,KAAK;AAAG,0BAAUA,EAAC,EAAE,GAAG,KAAK,UAAUA,EAAC,EAAE,OAAO;AAAG;AAAA,cACpD,KAAK;AAAG,0BAAUA,EAAC,EAAE,GAAG,KAAK,UAAUA,EAAC,EAAE,SAAS,EAAE;AAAG;AAAA,cACxD,KAAK;AAAG,0BAAUA,EAAC,EAAE,GAAG,KAAK,UAAUA,EAAC,EAAE,SAAS,IAAIG,GAAE;AAAG;AAAA,cAC5D,KAAK;AAAG,0BAAUH,EAAC,EAAE,GAAG,KAAK,UAAUA,EAAC,EAAE,SAAS,IAAIG,KAAIC,GAAE;AAAG;AAAA,cAChE;AACE,oBAAI,CAAC,KAAM,MAAKC,KAAI,GAAG,OAAO,IAAI,MAAM,MAAK,CAAC,GAAGA,KAAI,KAAKA,MAAK;AAC7D,uBAAKA,KAAI,CAAC,IAAI,UAAUA,EAAC;AAAA,gBAC3B;AAEA,0BAAUL,EAAC,EAAE,GAAG,MAAM,UAAUA,EAAC,EAAE,SAAS,IAAI;AAAA,YACpD;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAWA,MAAAD,cAAa,UAAU,KAAK,SAAS,GAAG,OAAOD,KAAI,SAAS;AAC1D,eAAO,YAAY,MAAM,OAAOA,KAAI,SAAS,KAAK;AAAA,MACpD;AAWA,MAAAC,cAAa,UAAU,OAAO,SAAS,KAAK,OAAOD,KAAI,SAAS;AAC9D,eAAO,YAAY,MAAM,OAAOA,KAAI,SAAS,IAAI;AAAA,MACnD;AAYA,MAAAC,cAAa,UAAU,iBAAiB,SAAS,eAAe,OAAOD,KAAI,SAAS,MAAM;AACxF,YAAI,MAAM,SAAS,SAAS,QAAQ;AAEpC,YAAI,CAAC,KAAK,QAAQ,GAAG,EAAG,QAAO;AAC/B,YAAI,CAACA,KAAI;AACP,qBAAW,MAAM,GAAG;AACpB,iBAAO;AAAA,QACT;AAEA,YAAI,YAAY,KAAK,QAAQ,GAAG;AAEhC,YAAI,UAAU,IAAI;AAChB,cACE,UAAU,OAAOA,QAChB,CAAC,QAAQ,UAAU,UACnB,CAAC,WAAW,UAAU,YAAY,UACnC;AACA,uBAAW,MAAM,GAAG;AAAA,UACtB;AAAA,QACF,OAAO;AACL,mBAASE,KAAI,GAAG,SAAS,CAAC,GAAG,SAAS,UAAU,QAAQA,KAAI,QAAQA,MAAK;AACvE,gBACE,UAAUA,EAAC,EAAE,OAAOF,OACnB,QAAQ,CAAC,UAAUE,EAAC,EAAE,QACtB,WAAW,UAAUA,EAAC,EAAE,YAAY,SACrC;AACA,qBAAO,KAAK,UAAUA,EAAC,CAAC;AAAA,YAC1B;AAAA,UACF;AAKA,cAAI,OAAO,OAAQ,MAAK,QAAQ,GAAG,IAAI,OAAO,WAAW,IAAI,OAAO,CAAC,IAAI;AAAA,cACpE,YAAW,MAAM,GAAG;AAAA,QAC3B;AAEA,eAAO;AAAA,MACT;AASA,MAAAD,cAAa,UAAU,qBAAqB,SAAS,mBAAmB,OAAO;AAC7E,YAAI;AAEJ,YAAI,OAAO;AACT,gBAAM,SAAS,SAAS,QAAQ;AAChC,cAAI,KAAK,QAAQ,GAAG,EAAG,YAAW,MAAM,GAAG;AAAA,QAC7C,OAAO;AACL,eAAK,UAAU,IAAI,OAAO;AAC1B,eAAK,eAAe;AAAA,QACtB;AAEA,eAAO;AAAA,MACT;AAKA,MAAAA,cAAa,UAAU,MAAMA,cAAa,UAAU;AACpD,MAAAA,cAAa,UAAU,cAAcA,cAAa,UAAU;AAK5D,MAAAA,cAAa,WAAW;AAKxB,MAAAA,cAAa,eAAeA;AAK5B,UAAI,gBAAgB,OAAO,QAAQ;AACjC,eAAO,UAAUA;AAAA,MACnB;AAAA;AAAA;;;AC/UA;AAAA;AAAA,aAAO,UAAU,SAAS,eAAgBO,IAAGC,IAAG;AAC9C,YAAID,OAAMC,GAAG,QAAO;AACpB,iBAASC,MAAKF,GAAG,KAAI,EAAEE,MAAKD,IAAI,QAAO;AACvC,iBAASC,MAAKD,GAAG,KAAID,GAAEE,EAAC,MAAMD,GAAEC,EAAC,EAAG,QAAO;AAC3C,eAAO;AAAA,MACT;AAAA;AAAA;;;ACLA;AAAA;AAAA,eAAS,eAAe,UAAU,SAAS;AAEzC,YAAI,OAAO,YAAY,WAAW;AAChC,oBAAU,EAAE,SAAS,QAAQ;AAAA,QAC/B;AAEA,aAAK,oBAAoB,KAAK,MAAM,KAAK,UAAU,QAAQ,CAAC;AAC5D,aAAK,YAAY;AACjB,aAAK,WAAW,WAAW,CAAC;AAC5B,aAAK,gBAAgB,WAAW,QAAQ,gBAAgB;AACxD,aAAK,MAAM;AACX,aAAK,UAAU,CAAC;AAChB,aAAK,YAAY;AACjB,aAAK,oBAAoB;AACzB,aAAK,sBAAsB;AAC3B,aAAK,WAAW;AAChB,aAAK,kBAAkB;AACvB,aAAK,SAAS;AAEd,YAAI,KAAK,SAAS,SAAS;AACzB,eAAK,kBAAkB,KAAK,UAAU,MAAM,CAAC;AAAA,QAC/C;AAAA,MACF;AACA,aAAO,UAAU;AAEjB,qBAAe,UAAU,QAAQ,WAAW;AAC1C,aAAK,YAAY;AACjB,aAAK,YAAY,KAAK,kBAAkB,MAAM,CAAC;AAAA,MACjD;AAEA,qBAAe,UAAU,OAAO,WAAW;AACzC,YAAI,KAAK,UAAU;AACjB,uBAAa,KAAK,QAAQ;AAAA,QAC5B;AACA,YAAI,KAAK,QAAQ;AACf,uBAAa,KAAK,MAAM;AAAA,QAC1B;AAEA,aAAK,YAAkB,CAAC;AACxB,aAAK,kBAAkB;AAAA,MACzB;AAEA,qBAAe,UAAU,QAAQ,SAAS,KAAK;AAC7C,YAAI,KAAK,UAAU;AACjB,uBAAa,KAAK,QAAQ;AAAA,QAC5B;AAEA,YAAI,CAAC,KAAK;AACR,iBAAO;AAAA,QACT;AACA,YAAI,eAAc,oBAAI,KAAK,GAAE,QAAQ;AACrC,YAAI,OAAO,cAAc,KAAK,mBAAmB,KAAK,eAAe;AACnE,eAAK,QAAQ,KAAK,GAAG;AACrB,eAAK,QAAQ,QAAQ,IAAI,MAAM,iCAAiC,CAAC;AACjE,iBAAO;AAAA,QACT;AAEA,aAAK,QAAQ,KAAK,GAAG;AAErB,YAAI,UAAU,KAAK,UAAU,MAAM;AACnC,YAAI,YAAY,QAAW;AACzB,cAAI,KAAK,iBAAiB;AAExB,iBAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,CAAC;AAC9C,sBAAU,KAAK,gBAAgB,MAAM,EAAE;AAAA,UACzC,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,YAAIC,QAAO;AACX,aAAK,SAAS,WAAW,WAAW;AAClC,UAAAA,MAAK;AAEL,cAAIA,MAAK,qBAAqB;AAC5B,YAAAA,MAAK,WAAW,WAAW,WAAW;AACpC,cAAAA,MAAK,oBAAoBA,MAAK,SAAS;AAAA,YACzC,GAAGA,MAAK,iBAAiB;AAEzB,gBAAIA,MAAK,SAAS,OAAO;AACrB,cAAAA,MAAK,SAAS,MAAM;AAAA,YACxB;AAAA,UACF;AAEA,UAAAA,MAAK,IAAIA,MAAK,SAAS;AAAA,QACzB,GAAG,OAAO;AAEV,YAAI,KAAK,SAAS,OAAO;AACrB,eAAK,OAAO,MAAM;AAAA,QACtB;AAEA,eAAO;AAAA,MACT;AAEA,qBAAe,UAAU,UAAU,SAASC,KAAI,YAAY;AAC1D,aAAK,MAAMA;AAEX,YAAI,YAAY;AACd,cAAI,WAAW,SAAS;AACtB,iBAAK,oBAAoB,WAAW;AAAA,UACtC;AACA,cAAI,WAAW,IAAI;AACjB,iBAAK,sBAAsB,WAAW;AAAA,UACxC;AAAA,QACF;AAEA,YAAID,QAAO;AACX,YAAI,KAAK,qBAAqB;AAC5B,eAAK,WAAW,WAAW,WAAW;AACpC,YAAAA,MAAK,oBAAoB;AAAA,UAC3B,GAAGA,MAAK,iBAAiB;AAAA,QAC3B;AAEA,aAAK,mBAAkB,oBAAI,KAAK,GAAE,QAAQ;AAE1C,aAAK,IAAI,KAAK,SAAS;AAAA,MACzB;AAEA,qBAAe,UAAU,MAAM,SAASC,KAAI;AAC1C,gBAAQ,IAAI,0CAA0C;AACtD,aAAK,QAAQA,GAAE;AAAA,MACjB;AAEA,qBAAe,UAAU,QAAQ,SAASA,KAAI;AAC5C,gBAAQ,IAAI,4CAA4C;AACxD,aAAK,QAAQA,GAAE;AAAA,MACjB;AAEA,qBAAe,UAAU,QAAQ,eAAe,UAAU;AAE1D,qBAAe,UAAU,SAAS,WAAW;AAC3C,eAAO,KAAK;AAAA,MACd;AAEA,qBAAe,UAAU,WAAW,WAAW;AAC7C,eAAO,KAAK;AAAA,MACd;AAEA,qBAAe,UAAU,YAAY,WAAW;AAC9C,YAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,iBAAO;AAAA,QACT;AAEA,YAAI,SAAS,CAAC;AACd,YAAI,YAAY;AAChB,YAAI,iBAAiB;AAErB,iBAASC,KAAI,GAAGA,KAAI,KAAK,QAAQ,QAAQA,MAAK;AAC5C,cAAIC,SAAQ,KAAK,QAAQD,EAAC;AAC1B,cAAI,UAAUC,OAAM;AACpB,cAAI,SAAS,OAAO,OAAO,KAAK,KAAK;AAErC,iBAAO,OAAO,IAAI;AAElB,cAAI,SAAS,gBAAgB;AAC3B,wBAAYA;AACZ,6BAAiB;AAAA,UACnB;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAAA;AAAA;;;ACjKA;AAAA;AAAA,UAAI,iBAAiB;AAErB,cAAQ,YAAY,SAAS,SAAS;AACpC,YAAI,WAAW,QAAQ,SAAS,OAAO;AACvC,eAAO,IAAI,eAAe,UAAU;AAAA,UAChC,SAAS,YAAY,QAAQ,WAAW,QAAQ,YAAY;AAAA,UAC5D,OAAO,WAAW,QAAQ;AAAA,UAC1B,cAAc,WAAW,QAAQ;AAAA,QACrC,CAAC;AAAA,MACH;AAEA,cAAQ,WAAW,SAAS,SAAS;AACnC,YAAI,mBAAmB,OAAO;AAC5B,iBAAO,CAAC,EAAE,OAAO,OAAO;AAAA,QAC1B;AAEA,YAAI,OAAO;AAAA,UACT,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,YAAY,IAAI;AAAA,UAChB,YAAY;AAAA,UACZ,WAAW;AAAA,QACb;AACA,iBAAS,OAAO,SAAS;AACvB,eAAK,GAAG,IAAI,QAAQ,GAAG;AAAA,QACzB;AAEA,YAAI,KAAK,aAAa,KAAK,YAAY;AACrC,gBAAM,IAAI,MAAM,uCAAuC;AAAA,QACzD;AAEA,YAAI,WAAW,CAAC;AAChB,iBAASC,KAAI,GAAGA,KAAI,KAAK,SAASA,MAAK;AACrC,mBAAS,KAAK,KAAK,cAAcA,IAAG,IAAI,CAAC;AAAA,QAC3C;AAEA,YAAI,WAAW,QAAQ,WAAW,CAAC,SAAS,QAAQ;AAClD,mBAAS,KAAK,KAAK,cAAcA,IAAG,IAAI,CAAC;AAAA,QAC3C;AAGA,iBAAS,KAAK,SAASC,IAAEC,IAAG;AAC1B,iBAAOD,KAAIC;AAAA,QACb,CAAC;AAED,eAAO;AAAA,MACT;AAEA,cAAQ,gBAAgB,SAAS,SAAS,MAAM;AAC9C,YAAI,SAAU,KAAK,YACd,KAAK,OAAO,IAAI,IACjB;AAEJ,YAAI,UAAU,KAAK,MAAM,SAAS,KAAK,IAAI,KAAK,YAAY,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ,OAAO,CAAC;AAC/F,kBAAU,KAAK,IAAI,SAAS,KAAK,UAAU;AAE3C,eAAO;AAAA,MACT;AAEA,cAAQ,OAAO,SAAS,KAAK,SAAS,SAAS;AAC7C,YAAI,mBAAmB,OAAO;AAC5B,oBAAU;AACV,oBAAU;AAAA,QACZ;AAEA,YAAI,CAAC,SAAS;AACZ,oBAAU,CAAC;AACX,mBAAS,OAAO,KAAK;AACnB,gBAAI,OAAO,IAAI,GAAG,MAAM,YAAY;AAClC,sBAAQ,KAAK,GAAG;AAAA,YAClB;AAAA,UACF;AAAA,QACF;AAEA,iBAASF,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACvC,cAAI,SAAW,QAAQA,EAAC;AACxB,cAAI,WAAW,IAAI,MAAM;AAEzB,cAAI,MAAM,IAAI,SAAS,aAAaG,WAAU;AAC5C,gBAAI,KAAW,QAAQ,UAAU,OAAO;AACxC,gBAAI,OAAW,MAAM,UAAU,MAAM,KAAK,WAAW,CAAC;AACtD,gBAAI,WAAW,KAAK,IAAI;AAExB,iBAAK,KAAK,SAAS,KAAK;AACtB,kBAAI,GAAG,MAAM,GAAG,GAAG;AACjB;AAAA,cACF;AACA,kBAAI,KAAK;AACP,0BAAU,CAAC,IAAI,GAAG,UAAU;AAAA,cAC9B;AACA,uBAAS,MAAM,MAAM,SAAS;AAAA,YAChC,CAAC;AAED,eAAG,QAAQ,WAAW;AACpB,cAAAA,UAAS,MAAM,KAAK,IAAI;AAAA,YAC1B,CAAC;AAAA,UACH,EAAE,KAAK,KAAK,QAAQ;AACpB,cAAI,MAAM,EAAE,UAAU;AAAA,QACxB;AAAA,MACF;AAAA;AAAA;;;ACnGA,MAAAC,iBAAA;AAAA;AAAA,aAAO,UAAU;AAAA;AAAA;;;ACAjB;AAAA;AAaA,OAAE,SAAUC,SAAQ,SAAU;AAE7B;AAEA,YAAK,OAAO,WAAW,YAAY,OAAO,OAAO,YAAY,UAAW;AASvE,iBAAO,UAAUA,QAAO,WACvB,QAASA,SAAQ,IAAK,IACtB,SAAUC,IAAI;AACb,gBAAK,CAACA,GAAE,UAAW;AAClB,oBAAM,IAAI,MAAO,0CAA2C;AAAA,YAC7D;AACA,mBAAO,QAASA,EAAE;AAAA,UACnB;AAAA,QACF,OAAO;AACN,kBAASD,OAAO;AAAA,QACjB;AAAA,MAGD,GAAK,OAAO,WAAW,cAAc,SAAS,SAAM,SAAUE,SAAQ,UAAW;AAMjF;AAEA,YAAI,MAAM,CAAC;AAEX,YAAI,WAAW,OAAO;AAEtB,YAAIC,SAAQ,IAAI;AAEhB,YAAI,OAAO,IAAI,OAAO,SAAU,OAAQ;AACvC,iBAAO,IAAI,KAAK,KAAM,KAAM;AAAA,QAC7B,IAAI,SAAU,OAAQ;AACrB,iBAAO,IAAI,OAAO,MAAO,CAAC,GAAG,KAAM;AAAA,QACpC;AAGA,YAAI,OAAO,IAAI;AAEf,YAAIC,WAAU,IAAI;AAElB,YAAI,aAAa,CAAC;AAElB,YAAIC,YAAW,WAAW;AAE1B,YAAI,SAAS,WAAW;AAExB,YAAI,aAAa,OAAO;AAExB,YAAI,uBAAuB,WAAW,KAAM,MAAO;AAEnD,YAAI,UAAU,CAAC;AAEf,YAAI,aAAa,SAASC,YAAY,KAAM;AAS1C,iBAAO,OAAO,QAAQ,cAAc,OAAO,IAAI,aAAa,YAC3D,OAAO,IAAI,SAAS;AAAA,QACtB;AAGD,YAAI,WAAW,SAASC,UAAU,KAAM;AACtC,iBAAO,OAAO,QAAQ,QAAQ,IAAI;AAAA,QACnC;AAGD,YAAIC,YAAWN,QAAO;AAIrB,YAAI,4BAA4B;AAAA,UAC/B,MAAM;AAAA,UACN,KAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,QACX;AAEA,iBAAS,QAAS,MAAM,MAAM,KAAM;AACnC,gBAAM,OAAOM;AAEb,cAAIC,IAAG,KACN,SAAS,IAAI,cAAe,QAAS;AAEtC,iBAAO,OAAO;AACd,cAAK,MAAO;AACX,iBAAMA,MAAK,2BAA4B;AAYtC,oBAAM,KAAMA,EAAE,KAAK,KAAK,gBAAgB,KAAK,aAAcA,EAAE;AAC7D,kBAAK,KAAM;AACV,uBAAO,aAAcA,IAAG,GAAI;AAAA,cAC7B;AAAA,YACD;AAAA,UACD;AACA,cAAI,KAAK,YAAa,MAAO,EAAE,WAAW,YAAa,MAAO;AAAA,QAC/D;AAGD,iBAAS,OAAQ,KAAM;AACtB,cAAK,OAAO,MAAO;AAClB,mBAAO,MAAM;AAAA,UACd;AAGA,iBAAO,OAAO,QAAQ,YAAY,OAAO,QAAQ,aAChD,WAAYJ,UAAS,KAAM,GAAI,CAAE,KAAK,WACtC,OAAO;AAAA,QACT;AAOA,YACC,UAAU,SAGV,SAAS,SAAU,UAAU,SAAU;AAItC,iBAAO,IAAI,OAAO,GAAG,KAAM,UAAU,OAAQ;AAAA,QAC9C;AAED,eAAO,KAAK,OAAO,YAAY;AAAA;AAAA,UAG9B,QAAQ;AAAA,UAER,aAAa;AAAA;AAAA,UAGb,QAAQ;AAAA,UAER,SAAS,WAAW;AACnB,mBAAOF,OAAM,KAAM,IAAK;AAAA,UACzB;AAAA;AAAA;AAAA,UAIA,KAAK,SAAU,KAAM;AAGpB,gBAAK,OAAO,MAAO;AAClB,qBAAOA,OAAM,KAAM,IAAK;AAAA,YACzB;AAGA,mBAAO,MAAM,IAAI,KAAM,MAAM,KAAK,MAAO,IAAI,KAAM,GAAI;AAAA,UACxD;AAAA;AAAA;AAAA,UAIA,WAAW,SAAU,OAAQ;AAG5B,gBAAI,MAAM,OAAO,MAAO,KAAK,YAAY,GAAG,KAAM;AAGlD,gBAAI,aAAa;AAGjB,mBAAO;AAAA,UACR;AAAA;AAAA,UAGA,MAAM,SAAU,UAAW;AAC1B,mBAAO,OAAO,KAAM,MAAM,QAAS;AAAA,UACpC;AAAA,UAEA,KAAK,SAAU,UAAW;AACzB,mBAAO,KAAK,UAAW,OAAO,IAAK,MAAM,SAAU,MAAMM,IAAI;AAC5D,qBAAO,SAAS,KAAM,MAAMA,IAAG,IAAK;AAAA,YACrC,CAAE,CAAE;AAAA,UACL;AAAA,UAEA,OAAO,WAAW;AACjB,mBAAO,KAAK,UAAWN,OAAM,MAAO,MAAM,SAAU,CAAE;AAAA,UACvD;AAAA,UAEA,OAAO,WAAW;AACjB,mBAAO,KAAK,GAAI,CAAE;AAAA,UACnB;AAAA,UAEA,MAAM,WAAW;AAChB,mBAAO,KAAK,GAAI,EAAG;AAAA,UACpB;AAAA,UAEA,MAAM,WAAW;AAChB,mBAAO,KAAK,UAAW,OAAO,KAAM,MAAM,SAAU,OAAOM,IAAI;AAC9D,sBAASA,KAAI,KAAM;AAAA,YACpB,CAAE,CAAE;AAAA,UACL;AAAA,UAEA,KAAK,WAAW;AACf,mBAAO,KAAK,UAAW,OAAO,KAAM,MAAM,SAAU,OAAOA,IAAI;AAC9D,qBAAOA,KAAI;AAAA,YACZ,CAAE,CAAE;AAAA,UACL;AAAA,UAEA,IAAI,SAAUA,IAAI;AACjB,gBAAI,MAAM,KAAK,QACdC,KAAI,CAACD,MAAMA,KAAI,IAAI,MAAM;AAC1B,mBAAO,KAAK,UAAWC,MAAK,KAAKA,KAAI,MAAM,CAAE,KAAMA,EAAE,CAAE,IAAI,CAAC,CAAE;AAAA,UAC/D;AAAA,UAEA,KAAK,WAAW;AACf,mBAAO,KAAK,cAAc,KAAK,YAAY;AAAA,UAC5C;AAAA;AAAA;AAAA,UAIA;AAAA,UACA,MAAM,IAAI;AAAA,UACV,QAAQ,IAAI;AAAA,QACb;AAEA,eAAO,SAAS,OAAO,GAAG,SAAS,WAAW;AAC7C,cAAI,SAAS,MAAM,KAAK,MAAM,aAAa,OAC1C,SAAS,UAAW,CAAE,KAAK,CAAC,GAC5BD,KAAI,GACJ,SAAS,UAAU,QACnB,OAAO;AAGR,cAAK,OAAO,WAAW,WAAY;AAClC,mBAAO;AAGP,qBAAS,UAAWA,EAAE,KAAK,CAAC;AAC5B,YAAAA;AAAA,UACD;AAGA,cAAK,OAAO,WAAW,YAAY,CAAC,WAAY,MAAO,GAAI;AAC1D,qBAAS,CAAC;AAAA,UACX;AAGA,cAAKA,OAAM,QAAS;AACnB,qBAAS;AACT,YAAAA;AAAA,UACD;AAEA,iBAAQA,KAAI,QAAQA,MAAM;AAGzB,iBAAO,UAAU,UAAWA,EAAE,MAAO,MAAO;AAG3C,mBAAM,QAAQ,SAAU;AACvB,uBAAO,QAAS,IAAK;AAIrB,oBAAK,SAAS,eAAe,WAAW,MAAO;AAC9C;AAAA,gBACD;AAGA,oBAAK,QAAQ,SAAU,OAAO,cAAe,IAAK,MAC/C,cAAc,MAAM,QAAS,IAAK,KAAQ;AAC5C,wBAAM,OAAQ,IAAK;AAGnB,sBAAK,eAAe,CAAC,MAAM,QAAS,GAAI,GAAI;AAC3C,4BAAQ,CAAC;AAAA,kBACV,WAAY,CAAC,eAAe,CAAC,OAAO,cAAe,GAAI,GAAI;AAC1D,4BAAQ,CAAC;AAAA,kBACV,OAAO;AACN,4BAAQ;AAAA,kBACT;AACA,gCAAc;AAGd,yBAAQ,IAAK,IAAI,OAAO,OAAQ,MAAM,OAAO,IAAK;AAAA,gBAGnD,WAAY,SAAS,QAAY;AAChC,yBAAQ,IAAK,IAAI;AAAA,gBAClB;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAGA,iBAAO;AAAA,QACR;AAEA,eAAO,OAAQ;AAAA;AAAA,UAGd,SAAS,YAAa,UAAU,KAAK,OAAO,GAAI,QAAS,OAAO,EAAG;AAAA;AAAA,UAGnE,SAAS;AAAA,UAET,OAAO,SAAU,KAAM;AACtB,kBAAM,IAAI,MAAO,GAAI;AAAA,UACtB;AAAA,UAEA,MAAM,WAAW;AAAA,UAAC;AAAA,UAElB,eAAe,SAAU,KAAM;AAC9B,gBAAI,OAAO;AAIX,gBAAK,CAAC,OAAOJ,UAAS,KAAM,GAAI,MAAM,mBAAoB;AACzD,qBAAO;AAAA,YACR;AAEA,oBAAQ,SAAU,GAAI;AAGtB,gBAAK,CAAC,OAAQ;AACb,qBAAO;AAAA,YACR;AAGA,mBAAO,OAAO,KAAM,OAAO,aAAc,KAAK,MAAM;AACpD,mBAAO,OAAO,SAAS,cAAc,WAAW,KAAM,IAAK,MAAM;AAAA,UAClE;AAAA,UAEA,eAAe,SAAU,KAAM;AAC9B,gBAAI;AAEJ,iBAAM,QAAQ,KAAM;AACnB,qBAAO;AAAA,YACR;AACA,mBAAO;AAAA,UACR;AAAA;AAAA;AAAA,UAIA,YAAY,SAAU,MAAM,SAAS,KAAM;AAC1C,oBAAS,MAAM,EAAE,OAAO,WAAW,QAAQ,MAAM,GAAG,GAAI;AAAA,UACzD;AAAA,UAEA,MAAM,SAAU,KAAK,UAAW;AAC/B,gBAAI,QAAQI,KAAI;AAEhB,gBAAK,YAAa,GAAI,GAAI;AACzB,uBAAS,IAAI;AACb,qBAAQA,KAAI,QAAQA,MAAM;AACzB,oBAAK,SAAS,KAAM,IAAKA,EAAE,GAAGA,IAAG,IAAKA,EAAE,CAAE,MAAM,OAAQ;AACvD;AAAA,gBACD;AAAA,cACD;AAAA,YACD,OAAO;AACN,mBAAMA,MAAK,KAAM;AAChB,oBAAK,SAAS,KAAM,IAAKA,EAAE,GAAGA,IAAG,IAAKA,EAAE,CAAE,MAAM,OAAQ;AACvD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA;AAAA,UAGA,WAAW,SAAUE,MAAK,SAAU;AACnC,gBAAI,MAAM,WAAW,CAAC;AAEtB,gBAAKA,QAAO,MAAO;AAClB,kBAAK,YAAa,OAAQA,IAAI,CAAE,GAAI;AACnC,uBAAO;AAAA,kBAAO;AAAA,kBACb,OAAOA,SAAQ,WACd,CAAEA,IAAI,IAAIA;AAAA,gBACZ;AAAA,cACD,OAAO;AACN,qBAAK,KAAM,KAAKA,IAAI;AAAA,cACrB;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,SAAS,SAAU,MAAMA,MAAKF,IAAI;AACjC,mBAAOE,QAAO,OAAO,KAAKP,SAAQ,KAAMO,MAAK,MAAMF,EAAE;AAAA,UACtD;AAAA;AAAA;AAAA,UAIA,OAAO,SAAU,OAAO,QAAS;AAChC,gBAAI,MAAM,CAAC,OAAO,QACjBC,KAAI,GACJD,KAAI,MAAM;AAEX,mBAAQC,KAAI,KAAKA,MAAM;AACtB,oBAAOD,IAAI,IAAI,OAAQC,EAAE;AAAA,YAC1B;AAEA,kBAAM,SAASD;AAEf,mBAAO;AAAA,UACR;AAAA,UAEA,MAAM,SAAU,OAAO,UAAU,QAAS;AACzC,gBAAI,iBACH,UAAU,CAAC,GACXA,KAAI,GACJ,SAAS,MAAM,QACf,iBAAiB,CAAC;AAInB,mBAAQA,KAAI,QAAQA,MAAM;AACzB,gCAAkB,CAAC,SAAU,MAAOA,EAAE,GAAGA,EAAE;AAC3C,kBAAK,oBAAoB,gBAAiB;AACzC,wBAAQ,KAAM,MAAOA,EAAE,CAAE;AAAA,cAC1B;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA;AAAA,UAGA,KAAK,SAAU,OAAO,UAAU,KAAM;AACrC,gBAAI,QAAQ,OACXA,KAAI,GACJ,MAAM,CAAC;AAGR,gBAAK,YAAa,KAAM,GAAI;AAC3B,uBAAS,MAAM;AACf,qBAAQA,KAAI,QAAQA,MAAM;AACzB,wBAAQ,SAAU,MAAOA,EAAE,GAAGA,IAAG,GAAI;AAErC,oBAAK,SAAS,MAAO;AACpB,sBAAI,KAAM,KAAM;AAAA,gBACjB;AAAA,cACD;AAAA,YAGD,OAAO;AACN,mBAAMA,MAAK,OAAQ;AAClB,wBAAQ,SAAU,MAAOA,EAAE,GAAGA,IAAG,GAAI;AAErC,oBAAK,SAAS,MAAO;AACpB,sBAAI,KAAM,KAAM;AAAA,gBACjB;AAAA,cACD;AAAA,YACD;AAGA,mBAAO,KAAM,GAAI;AAAA,UAClB;AAAA;AAAA,UAGA,MAAM;AAAA;AAAA;AAAA,UAIN;AAAA,QACD,CAAE;AAEF,YAAK,OAAO,WAAW,YAAa;AACnC,iBAAO,GAAI,OAAO,QAAS,IAAI,IAAK,OAAO,QAAS;AAAA,QACrD;AAGA,eAAO;AAAA,UAAM,uEAAuE,MAAO,GAAI;AAAA,UAC9F,SAAU,IAAI,MAAO;AACpB,uBAAY,aAAa,OAAO,GAAI,IAAI,KAAK,YAAY;AAAA,UAC1D;AAAA,QAAE;AAEH,iBAAS,YAAa,KAAM;AAM3B,cAAI,SAAS,CAAC,CAAC,OAAO,YAAY,OAAO,IAAI,QAC5C,OAAO,OAAQ,GAAI;AAEpB,cAAK,WAAY,GAAI,KAAK,SAAU,GAAI,GAAI;AAC3C,mBAAO;AAAA,UACR;AAEA,iBAAO,SAAS,WAAW,WAAW,KACrC,OAAO,WAAW,YAAY,SAAS,KAAO,SAAS,KAAO;AAAA,QAChE;AACA,YAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWF,SAAUP,SAAS;AACrB,gBAAIO,IACHG,UACA,MACA,SACA,OACAC,WACA,SACA,QACA,kBACA,WACA,cAGA,aACAL,WACA,SACA,gBACA,WACA,eACA,SACAM,WAGA,UAAU,WAAW,IAAI,oBAAI,KAAK,GAClC,eAAeZ,QAAO,UACtB,UAAU,GACV,OAAO,GACP,aAAa,YAAY,GACzB,aAAa,YAAY,GACzB,gBAAgB,YAAY,GAC5B,yBAAyB,YAAY,GACrC,YAAY,SAAUa,IAAGC,IAAI;AAC5B,kBAAKD,OAAMC,IAAI;AACd,+BAAe;AAAA,cAChB;AACA,qBAAO;AAAA,YACR,GAGAC,UAAW,CAAC,EAAI,gBAChBN,OAAM,CAAC,GACP,MAAMA,KAAI,KACV,aAAaA,KAAI,MACjBO,QAAOP,KAAI,MACXR,SAAQQ,KAAI,OAIZP,WAAU,SAAU,MAAM,MAAO;AAChC,kBAAIK,KAAI,GACP,MAAM,KAAK;AACZ,qBAAQA,KAAI,KAAKA,MAAM;AACtB,oBAAK,KAAMA,EAAE,MAAM,MAAO;AACzB,yBAAOA;AAAA,gBACR;AAAA,cACD;AACA,qBAAO;AAAA,YACR,GAEA,WAAW,8HAMX,aAAa,uBAGb,aAAa,4BAA4B,aACxC,2CAGD,aAAa,QAAQ,aAAa,OAAO,aAAa,SAAS;AAAA,YAG9D,kBAAkB;AAAA;AAAA,YAIlB,0DAA6D,aAAa,SAC1E,aAAa,QAEd,UAAU,OAAO,aAAa,uFAOA,aAAa,gBAO3C,cAAc,IAAI,OAAQ,aAAa,KAAK,GAAI,GAChDU,SAAQ,IAAI,OAAQ,MAAM,aAAa,gCACtC,aAAa,MAAM,GAAI,GAExB,SAAS,IAAI,OAAQ,MAAM,aAAa,OAAO,aAAa,GAAI,GAChE,eAAe,IAAI,OAAQ,MAAM,aAAa,aAAa,aAAa,MAAM,aAC7E,GAAI,GACL,WAAW,IAAI,OAAQ,aAAa,IAAK,GAEzC,UAAU,IAAI,OAAQ,OAAQ,GAC9B,cAAc,IAAI,OAAQ,MAAM,aAAa,GAAI,GAEjD,YAAY;AAAA,cACX,MAAM,IAAI,OAAQ,QAAQ,aAAa,GAAI;AAAA,cAC3C,SAAS,IAAI,OAAQ,UAAU,aAAa,GAAI;AAAA,cAChD,OAAO,IAAI,OAAQ,OAAO,aAAa,OAAQ;AAAA,cAC/C,QAAQ,IAAI,OAAQ,MAAM,UAAW;AAAA,cACrC,UAAU,IAAI,OAAQ,MAAM,OAAQ;AAAA,cACpC,SAAS,IAAI,OAAQ,2DACpB,aAAa,iCAAiC,aAAa,gBAC3D,aAAa,eAAe,aAAa,UAAU,GAAI;AAAA,cACxD,QAAQ,IAAI,OAAQ,SAAS,WAAW,MAAM,GAAI;AAAA;AAAA;AAAA,cAIlD,gBAAgB,IAAI,OAAQ,MAAM,aACjC,qDAAqD,aACrD,qBAAqB,aAAa,oBAAoB,GAAI;AAAA,YAC5D,GAEAC,SAAQ,UACR,UAAU,uCACV,UAAU,UAEV,UAAU,0BAGVC,cAAa,oCAEb,WAAW,QAIX,YAAY,IAAI,OAAQ,yBAAyB,aAAa,wBAAwB,GAAI,GAC1F,YAAY,SAAUC,SAAQ,QAAS;AACtC,kBAAI,OAAO,OAAOA,QAAO,MAAO,CAAE,IAAI;AAEtC,qBAAO;AAAA;AAAA,gBAGN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMA,OAAO,IACN,OAAO,aAAc,OAAO,KAAQ,IACpC,OAAO,aAAc,QAAQ,KAAK,OAAQ,OAAO,OAAQ,KAAO;AAAA;AAAA,YACnE,GAIA,aAAa,uDACb,aAAa,SAAU,IAAI,aAAc;AACxC,kBAAK,aAAc;AAGlB,oBAAK,OAAO,MAAO;AAClB,yBAAO;AAAA,gBACR;AAGA,uBAAO,GAAG,MAAO,GAAG,EAAG,IAAI,OAC1B,GAAG,WAAY,GAAG,SAAS,CAAE,EAAE,SAAU,EAAG,IAAI;AAAA,cAClD;AAGA,qBAAO,OAAO;AAAA,YACf,GAMA,gBAAgB,WAAW;AAC1B,0BAAY;AAAA,YACb,GAEA,qBAAqB;AAAA,cACpB,SAAU,MAAO;AAChB,uBAAO,KAAK,aAAa,QAAQ,KAAK,SAAS,YAAY,MAAM;AAAA,cAClE;AAAA,cACA,EAAE,KAAK,cAAc,MAAM,SAAS;AAAA,YACrC;AAGD,gBAAI;AACH,cAAAJ,MAAK;AAAA,gBACFP,OAAMR,OAAM,KAAM,aAAa,UAAW;AAAA,gBAC5C,aAAa;AAAA,cACd;AAKA,cAAAQ,KAAK,aAAa,WAAW,MAAO,EAAE;AAAA,YACvC,SAAUY,IAAI;AACb,cAAAL,QAAO;AAAA,gBAAE,OAAOP,KAAI;AAAA;AAAA,kBAGnB,SAAU,QAAQ,KAAM;AACvB,+BAAW,MAAO,QAAQR,OAAM,KAAM,GAAI,CAAE;AAAA,kBAC7C;AAAA;AAAA;AAAA;AAAA,kBAIA,SAAU,QAAQ,KAAM;AACvB,wBAAIO,KAAI,OAAO,QACdD,KAAI;AAGL,2BAAU,OAAQC,IAAI,IAAI,IAAKD,IAAI,GAAM;AAAA,oBAAC;AAC1C,2BAAO,SAASC,KAAI;AAAA,kBACrB;AAAA;AAAA,cACD;AAAA,YACD;AAEA,qBAASc,QAAQ,UAAU,SAAS,SAAS,MAAO;AACnD,kBAAIC,IAAGhB,IAAG,MAAM,KAAKiB,QAAO,QAAQ,aACnC,aAAa,WAAW,QAAQ,eAGhC,WAAW,UAAU,QAAQ,WAAW;AAEzC,wBAAU,WAAW,CAAC;AAGtB,kBAAK,OAAO,aAAa,YAAY,CAAC,YACrC,aAAa,KAAK,aAAa,KAAK,aAAa,IAAK;AAEtD,uBAAO;AAAA,cACR;AAGA,kBAAK,CAAC,MAAO;AACZ,4BAAa,OAAQ;AACrB,0BAAU,WAAWlB;AAErB,oBAAK,gBAAiB;AAIrB,sBAAK,aAAa,OAAQkB,SAAQL,YAAW,KAAM,QAAS,IAAM;AAGjE,wBAAOI,KAAIC,OAAO,CAAE,GAAM;AAGzB,0BAAK,aAAa,GAAI;AACrB,4BAAO,OAAO,QAAQ,eAAgBD,EAAE,GAAM;AAK7C,8BAAK,KAAK,OAAOA,IAAI;AACpB,oCAAQ,KAAM,IAAK;AACnB,mCAAO;AAAA,0BACR;AAAA,wBACD,OAAO;AACN,iCAAO;AAAA,wBACR;AAAA,sBAGD,OAAO;AAKN,4BAAK,eAAgB,OAAO,WAAW,eAAgBA,EAAE,MACxDX,UAAU,SAAS,IAAK,KACxB,KAAK,OAAOW,IAAI;AAEhB,kCAAQ,KAAM,IAAK;AACnB,iCAAO;AAAA,wBACR;AAAA,sBACD;AAAA,oBAGD,WAAYC,OAAO,CAAE,GAAI;AACxB,sBAAAR,MAAK,MAAO,SAAS,QAAQ,qBAAsB,QAAS,CAAE;AAC9D,6BAAO;AAAA,oBAGR,YAAcO,KAAIC,OAAO,CAAE,MAAOd,SAAQ,0BACzC,QAAQ,wBAAyB;AAEjC,sBAAAM,MAAK,MAAO,SAAS,QAAQ,uBAAwBO,EAAE,CAAE;AACzD,6BAAO;AAAA,oBACR;AAAA,kBACD;AAGA,sBAAKb,SAAQ,OACZ,CAAC,uBAAwB,WAAW,GAAI,MACtC,CAAC,aAAa,CAAC,UAAU,KAAM,QAAS;AAAA;AAAA,mBAIxC,aAAa,KAAK,QAAQ,SAAS,YAAY,MAAM,WAAa;AAEpE,kCAAc;AACd,iCAAa;AASb,wBAAK,aAAa,MACf,SAAS,KAAM,QAAS,KAAK,aAAa,KAAM,QAAS,IAAM;AAGjE,mCAAa,SAAS,KAAM,QAAS,KAAK,YAAa,QAAQ,UAAW,KACzE;AAID,0BAAK,eAAe,WAAW,CAACA,SAAQ,OAAQ;AAG/C,4BAAO,MAAM,QAAQ,aAAc,IAAK,GAAM;AAC7C,gCAAM,IAAI,QAAS,YAAY,UAAW;AAAA,wBAC3C,OAAO;AACN,kCAAQ,aAAc,MAAQ,MAAM,OAAU;AAAA,wBAC/C;AAAA,sBACD;AAGA,+BAASC,UAAU,QAAS;AAC5B,sBAAAJ,KAAI,OAAO;AACX,6BAAQA,MAAM;AACb,+BAAQA,EAAE,KAAM,MAAM,MAAM,MAAM,YAAa,MAC9C,WAAY,OAAQA,EAAE,CAAE;AAAA,sBAC1B;AACA,oCAAc,OAAO,KAAM,GAAI;AAAA,oBAChC;AAEA,wBAAI;AACH,sBAAAS,MAAK;AAAA,wBAAO;AAAA,wBACX,WAAW,iBAAkB,WAAY;AAAA,sBAC1C;AACA,6BAAO;AAAA,oBACR,SAAU,UAAW;AACpB,6CAAwB,UAAU,IAAK;AAAA,oBACxC,UAAE;AACD,0BAAK,QAAQ,SAAU;AACtB,gCAAQ,gBAAiB,IAAK;AAAA,sBAC/B;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAGA,qBAAO,OAAQ,SAAS,QAASC,QAAO,IAAK,GAAG,SAAS,SAAS,IAAK;AAAA,YACxE;AAQA,qBAAS,cAAc;AACtB,kBAAI,OAAO,CAAC;AAEZ,uBAAS,MAAO,KAAK,OAAQ;AAG5B,oBAAK,KAAK,KAAM,MAAM,GAAI,IAAI,KAAK,aAAc;AAGhD,yBAAO,MAAO,KAAK,MAAM,CAAE;AAAA,gBAC5B;AACA,uBAAS,MAAO,MAAM,GAAI,IAAI;AAAA,cAC/B;AACA,qBAAO;AAAA,YACR;AAMA,qBAAS,aAAcQ,KAAK;AAC3B,cAAAA,IAAI,OAAQ,IAAI;AAChB,qBAAOA;AAAA,YACR;AAMA,qBAAS,OAAQA,KAAK;AACrB,kBAAI,KAAKnB,UAAS,cAAe,UAAW;AAE5C,kBAAI;AACH,uBAAO,CAAC,CAACmB,IAAI,EAAG;AAAA,cACjB,SAAUJ,IAAI;AACb,uBAAO;AAAA,cACR,UAAE;AAGD,oBAAK,GAAG,YAAa;AACpB,qBAAG,WAAW,YAAa,EAAG;AAAA,gBAC/B;AAGA,qBAAK;AAAA,cACN;AAAA,YACD;AAOA,qBAAS,UAAW,OAAO,SAAU;AACpC,kBAAIZ,OAAM,MAAM,MAAO,GAAI,GAC1BF,KAAIE,KAAI;AAET,qBAAQF,MAAM;AACb,qBAAK,WAAYE,KAAKF,EAAE,CAAE,IAAI;AAAA,cAC/B;AAAA,YACD;AAQA,qBAAS,aAAcM,IAAGC,IAAI;AAC7B,kBAAI,MAAMA,MAAKD,IACd,OAAO,OAAOA,GAAE,aAAa,KAAKC,GAAE,aAAa,KAChDD,GAAE,cAAcC,GAAE;AAGpB,kBAAK,MAAO;AACX,uBAAO;AAAA,cACR;AAGA,kBAAK,KAAM;AACV,uBAAU,MAAM,IAAI,aAAgB;AACnC,sBAAK,QAAQA,IAAI;AAChB,2BAAO;AAAA,kBACR;AAAA,gBACD;AAAA,cACD;AAEA,qBAAOD,KAAI,IAAI;AAAA,YAChB;AAMA,qBAAS,kBAAmB,MAAO;AAClC,qBAAO,SAAU,MAAO;AACvB,oBAAI,OAAO,KAAK,SAAS,YAAY;AACrC,uBAAO,SAAS,WAAW,KAAK,SAAS;AAAA,cAC1C;AAAA,YACD;AAMA,qBAAS,mBAAoB,MAAO;AACnC,qBAAO,SAAU,MAAO;AACvB,oBAAI,OAAO,KAAK,SAAS,YAAY;AACrC,wBAAS,SAAS,WAAW,SAAS,aAAc,KAAK,SAAS;AAAA,cACnE;AAAA,YACD;AAMA,qBAAS,qBAAsB,UAAW;AAGzC,qBAAO,SAAU,MAAO;AAKvB,oBAAK,UAAU,MAAO;AASrB,sBAAK,KAAK,cAAc,KAAK,aAAa,OAAQ;AAGjD,wBAAK,WAAW,MAAO;AACtB,0BAAK,WAAW,KAAK,YAAa;AACjC,+BAAO,KAAK,WAAW,aAAa;AAAA,sBACrC,OAAO;AACN,+BAAO,KAAK,aAAa;AAAA,sBAC1B;AAAA,oBACD;AAIA,2BAAO,KAAK,eAAe;AAAA;AAAA,oBAI1B,KAAK,eAAe,CAAC,YACrB,mBAAoB,IAAK,MAAM;AAAA,kBACjC;AAEA,yBAAO,KAAK,aAAa;AAAA,gBAK1B,WAAY,WAAW,MAAO;AAC7B,yBAAO,KAAK,aAAa;AAAA,gBAC1B;AAGA,uBAAO;AAAA,cACR;AAAA,YACD;AAMA,qBAAS,uBAAwBY,KAAK;AACrC,qBAAO,aAAc,SAAU,UAAW;AACzC,2BAAW,CAAC;AACZ,uBAAO,aAAc,SAAU,MAAMC,UAAU;AAC9C,sBAAIlB,IACH,eAAeiB,IAAI,CAAC,GAAG,KAAK,QAAQ,QAAS,GAC7ClB,KAAI,aAAa;AAGlB,yBAAQA,MAAM;AACb,wBAAK,KAAQC,KAAI,aAAcD,EAAE,CAAI,GAAI;AACxC,2BAAMC,EAAE,IAAI,EAAGkB,SAASlB,EAAE,IAAI,KAAMA,EAAE;AAAA,oBACvC;AAAA,kBACD;AAAA,gBACD,CAAE;AAAA,cACH,CAAE;AAAA,YACH;AAOA,qBAAS,YAAa,SAAU;AAC/B,qBAAO,WAAW,OAAO,QAAQ,yBAAyB,eAAe;AAAA,YAC1E;AAGA,YAAAE,WAAUY,QAAO,UAAU,CAAC;AAO5B,oBAAQA,QAAO,QAAQ,SAAU,MAAO;AACvC,kBAAI,YAAY,QAAQ,KAAK,cAC5BK,WAAU,SAAU,KAAK,iBAAiB,MAAO;AAKlD,qBAAO,CAACT,OAAM,KAAM,aAAaS,YAAWA,SAAQ,YAAY,MAAO;AAAA,YACxE;AAOA,0BAAcL,QAAO,cAAc,SAAU,MAAO;AACnD,kBAAI,YAAY,WACf,MAAM,OAAO,KAAK,iBAAiB,OAAO;AAO3C,kBAAK,OAAOhB,aAAY,IAAI,aAAa,KAAK,CAAC,IAAI,iBAAkB;AACpE,uBAAOA;AAAA,cACR;AAGA,cAAAA,YAAW;AACX,wBAAUA,UAAS;AACnB,+BAAiB,CAAC,MAAOA,SAAS;AAQlC,kBAAK,gBAAgBA,cAClB,YAAYA,UAAS,gBAAiB,UAAU,QAAQ,WAAY;AAGtE,oBAAK,UAAU,kBAAmB;AACjC,4BAAU,iBAAkB,UAAU,eAAe,KAAM;AAAA,gBAG5D,WAAY,UAAU,aAAc;AACnC,4BAAU,YAAa,YAAY,aAAc;AAAA,gBAClD;AAAA,cACD;AAOA,cAAAI,SAAQ,QAAQ,OAAQ,SAAU,IAAK;AACtC,wBAAQ,YAAa,EAAG,EAAE,YAAaJ,UAAS,cAAe,KAAM,CAAE;AACvE,uBAAO,OAAO,GAAG,qBAAqB,eACrC,CAAC,GAAG,iBAAkB,qBAAsB,EAAE;AAAA,cAChD,CAAE;AAQF,cAAAI,SAAQ,aAAa,OAAQ,SAAU,IAAK;AAC3C,mBAAG,YAAY;AACf,uBAAO,CAAC,GAAG,aAAc,WAAY;AAAA,cACtC,CAAE;AAMF,cAAAA,SAAQ,uBAAuB,OAAQ,SAAU,IAAK;AACrD,mBAAG,YAAaJ,UAAS,cAAe,EAAG,CAAE;AAC7C,uBAAO,CAAC,GAAG,qBAAsB,GAAI,EAAE;AAAA,cACxC,CAAE;AAGF,cAAAI,SAAQ,yBAAyB,QAAQ,KAAMJ,UAAS,sBAAuB;AAM/E,cAAAI,SAAQ,UAAU,OAAQ,SAAU,IAAK;AACxC,wBAAQ,YAAa,EAAG,EAAE,KAAK;AAC/B,uBAAO,CAACJ,UAAS,qBAAqB,CAACA,UAAS,kBAAmB,OAAQ,EAAE;AAAA,cAC9E,CAAE;AAGF,kBAAKI,SAAQ,SAAU;AACtB,qBAAK,OAAQ,IAAK,IAAI,SAAUkB,MAAK;AACpC,sBAAI,SAASA,KAAG,QAAS,WAAW,SAAU;AAC9C,yBAAO,SAAU,MAAO;AACvB,2BAAO,KAAK,aAAc,IAAK,MAAM;AAAA,kBACtC;AAAA,gBACD;AACA,qBAAK,KAAM,IAAK,IAAI,SAAUA,MAAI,SAAU;AAC3C,sBAAK,OAAO,QAAQ,mBAAmB,eAAe,gBAAiB;AACtE,wBAAI,OAAO,QAAQ,eAAgBA,IAAG;AACtC,2BAAO,OAAO,CAAE,IAAK,IAAI,CAAC;AAAA,kBAC3B;AAAA,gBACD;AAAA,cACD,OAAO;AACN,qBAAK,OAAQ,IAAK,IAAK,SAAUA,MAAK;AACrC,sBAAI,SAASA,KAAG,QAAS,WAAW,SAAU;AAC9C,yBAAO,SAAU,MAAO;AACvB,wBAAIC,QAAO,OAAO,KAAK,qBAAqB,eAC3C,KAAK,iBAAkB,IAAK;AAC7B,2BAAOA,SAAQA,MAAK,UAAU;AAAA,kBAC/B;AAAA,gBACD;AAIA,qBAAK,KAAM,IAAK,IAAI,SAAUD,MAAI,SAAU;AAC3C,sBAAK,OAAO,QAAQ,mBAAmB,eAAe,gBAAiB;AACtE,wBAAIC,OAAMtB,IAAG,OACZ,OAAO,QAAQ,eAAgBqB,IAAG;AAEnC,wBAAK,MAAO;AAGX,sBAAAC,QAAO,KAAK,iBAAkB,IAAK;AACnC,0BAAKA,SAAQA,MAAK,UAAUD,MAAK;AAChC,+BAAO,CAAE,IAAK;AAAA,sBACf;AAGA,8BAAQ,QAAQ,kBAAmBA,IAAG;AACtC,sBAAArB,KAAI;AACJ,6BAAU,OAAO,MAAOA,IAAI,GAAM;AACjC,wBAAAsB,QAAO,KAAK,iBAAkB,IAAK;AACnC,4BAAKA,SAAQA,MAAK,UAAUD,MAAK;AAChC,iCAAO,CAAE,IAAK;AAAA,wBACf;AAAA,sBACD;AAAA,oBACD;AAEA,2BAAO,CAAC;AAAA,kBACT;AAAA,gBACD;AAAA,cACD;AAGA,mBAAK,KAAM,KAAM,IAAIlB,SAAQ,uBAC5B,SAAU,KAAK,SAAU;AACxB,oBAAK,OAAO,QAAQ,yBAAyB,aAAc;AAC1D,yBAAO,QAAQ,qBAAsB,GAAI;AAAA,gBAG1C,WAAYA,SAAQ,KAAM;AACzB,yBAAO,QAAQ,iBAAkB,GAAI;AAAA,gBACtC;AAAA,cACD,IAEA,SAAU,KAAK,SAAU;AACxB,oBAAI,MACH,MAAM,CAAC,GACPH,KAAI,GAGJ,UAAU,QAAQ,qBAAsB,GAAI;AAG7C,oBAAK,QAAQ,KAAM;AAClB,yBAAU,OAAO,QAASA,IAAI,GAAM;AACnC,wBAAK,KAAK,aAAa,GAAI;AAC1B,0BAAI,KAAM,IAAK;AAAA,oBAChB;AAAA,kBACD;AAEA,yBAAO;AAAA,gBACR;AACA,uBAAO;AAAA,cACR;AAGD,mBAAK,KAAM,OAAQ,IAAIG,SAAQ,0BAA0B,SAAU,WAAW,SAAU;AACvF,oBAAK,OAAO,QAAQ,2BAA2B,eAAe,gBAAiB;AAC9E,yBAAO,QAAQ,uBAAwB,SAAU;AAAA,gBAClD;AAAA,cACD;AAQA,8BAAgB,CAAC;AAOjB,0BAAY,CAAC;AAEb,kBAAOA,SAAQ,MAAM,QAAQ,KAAMJ,UAAS,gBAAiB,GAAM;AAIlE,uBAAQ,SAAU,IAAK;AAEtB,sBAAI;AAOJ,0BAAQ,YAAa,EAAG,EAAE,YAAY,YAAY,UAAU,uBAC1C,UAAU;AAO5B,sBAAK,GAAG,iBAAkB,sBAAuB,EAAE,QAAS;AAC3D,8BAAU,KAAM,WAAW,aAAa,YAAe;AAAA,kBACxD;AAIA,sBAAK,CAAC,GAAG,iBAAkB,YAAa,EAAE,QAAS;AAClD,8BAAU,KAAM,QAAQ,aAAa,eAAe,WAAW,GAAI;AAAA,kBACpE;AAGA,sBAAK,CAAC,GAAG,iBAAkB,UAAU,UAAU,IAAK,EAAE,QAAS;AAC9D,8BAAU,KAAM,IAAK;AAAA,kBACtB;AAOA,0BAAQA,UAAS,cAAe,OAAQ;AACxC,wBAAM,aAAc,QAAQ,EAAG;AAC/B,qBAAG,YAAa,KAAM;AACtB,sBAAK,CAAC,GAAG,iBAAkB,WAAY,EAAE,QAAS;AACjD,8BAAU,KAAM,QAAQ,aAAa,UAAU,aAAa,OAC3D,aAAa,YAAe;AAAA,kBAC9B;AAKA,sBAAK,CAAC,GAAG,iBAAkB,UAAW,EAAE,QAAS;AAChD,8BAAU,KAAM,UAAW;AAAA,kBAC5B;AAKA,sBAAK,CAAC,GAAG,iBAAkB,OAAO,UAAU,IAAK,EAAE,QAAS;AAC3D,8BAAU,KAAM,UAAW;AAAA,kBAC5B;AAIA,qBAAG,iBAAkB,MAAO;AAC5B,4BAAU,KAAM,aAAc;AAAA,gBAC/B,CAAE;AAEF,uBAAQ,SAAU,IAAK;AACtB,qBAAG,YAAY;AAKf,sBAAI,QAAQA,UAAS,cAAe,OAAQ;AAC5C,wBAAM,aAAc,QAAQ,QAAS;AACrC,qBAAG,YAAa,KAAM,EAAE,aAAc,QAAQ,GAAI;AAIlD,sBAAK,GAAG,iBAAkB,UAAW,EAAE,QAAS;AAC/C,8BAAU,KAAM,SAAS,aAAa,aAAc;AAAA,kBACrD;AAIA,sBAAK,GAAG,iBAAkB,UAAW,EAAE,WAAW,GAAI;AACrD,8BAAU,KAAM,YAAY,WAAY;AAAA,kBACzC;AAIA,0BAAQ,YAAa,EAAG,EAAE,WAAW;AACrC,sBAAK,GAAG,iBAAkB,WAAY,EAAE,WAAW,GAAI;AACtD,8BAAU,KAAM,YAAY,WAAY;AAAA,kBACzC;AAIA,qBAAG,iBAAkB,MAAO;AAC5B,4BAAU,KAAM,MAAO;AAAA,gBACxB,CAAE;AAAA,cACH;AAEA,kBAAOI,SAAQ,kBAAkB,QAAQ,KAAQ,UAAU,QAAQ,WAClE,QAAQ,yBACR,QAAQ,sBACR,QAAQ,oBACR,QAAQ,iBAAoB,GAAM;AAElC,uBAAQ,SAAU,IAAK;AAItB,kBAAAA,SAAQ,oBAAoB,QAAQ,KAAM,IAAI,GAAI;AAIlD,0BAAQ,KAAM,IAAI,WAAY;AAC9B,gCAAc,KAAM,MAAM,OAAQ;AAAA,gBACnC,CAAE;AAAA,cACH;AAEA,0BAAY,UAAU,UAAU,IAAI,OAAQ,UAAU,KAAM,GAAI,CAAE;AAClE,8BAAgB,cAAc,UAAU,IAAI,OAAQ,cAAc,KAAM,GAAI,CAAE;AAI9E,2BAAa,QAAQ,KAAM,QAAQ,uBAAwB;AAK3D,cAAAE,YAAW,cAAc,QAAQ,KAAM,QAAQ,QAAS,IACvD,SAAUC,IAAGC,IAAI;AAChB,oBAAI,QAAQD,GAAE,aAAa,IAAIA,GAAE,kBAAkBA,IAClD,MAAMC,MAAKA,GAAE;AACd,uBAAOD,OAAM,OAAO,CAAC,EAAG,OAAO,IAAI,aAAa,MAC/C,MAAM,WACL,MAAM,SAAU,GAAI,IACpBA,GAAE,2BAA2BA,GAAE,wBAAyB,GAAI,IAAI;AAAA,cAEnE,IACA,SAAUA,IAAGC,IAAI;AAChB,oBAAKA,IAAI;AACR,yBAAUA,KAAIA,GAAE,YAAe;AAC9B,wBAAKA,OAAMD,IAAI;AACd,6BAAO;AAAA,oBACR;AAAA,kBACD;AAAA,gBACD;AACA,uBAAO;AAAA,cACR;AAMD,0BAAY,aACZ,SAAUA,IAAGC,IAAI;AAGhB,oBAAKD,OAAMC,IAAI;AACd,iCAAe;AACf,yBAAO;AAAA,gBACR;AAGA,oBAAI,UAAU,CAACD,GAAE,0BAA0B,CAACC,GAAE;AAC9C,oBAAK,SAAU;AACd,yBAAO;AAAA,gBACR;AAOA,2BAAYD,GAAE,iBAAiBA,QAASC,GAAE,iBAAiBA,MAC1DD,GAAE,wBAAyBC,EAAE;AAAA;AAAA,kBAG7B;AAAA;AAGD,oBAAK,UAAU,KACZ,CAACJ,SAAQ,gBAAgBI,GAAE,wBAAyBD,EAAE,MAAM,SAAY;AAO1E,sBAAKA,MAAKP,aAAYO,GAAE,iBAAiB,gBACxCD,UAAU,cAAcC,EAAE,GAAI;AAC9B,2BAAO;AAAA,kBACR;AAMA,sBAAKC,MAAKR,aAAYQ,GAAE,iBAAiB,gBACxCF,UAAU,cAAcE,EAAE,GAAI;AAC9B,2BAAO;AAAA,kBACR;AAGA,yBAAO,YACJZ,SAAS,WAAWW,EAAE,IAAIX,SAAS,WAAWY,EAAE,IAClD;AAAA,gBACF;AAEA,uBAAO,UAAU,IAAI,KAAK;AAAA,cAC3B,IACA,SAAUD,IAAGC,IAAI;AAGhB,oBAAKD,OAAMC,IAAI;AACd,iCAAe;AACf,yBAAO;AAAA,gBACR;AAEA,oBAAI,KACHP,KAAI,GACJ,MAAMM,GAAE,YACR,MAAMC,GAAE,YACR,KAAK,CAAED,EAAE,GACT,KAAK,CAAEC,EAAE;AAGV,oBAAK,CAAC,OAAO,CAAC,KAAM;AAMnB,yBAAOD,MAAKP,YAAW,KACtBQ,MAAKR,YAAW;AAAA;AAAA,oBAEhB,MAAM,KACN,MAAM,IACN,YACEJ,SAAS,WAAWW,EAAE,IAAIX,SAAS,WAAWY,EAAE,IAClD;AAAA;AAAA,gBAGF,WAAY,QAAQ,KAAM;AACzB,yBAAO,aAAcD,IAAGC,EAAE;AAAA,gBAC3B;AAGA,sBAAMD;AACN,uBAAU,MAAM,IAAI,YAAe;AAClC,qBAAG,QAAS,GAAI;AAAA,gBACjB;AACA,sBAAMC;AACN,uBAAU,MAAM,IAAI,YAAe;AAClC,qBAAG,QAAS,GAAI;AAAA,gBACjB;AAGA,uBAAQ,GAAIP,EAAE,MAAM,GAAIA,EAAE,GAAI;AAC7B,kBAAAA;AAAA,gBACD;AAEA,uBAAOA;AAAA;AAAA,kBAGN,aAAc,GAAIA,EAAE,GAAG,GAAIA,EAAE,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAO/B,GAAIA,EAAE,KAAK,eAAe,KAC1B,GAAIA,EAAE,KAAK,eAAe;AAAA;AAAA,oBAE1B;AAAA;AAAA;AAAA,cACF;AAEA,qBAAOD;AAAA,YACR;AAEA,YAAAgB,QAAO,UAAU,SAAU,MAAM,UAAW;AAC3C,qBAAOA,QAAQ,MAAM,MAAM,MAAM,QAAS;AAAA,YAC3C;AAEA,YAAAA,QAAO,kBAAkB,SAAU,MAAM,MAAO;AAC/C,0BAAa,IAAK;AAElB,kBAAKZ,SAAQ,mBAAmB,kBAC/B,CAAC,uBAAwB,OAAO,GAAI,MAClC,CAAC,iBAAiB,CAAC,cAAc,KAAM,IAAK,OAC5C,CAAC,aAAiB,CAAC,UAAU,KAAM,IAAK,IAAM;AAEhD,oBAAI;AACH,sBAAI,MAAM,QAAQ,KAAM,MAAM,IAAK;AAGnC,sBAAK,OAAOA,SAAQ;AAAA;AAAA,kBAInB,KAAK,YAAY,KAAK,SAAS,aAAa,IAAK;AACjD,2BAAO;AAAA,kBACR;AAAA,gBACD,SAAUW,IAAI;AACb,yCAAwB,MAAM,IAAK;AAAA,gBACpC;AAAA,cACD;AAEA,qBAAOC,QAAQ,MAAMhB,WAAU,MAAM,CAAE,IAAK,CAAE,EAAE,SAAS;AAAA,YAC1D;AAEA,YAAAgB,QAAO,WAAW,SAAU,SAAS,MAAO;AAO3C,mBAAO,QAAQ,iBAAiB,YAAahB,WAAW;AACvD,4BAAa,OAAQ;AAAA,cACtB;AACA,qBAAOM,UAAU,SAAS,IAAK;AAAA,YAChC;AAEA,YAAAU,QAAO,OAAO,SAAU,MAAM,MAAO;AAOpC,mBAAO,KAAK,iBAAiB,SAAUhB,WAAW;AACjD,4BAAa,IAAK;AAAA,cACnB;AAEA,kBAAImB,MAAK,KAAK,WAAY,KAAK,YAAY,CAAE,GAG5C,MAAMA,OAAMV,QAAO,KAAM,KAAK,YAAY,KAAK,YAAY,CAAE,IAC5DU,IAAI,MAAM,MAAM,CAAC,cAAe,IAChC;AAEF,qBAAO,QAAQ,SACd,MACAf,SAAQ,cAAc,CAAC,iBACtB,KAAK,aAAc,IAAK,KACtB,MAAM,KAAK,iBAAkB,IAAK,MAAO,IAAI,YAC9C,IAAI,QACJ;AAAA,YACJ;AAEA,YAAAY,QAAO,SAAS,SAAU,KAAM;AAC/B,sBAAS,MAAM,IAAK,QAAS,YAAY,UAAW;AAAA,YACrD;AAEA,YAAAA,QAAO,QAAQ,SAAU,KAAM;AAC9B,oBAAM,IAAI,MAAO,4CAA4C,GAAI;AAAA,YAClE;AAMA,YAAAA,QAAO,aAAa,SAAU,SAAU;AACvC,kBAAI,MACH,aAAa,CAAC,GACdd,KAAI,GACJD,KAAI;AAGL,6BAAe,CAACG,SAAQ;AACxB,0BAAY,CAACA,SAAQ,cAAc,QAAQ,MAAO,CAAE;AACpD,sBAAQ,KAAM,SAAU;AAExB,kBAAK,cAAe;AACnB,uBAAU,OAAO,QAASH,IAAI,GAAM;AACnC,sBAAK,SAAS,QAASA,EAAE,GAAI;AAC5B,oBAAAC,KAAI,WAAW,KAAMD,EAAE;AAAA,kBACxB;AAAA,gBACD;AACA,uBAAQC,MAAM;AACb,0BAAQ,OAAQ,WAAYA,EAAE,GAAG,CAAE;AAAA,gBACpC;AAAA,cACD;AAIA,0BAAY;AAEZ,qBAAO;AAAA,YACR;AAMA,sBAAUc,QAAO,UAAU,SAAU,MAAO;AAC3C,kBAAI,MACH,MAAM,IACNf,KAAI,GACJ,WAAW,KAAK;AAEjB,kBAAK,CAAC,UAAW;AAGhB,uBAAU,OAAO,KAAMA,IAAI,GAAM;AAGhC,yBAAO,QAAS,IAAK;AAAA,gBACtB;AAAA,cACD,WAAY,aAAa,KAAK,aAAa,KAAK,aAAa,IAAK;AAIjE,oBAAK,OAAO,KAAK,gBAAgB,UAAW;AAC3C,yBAAO,KAAK;AAAA,gBACb,OAAO;AAGN,uBAAM,OAAO,KAAK,YAAY,MAAM,OAAO,KAAK,aAAc;AAC7D,2BAAO,QAAS,IAAK;AAAA,kBACtB;AAAA,gBACD;AAAA,cACD,WAAY,aAAa,KAAK,aAAa,GAAI;AAC9C,uBAAO,KAAK;AAAA,cACb;AAIA,qBAAO;AAAA,YACR;AAEA,mBAAOe,QAAO,YAAY;AAAA;AAAA,cAGzB,aAAa;AAAA,cAEb,cAAc;AAAA,cAEd,OAAO;AAAA,cAEP,YAAY,CAAC;AAAA,cAEb,MAAM,CAAC;AAAA,cAEP,UAAU;AAAA,gBACT,KAAK,EAAE,KAAK,cAAc,OAAO,KAAK;AAAA,gBACtC,KAAK,EAAE,KAAK,aAAa;AAAA,gBACzB,KAAK,EAAE,KAAK,mBAAmB,OAAO,KAAK;AAAA,gBAC3C,KAAK,EAAE,KAAK,kBAAkB;AAAA,cAC/B;AAAA,cAEA,WAAW;AAAA,gBACV,QAAQ,SAAUE,QAAQ;AACzB,kBAAAA,OAAO,CAAE,IAAIA,OAAO,CAAE,EAAE,QAAS,WAAW,SAAU;AAGtD,kBAAAA,OAAO,CAAE,KAAMA,OAAO,CAAE,KAAKA,OAAO,CAAE,KACrCA,OAAO,CAAE,KAAK,IAAK,QAAS,WAAW,SAAU;AAElD,sBAAKA,OAAO,CAAE,MAAM,MAAO;AAC1B,oBAAAA,OAAO,CAAE,IAAI,MAAMA,OAAO,CAAE,IAAI;AAAA,kBACjC;AAEA,yBAAOA,OAAM,MAAO,GAAG,CAAE;AAAA,gBAC1B;AAAA,gBAEA,SAAS,SAAUA,QAAQ;AAY1B,kBAAAA,OAAO,CAAE,IAAIA,OAAO,CAAE,EAAE,YAAY;AAEpC,sBAAKA,OAAO,CAAE,EAAE,MAAO,GAAG,CAAE,MAAM,OAAQ;AAGzC,wBAAK,CAACA,OAAO,CAAE,GAAI;AAClB,sBAAAF,QAAO,MAAOE,OAAO,CAAE,CAAE;AAAA,oBAC1B;AAIA,oBAAAA,OAAO,CAAE,IAAI,EAAGA,OAAO,CAAE,IACxBA,OAAO,CAAE,KAAMA,OAAO,CAAE,KAAK,KAC7B,KAAMA,OAAO,CAAE,MAAM,UAAUA,OAAO,CAAE,MAAM;AAC/C,oBAAAA,OAAO,CAAE,IAAI,EAAKA,OAAO,CAAE,IAAIA,OAAO,CAAE,KAAOA,OAAO,CAAE,MAAM;AAAA,kBAG/D,WAAYA,OAAO,CAAE,GAAI;AACxB,oBAAAF,QAAO,MAAOE,OAAO,CAAE,CAAE;AAAA,kBAC1B;AAEA,yBAAOA;AAAA,gBACR;AAAA,gBAEA,UAAU,SAAUA,QAAQ;AAC3B,sBAAI,QACH,WAAW,CAACA,OAAO,CAAE,KAAKA,OAAO,CAAE;AAEpC,sBAAK,UAAW,OAAQ,EAAE,KAAMA,OAAO,CAAE,CAAE,GAAI;AAC9C,2BAAO;AAAA,kBACR;AAGA,sBAAKA,OAAO,CAAE,GAAI;AACjB,oBAAAA,OAAO,CAAE,IAAIA,OAAO,CAAE,KAAKA,OAAO,CAAE,KAAK;AAAA,kBAG1C,WAAY,YAAY,QAAQ,KAAM,QAAS;AAAA,mBAG5C,SAASb,UAAU,UAAU,IAAK;AAAA,mBAGlC,SAAS,SAAS,QAAS,KAAK,SAAS,SAAS,MAAO,IAAI,SAAS,SAAW;AAGnF,oBAAAa,OAAO,CAAE,IAAIA,OAAO,CAAE,EAAE,MAAO,GAAG,MAAO;AACzC,oBAAAA,OAAO,CAAE,IAAI,SAAS,MAAO,GAAG,MAAO;AAAA,kBACxC;AAGA,yBAAOA,OAAM,MAAO,GAAG,CAAE;AAAA,gBAC1B;AAAA,cACD;AAAA,cAEA,QAAQ;AAAA,gBAEP,OAAO,SAAU,kBAAmB;AACnC,sBAAIM,YAAW,iBAAiB,QAAS,WAAW,SAAU,EAAE,YAAY;AAC5E,yBAAO,qBAAqB,MAC3B,WAAW;AACV,2BAAO;AAAA,kBACR,IACA,SAAU,MAAO;AAChB,2BAAO,KAAK,YAAY,KAAK,SAAS,YAAY,MAAMA;AAAA,kBACzD;AAAA,gBACF;AAAA,gBAEA,SAAS,SAAU,WAAY;AAC9B,sBAAI,UAAU,WAAY,YAAY,GAAI;AAE1C,yBAAO,YACJ,UAAU,IAAI,OAAQ,QAAQ,aAC/B,MAAM,YAAY,MAAM,aAAa,KAAM,MAAO;AAAA,oBACjD;AAAA,oBAAW,SAAU,MAAO;AAC3B,6BAAO,QAAQ;AAAA,wBACd,OAAO,KAAK,cAAc,YAAY,KAAK,aAC3C,OAAO,KAAK,iBAAiB,eAC5B,KAAK,aAAc,OAAQ,KAC5B;AAAA,sBACD;AAAA,oBACH;AAAA,kBAAE;AAAA,gBACJ;AAAA,gBAEA,QAAQ,SAAU,MAAM,UAAU,OAAQ;AACzC,yBAAO,SAAU,MAAO;AACvB,wBAAI,SAASR,QAAO,KAAM,MAAM,IAAK;AAErC,wBAAK,UAAU,MAAO;AACrB,6BAAO,aAAa;AAAA,oBACrB;AACA,wBAAK,CAAC,UAAW;AAChB,6BAAO;AAAA,oBACR;AAEA,8BAAU;AAIV,2BAAO,aAAa,MAAM,WAAW,QACpC,aAAa,OAAO,WAAW,QAC/B,aAAa,OAAO,SAAS,OAAO,QAAS,KAAM,MAAM,IACzD,aAAa,OAAO,SAAS,OAAO,QAAS,KAAM,IAAI,KACvD,aAAa,OAAO,SAAS,OAAO,MAAO,CAAC,MAAM,MAAO,MAAM,QAC/D,aAAa,QAAS,MAAM,OAAO,QAAS,aAAa,GAAI,IAAI,KAAM,QAAS,KAAM,IAAI,KAC1F,aAAa,OAAO,WAAW,SAAS,OAAO,MAAO,GAAG,MAAM,SAAS,CAAE,MAAM,QAAQ,MACxF;AAAA,kBAGF;AAAA,gBACD;AAAA,gBAEA,SAAS,SAAU,MAAM,MAAM,WAAW,OAAO,MAAO;AACvD,sBAAI,SAAS,KAAK,MAAO,GAAG,CAAE,MAAM,OACnC,UAAU,KAAK,MAAO,EAAG,MAAM,QAC/B,SAAS,SAAS;AAEnB,yBAAO,UAAU,KAAK,SAAS;AAAA;AAAA,oBAG9B,SAAU,MAAO;AAChB,6BAAO,CAAC,CAAC,KAAK;AAAA,oBACf;AAAA,sBAEA,SAAU,MAAM,UAAU,KAAM;AAC/B,wBAAI,OAAO,aAAa,YAAY,MAAM,WAAWS,QACpDC,OAAM,WAAW,UAAU,gBAAgB,mBAC3C,SAAS,KAAK,YACd,OAAO,UAAU,KAAK,SAAS,YAAY,GAC3C,WAAW,CAAC,OAAO,CAAC,QACpB,OAAO;AAER,wBAAK,QAAS;AAGb,0BAAK,QAAS;AACb,+BAAQA,MAAM;AACb,iCAAO;AACP,iCAAU,OAAO,KAAMA,IAAI,GAAM;AAChC,gCAAK,SACJ,KAAK,SAAS,YAAY,MAAM,OAChC,KAAK,aAAa,GAAI;AAEtB,qCAAO;AAAA,4BACR;AAAA,0BACD;AAGA,0BAAAD,SAAQC,OAAM,SAAS,UAAU,CAACD,UAAS;AAAA,wBAC5C;AACA,+BAAO;AAAA,sBACR;AAEA,sBAAAA,SAAQ,CAAE,UAAU,OAAO,aAAa,OAAO,SAAU;AAGzD,0BAAK,WAAW,UAAW;AAK1B,+BAAO;AACP,qCAAa,KAAM,OAAQ,MAAO,KAAM,OAAQ,IAAI,CAAC;AAIrD,sCAAc,WAAY,KAAK,QAAS,MACrC,WAAY,KAAK,QAAS,IAAI,CAAC;AAElC,gCAAQ,YAAa,IAAK,KAAK,CAAC;AAChC,oCAAY,MAAO,CAAE,MAAM,WAAW,MAAO,CAAE;AAC/C,+BAAO,aAAa,MAAO,CAAE;AAC7B,+BAAO,aAAa,OAAO,WAAY,SAAU;AAEjD,+BAAU,OAAO,EAAE,aAAa,QAAQ,KAAMC,IAAI;AAAA,yBAG/C,OAAO,YAAY,MAAOD,OAAM,IAAI,GAAM;AAG5C,8BAAK,KAAK,aAAa,KAAK,EAAE,QAAQ,SAAS,MAAO;AACrD,wCAAa,IAAK,IAAI,CAAE,SAAS,WAAW,IAAK;AACjD;AAAA,0BACD;AAAA,wBACD;AAAA,sBAED,OAAO;AAGN,4BAAK,UAAW;AAGf,iCAAO;AACP,uCAAa,KAAM,OAAQ,MAAO,KAAM,OAAQ,IAAI,CAAC;AAIrD,wCAAc,WAAY,KAAK,QAAS,MACrC,WAAY,KAAK,QAAS,IAAI,CAAC;AAElC,kCAAQ,YAAa,IAAK,KAAK,CAAC;AAChC,sCAAY,MAAO,CAAE,MAAM,WAAW,MAAO,CAAE;AAC/C,iCAAO;AAAA,wBACR;AAIA,4BAAK,SAAS,OAAQ;AAGrB,iCAAU,OAAO,EAAE,aAAa,QAAQ,KAAMC,IAAI,MAC/C,OAAO,YAAY,MAAOD,OAAM,IAAI,GAAM;AAE5C,iCAAO,SACN,KAAK,SAAS,YAAY,MAAM,OAChC,KAAK,aAAa,MAClB,EAAE,MAAO;AAGT,kCAAK,UAAW;AACf,6CAAa,KAAM,OAAQ,MACxB,KAAM,OAAQ,IAAI,CAAC;AAItB,8CAAc,WAAY,KAAK,QAAS,MACrC,WAAY,KAAK,QAAS,IAAI,CAAC;AAElC,4CAAa,IAAK,IAAI,CAAE,SAAS,IAAK;AAAA,8BACvC;AAEA,kCAAK,SAAS,MAAO;AACpB;AAAA,8BACD;AAAA,4BACD;AAAA,0BACD;AAAA,wBACD;AAAA,sBACD;AAGA,8BAAQ;AACR,6BAAO,SAAS,SAAW,OAAO,UAAU,KAAK,OAAO,SAAS;AAAA,oBAClE;AAAA,kBACD;AAAA,gBACF;AAAA,gBAEA,UAAU,SAAU,QAAQ,UAAW;AAMtC,sBAAI,MACHN,MAAK,KAAK,QAAS,MAAO,KAAK,KAAK,WAAY,OAAO,YAAY,CAAE,KACpEH,QAAO,MAAO,yBAAyB,MAAO;AAKhD,sBAAKG,IAAI,OAAQ,GAAI;AACpB,2BAAOA,IAAI,QAAS;AAAA,kBACrB;AAGA,sBAAKA,IAAG,SAAS,GAAI;AACpB,2BAAO,CAAE,QAAQ,QAAQ,IAAI,QAAS;AACtC,2BAAO,KAAK,WAAW,eAAgB,OAAO,YAAY,CAAE,IAC3D,aAAc,SAAU,MAAMC,UAAU;AACvC,0BAAI,KACH,UAAUD,IAAI,MAAM,QAAS,GAC7BlB,KAAI,QAAQ;AACb,6BAAQA,MAAM;AACb,8BAAML,SAAS,MAAM,QAASK,EAAE,CAAE;AAClC,6BAAM,GAAI,IAAI,EAAGmB,SAAS,GAAI,IAAI,QAASnB,EAAE;AAAA,sBAC9C;AAAA,oBACD,CAAE,IACF,SAAU,MAAO;AAChB,6BAAOkB,IAAI,MAAM,GAAG,IAAK;AAAA,oBAC1B;AAAA,kBACF;AAEA,yBAAOA;AAAA,gBACR;AAAA,cACD;AAAA,cAEA,SAAS;AAAA;AAAA,gBAGR,OAAO,aAAc,SAAU,UAAW;AAKzC,sBAAI,QAAQ,CAAC,GACZ,UAAU,CAAC,GACX,UAAU,QAAS,SAAS,QAASR,QAAO,IAAK,CAAE;AAEpD,yBAAO,QAAS,OAAQ,IACvB,aAAc,SAAU,MAAMS,UAAS,UAAU,KAAM;AACtD,wBAAI,MACH,YAAY,QAAS,MAAM,MAAM,KAAK,CAAC,CAAE,GACzCnB,KAAI,KAAK;AAGV,2BAAQA,MAAM;AACb,0BAAO,OAAO,UAAWA,EAAE,GAAM;AAChC,6BAAMA,EAAE,IAAI,EAAGmB,SAASnB,EAAE,IAAI;AAAA,sBAC/B;AAAA,oBACD;AAAA,kBACD,CAAE,IACF,SAAU,MAAM,UAAU,KAAM;AAC/B,0BAAO,CAAE,IAAI;AACb,4BAAS,OAAO,MAAM,KAAK,OAAQ;AAGnC,0BAAO,CAAE,IAAI;AACb,2BAAO,CAAC,QAAQ,IAAI;AAAA,kBACrB;AAAA,gBACF,CAAE;AAAA,gBAEF,OAAO,aAAc,SAAU,UAAW;AACzC,yBAAO,SAAU,MAAO;AACvB,2BAAOe,QAAQ,UAAU,IAAK,EAAE,SAAS;AAAA,kBAC1C;AAAA,gBACD,CAAE;AAAA,gBAEF,YAAY,aAAc,SAAU,MAAO;AAC1C,yBAAO,KAAK,QAAS,WAAW,SAAU;AAC1C,yBAAO,SAAU,MAAO;AACvB,4BAAS,KAAK,eAAe,QAAS,IAAK,GAAI,QAAS,IAAK,IAAI;AAAA,kBAClE;AAAA,gBACD,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBASF,QAAQ,aAAc,SAAU,MAAO;AAGtC,sBAAK,CAAC,YAAY,KAAM,QAAQ,EAAG,GAAI;AACtC,oBAAAA,QAAO,MAAO,uBAAuB,IAAK;AAAA,kBAC3C;AACA,yBAAO,KAAK,QAAS,WAAW,SAAU,EAAE,YAAY;AACxD,yBAAO,SAAU,MAAO;AACvB,wBAAI;AACJ,uBAAG;AACF,0BAAO,WAAW,iBACjB,KAAK,OACL,KAAK,aAAc,UAAW,KAAK,KAAK,aAAc,MAAO,GAAM;AAEnE,mCAAW,SAAS,YAAY;AAChC,+BAAO,aAAa,QAAQ,SAAS,QAAS,OAAO,GAAI,MAAM;AAAA,sBAChE;AAAA,oBACD,UAAY,OAAO,KAAK,eAAgB,KAAK,aAAa;AAC1D,2BAAO;AAAA,kBACR;AAAA,gBACD,CAAE;AAAA;AAAA,gBAGF,UAAU,SAAU,MAAO;AAC1B,sBAAIW,QAAOjC,QAAO,YAAYA,QAAO,SAAS;AAC9C,yBAAOiC,SAAQA,MAAK,MAAO,CAAE,MAAM,KAAK;AAAA,gBACzC;AAAA,gBAEA,QAAQ,SAAU,MAAO;AACxB,yBAAO,SAAS;AAAA,gBACjB;AAAA,gBAEA,SAAS,SAAU,MAAO;AACzB,yBAAO,SAAS3B,UAAS,kBACtB,CAACA,UAAS,YAAYA,UAAS,SAAS,MAC1C,CAAC,EAAG,KAAK,QAAQ,KAAK,QAAQ,CAAC,KAAK;AAAA,gBACtC;AAAA;AAAA,gBAGA,WAAW,qBAAsB,KAAM;AAAA,gBACvC,YAAY,qBAAsB,IAAK;AAAA,gBAEvC,WAAW,SAAU,MAAO;AAI3B,sBAAIwB,YAAW,KAAK,SAAS,YAAY;AACzC,yBAASA,cAAa,WAAW,CAAC,CAAC,KAAK,WACrCA,cAAa,YAAY,CAAC,CAAC,KAAK;AAAA,gBACpC;AAAA,gBAEA,YAAY,SAAU,MAAO;AAI5B,sBAAK,KAAK,YAAa;AAEtB,yBAAK,WAAW;AAAA,kBACjB;AAEA,yBAAO,KAAK,aAAa;AAAA,gBAC1B;AAAA;AAAA,gBAGA,SAAS,SAAU,MAAO;AAMzB,uBAAM,OAAO,KAAK,YAAY,MAAM,OAAO,KAAK,aAAc;AAC7D,wBAAK,KAAK,WAAW,GAAI;AACxB,6BAAO;AAAA,oBACR;AAAA,kBACD;AACA,yBAAO;AAAA,gBACR;AAAA,gBAEA,UAAU,SAAU,MAAO;AAC1B,yBAAO,CAAC,KAAK,QAAS,OAAQ,EAAG,IAAK;AAAA,gBACvC;AAAA;AAAA,gBAGA,UAAU,SAAU,MAAO;AAC1B,yBAAO,QAAQ,KAAM,KAAK,QAAS;AAAA,gBACpC;AAAA,gBAEA,SAAS,SAAU,MAAO;AACzB,yBAAO,QAAQ,KAAM,KAAK,QAAS;AAAA,gBACpC;AAAA,gBAEA,UAAU,SAAU,MAAO;AAC1B,sBAAI,OAAO,KAAK,SAAS,YAAY;AACrC,yBAAO,SAAS,WAAW,KAAK,SAAS,YAAY,SAAS;AAAA,gBAC/D;AAAA,gBAEA,QAAQ,SAAU,MAAO;AACxB,sBAAI;AACJ,yBAAO,KAAK,SAAS,YAAY,MAAM,WACtC,KAAK,SAAS;AAAA;AAAA,oBAIV,OAAO,KAAK,aAAc,MAAO,MAAO,QAC3C,KAAK,YAAY,MAAM;AAAA,gBAC1B;AAAA;AAAA,gBAGA,SAAS,uBAAwB,WAAW;AAC3C,yBAAO,CAAE,CAAE;AAAA,gBACZ,CAAE;AAAA,gBAEF,QAAQ,uBAAwB,SAAU,eAAe,QAAS;AACjE,yBAAO,CAAE,SAAS,CAAE;AAAA,gBACrB,CAAE;AAAA,gBAEF,MAAM,uBAAwB,SAAU,eAAe,QAAQ,UAAW;AACzE,yBAAO,CAAE,WAAW,IAAI,WAAW,SAAS,QAAS;AAAA,gBACtD,CAAE;AAAA,gBAEF,QAAQ,uBAAwB,SAAU,cAAc,QAAS;AAChE,sBAAIvB,KAAI;AACR,yBAAQA,KAAI,QAAQA,MAAK,GAAI;AAC5B,iCAAa,KAAMA,EAAE;AAAA,kBACtB;AACA,yBAAO;AAAA,gBACR,CAAE;AAAA,gBAEF,OAAO,uBAAwB,SAAU,cAAc,QAAS;AAC/D,sBAAIA,KAAI;AACR,yBAAQA,KAAI,QAAQA,MAAK,GAAI;AAC5B,iCAAa,KAAMA,EAAE;AAAA,kBACtB;AACA,yBAAO;AAAA,gBACR,CAAE;AAAA,gBAEF,MAAM,uBAAwB,SAAU,cAAc,QAAQ,UAAW;AACxE,sBAAIA,KAAI,WAAW,IAClB,WAAW,SACX,WAAW,SACV,SACA;AACF,yBAAQ,EAAEA,MAAK,KAAK;AACnB,iCAAa,KAAMA,EAAE;AAAA,kBACtB;AACA,yBAAO;AAAA,gBACR,CAAE;AAAA,gBAEF,MAAM,uBAAwB,SAAU,cAAc,QAAQ,UAAW;AACxE,sBAAIA,KAAI,WAAW,IAAI,WAAW,SAAS;AAC3C,yBAAQ,EAAEA,KAAI,UAAU;AACvB,iCAAa,KAAMA,EAAE;AAAA,kBACtB;AACA,yBAAO;AAAA,gBACR,CAAE;AAAA,cACH;AAAA,YACD;AAEA,iBAAK,QAAS,KAAM,IAAI,KAAK,QAAS,IAAK;AAG3C,iBAAMA,MAAK,EAAE,OAAO,MAAM,UAAU,MAAM,MAAM,MAAM,UAAU,MAAM,OAAO,KAAK,GAAI;AACrF,mBAAK,QAASA,EAAE,IAAI,kBAAmBA,EAAE;AAAA,YAC1C;AACA,iBAAMA,MAAK,EAAE,QAAQ,MAAM,OAAO,KAAK,GAAI;AAC1C,mBAAK,QAASA,EAAE,IAAI,mBAAoBA,EAAE;AAAA,YAC3C;AAGA,qBAAS,aAAa;AAAA,YAAC;AACvB,uBAAW,YAAY,KAAK,UAAU,KAAK;AAC3C,iBAAK,aAAa,IAAI,WAAW;AAEjC,YAAAI,YAAWW,QAAO,WAAW,SAAU,UAAU,WAAY;AAC5D,kBAAI,SAASE,QAAO,QAAQ,MAC3B,OAAO,QAAQ,YACf,SAAS,WAAY,WAAW,GAAI;AAErC,kBAAK,QAAS;AACb,uBAAO,YAAY,IAAI,OAAO,MAAO,CAAE;AAAA,cACxC;AAEA,sBAAQ;AACR,uBAAS,CAAC;AACV,2BAAa,KAAK;AAElB,qBAAQ,OAAQ;AAGf,oBAAK,CAAC,YAAaA,SAAQ,OAAO,KAAM,KAAM,IAAM;AACnD,sBAAKA,QAAQ;AAGZ,4BAAQ,MAAM,MAAOA,OAAO,CAAE,EAAE,MAAO,KAAK;AAAA,kBAC7C;AACA,yBAAO,KAAQ,SAAS,CAAC,CAAI;AAAA,gBAC9B;AAEA,0BAAU;AAGV,oBAAOA,SAAQ,aAAa,KAAM,KAAM,GAAM;AAC7C,4BAAUA,OAAM,MAAM;AACtB,yBAAO,KAAM;AAAA,oBACZ,OAAO;AAAA;AAAA,oBAGP,MAAMA,OAAO,CAAE,EAAE,QAASP,QAAO,GAAI;AAAA,kBACtC,CAAE;AACF,0BAAQ,MAAM,MAAO,QAAQ,MAAO;AAAA,gBACrC;AAGA,qBAAM,QAAQ,KAAK,QAAS;AAC3B,uBAAOO,SAAQ,UAAW,IAAK,EAAE,KAAM,KAAM,OAAS,CAAC,WAAY,IAAK,MACrEA,SAAQ,WAAY,IAAK,EAAGA,MAAM,KAAQ;AAC5C,8BAAUA,OAAM,MAAM;AACtB,2BAAO,KAAM;AAAA,sBACZ,OAAO;AAAA,sBACP;AAAA,sBACA,SAASA;AAAA,oBACV,CAAE;AACF,4BAAQ,MAAM,MAAO,QAAQ,MAAO;AAAA,kBACrC;AAAA,gBACD;AAEA,oBAAK,CAAC,SAAU;AACf;AAAA,gBACD;AAAA,cACD;AAKA,qBAAO,YACN,MAAM,SACN,QACCF,QAAO,MAAO,QAAS;AAAA;AAAA,gBAGvB,WAAY,UAAU,MAAO,EAAE,MAAO,CAAE;AAAA;AAAA,YAC3C;AAEA,qBAAS,WAAY,QAAS;AAC7B,kBAAIf,KAAI,GACP,MAAM,OAAO,QACb,WAAW;AACZ,qBAAQA,KAAI,KAAKA,MAAM;AACtB,4BAAY,OAAQA,EAAE,EAAE;AAAA,cACzB;AACA,qBAAO;AAAA,YACR;AAEA,qBAAS,cAAe,SAAS,YAAY,MAAO;AACnD,kBAAIyB,OAAM,WAAW,KACpB,OAAO,WAAW,MAClB,MAAM,QAAQA,MACd,mBAAmB,QAAQ,QAAQ,cACnC,WAAW;AAEZ,qBAAO,WAAW;AAAA;AAAA,gBAGjB,SAAU,MAAM,SAAS,KAAM;AAC9B,yBAAU,OAAO,KAAMA,IAAI,GAAM;AAChC,wBAAK,KAAK,aAAa,KAAK,kBAAmB;AAC9C,6BAAO,QAAS,MAAM,SAAS,GAAI;AAAA,oBACpC;AAAA,kBACD;AACA,yBAAO;AAAA,gBACR;AAAA;AAAA;AAAA,gBAGA,SAAU,MAAM,SAAS,KAAM;AAC9B,sBAAI,UAAU,aAAa,YAC1B,WAAW,CAAE,SAAS,QAAS;AAGhC,sBAAK,KAAM;AACV,2BAAU,OAAO,KAAMA,IAAI,GAAM;AAChC,0BAAK,KAAK,aAAa,KAAK,kBAAmB;AAC9C,4BAAK,QAAS,MAAM,SAAS,GAAI,GAAI;AACpC,iCAAO;AAAA,wBACR;AAAA,sBACD;AAAA,oBACD;AAAA,kBACD,OAAO;AACN,2BAAU,OAAO,KAAMA,IAAI,GAAM;AAChC,0BAAK,KAAK,aAAa,KAAK,kBAAmB;AAC9C,qCAAa,KAAM,OAAQ,MAAO,KAAM,OAAQ,IAAI,CAAC;AAIrD,sCAAc,WAAY,KAAK,QAAS,MACrC,WAAY,KAAK,QAAS,IAAI,CAAC;AAElC,4BAAK,QAAQ,SAAS,KAAK,SAAS,YAAY,GAAI;AACnD,iCAAO,KAAMA,IAAI,KAAK;AAAA,wBACvB,YAAc,WAAW,YAAa,GAAI,MACzC,SAAU,CAAE,MAAM,WAAW,SAAU,CAAE,MAAM,UAAW;AAG1D,iCAAS,SAAU,CAAE,IAAI,SAAU,CAAE;AAAA,wBACtC,OAAO;AAGN,sCAAa,GAAI,IAAI;AAGrB,8BAAO,SAAU,CAAE,IAAI,QAAS,MAAM,SAAS,GAAI,GAAM;AACxD,mCAAO;AAAA,0BACR;AAAA,wBACD;AAAA,sBACD;AAAA,oBACD;AAAA,kBACD;AACA,yBAAO;AAAA,gBACR;AAAA;AAAA,YACF;AAEA,qBAAS,eAAgB,UAAW;AACnC,qBAAO,SAAS,SAAS,IACxB,SAAU,MAAM,SAAS,KAAM;AAC9B,oBAAIzB,KAAI,SAAS;AACjB,uBAAQA,MAAM;AACb,sBAAK,CAAC,SAAUA,EAAE,EAAG,MAAM,SAAS,GAAI,GAAI;AAC3C,2BAAO;AAAA,kBACR;AAAA,gBACD;AACA,uBAAO;AAAA,cACR,IACA,SAAU,CAAE;AAAA,YACd;AAEA,qBAAS,iBAAkB,UAAU,UAAU,SAAU;AACxD,kBAAIA,KAAI,GACP,MAAM,SAAS;AAChB,qBAAQA,KAAI,KAAKA,MAAM;AACtB,gBAAAe,QAAQ,UAAU,SAAUf,EAAE,GAAG,OAAQ;AAAA,cAC1C;AACA,qBAAO;AAAA,YACR;AAEA,qBAAS,SAAU,WAAW,KAAK,QAAQ,SAAS,KAAM;AACzD,kBAAI,MACH,eAAe,CAAC,GAChBA,KAAI,GACJ,MAAM,UAAU,QAChB,SAAS,OAAO;AAEjB,qBAAQA,KAAI,KAAKA,MAAM;AACtB,oBAAO,OAAO,UAAWA,EAAE,GAAM;AAChC,sBAAK,CAAC,UAAU,OAAQ,MAAM,SAAS,GAAI,GAAI;AAC9C,iCAAa,KAAM,IAAK;AACxB,wBAAK,QAAS;AACb,0BAAI,KAAMA,EAAE;AAAA,oBACb;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAEA,qBAAO;AAAA,YACR;AAEA,qBAAS,WAAY,WAAW,UAAU,SAAS,YAAY,YAAY,cAAe;AACzF,kBAAK,cAAc,CAAC,WAAY,OAAQ,GAAI;AAC3C,6BAAa,WAAY,UAAW;AAAA,cACrC;AACA,kBAAK,cAAc,CAAC,WAAY,OAAQ,GAAI;AAC3C,6BAAa,WAAY,YAAY,YAAa;AAAA,cACnD;AACA,qBAAO,aAAc,SAAU,MAAM,SAAS,SAAS,KAAM;AAC5D,oBAAI,MAAMA,IAAG,MACZ,SAAS,CAAC,GACV,UAAU,CAAC,GACX,cAAc,QAAQ,QAGtB,QAAQ,QAAQ;AAAA,kBACf,YAAY;AAAA,kBACZ,QAAQ,WAAW,CAAE,OAAQ,IAAI;AAAA,kBACjC,CAAC;AAAA,gBACF,GAGA,YAAY,cAAe,QAAQ,CAAC,YACnC,SAAU,OAAO,QAAQ,WAAW,SAAS,GAAI,IACjD,OAED,aAAa;AAAA;AAAA,kBAGZ,eAAgB,OAAO,YAAY,eAAe;AAAA;AAAA,oBAGjD,CAAC;AAAA;AAAA;AAAA,oBAGD;AAAA;AAAA,oBACD;AAGF,oBAAK,SAAU;AACd,0BAAS,WAAW,YAAY,SAAS,GAAI;AAAA,gBAC9C;AAGA,oBAAK,YAAa;AACjB,yBAAO,SAAU,YAAY,OAAQ;AACrC,6BAAY,MAAM,CAAC,GAAG,SAAS,GAAI;AAGnC,kBAAAA,KAAI,KAAK;AACT,yBAAQA,MAAM;AACb,wBAAO,OAAO,KAAMA,EAAE,GAAM;AAC3B,iCAAY,QAASA,EAAE,CAAE,IAAI,EAAG,UAAW,QAASA,EAAE,CAAE,IAAI;AAAA,oBAC7D;AAAA,kBACD;AAAA,gBACD;AAEA,oBAAK,MAAO;AACX,sBAAK,cAAc,WAAY;AAC9B,wBAAK,YAAa;AAGjB,6BAAO,CAAC;AACR,sBAAAA,KAAI,WAAW;AACf,6BAAQA,MAAM;AACb,4BAAO,OAAO,WAAYA,EAAE,GAAM;AAGjC,+BAAK,KAAQ,UAAWA,EAAE,IAAI,IAAO;AAAA,wBACtC;AAAA,sBACD;AACA,iCAAY,MAAQ,aAAa,CAAC,GAAK,MAAM,GAAI;AAAA,oBAClD;AAGA,oBAAAA,KAAI,WAAW;AACf,2BAAQA,MAAM;AACb,2BAAO,OAAO,WAAYA,EAAE,OACzB,OAAO,aAAaL,SAAS,MAAM,IAAK,IAAI,OAAQK,EAAE,KAAM,IAAK;AAEnE,6BAAM,IAAK,IAAI,EAAG,QAAS,IAAK,IAAI;AAAA,sBACrC;AAAA,oBACD;AAAA,kBACD;AAAA,gBAGD,OAAO;AACN,+BAAa;AAAA,oBACZ,eAAe,UACd,WAAW,OAAQ,aAAa,WAAW,MAAO,IAClD;AAAA,kBACF;AACA,sBAAK,YAAa;AACjB,+BAAY,MAAM,SAAS,YAAY,GAAI;AAAA,kBAC5C,OAAO;AACN,oBAAAS,MAAK,MAAO,SAAS,UAAW;AAAA,kBACjC;AAAA,gBACD;AAAA,cACD,CAAE;AAAA,YACH;AAEA,qBAAS,kBAAmB,QAAS;AACpC,kBAAI,cAAc,SAASR,IAC1B,MAAM,OAAO,QACb,kBAAkB,KAAK,SAAU,OAAQ,CAAE,EAAE,IAAK,GAClD,mBAAmB,mBAAmB,KAAK,SAAU,GAAI,GACzDD,KAAI,kBAAkB,IAAI,GAG1B,eAAe,cAAe,SAAU,MAAO;AAC9C,uBAAO,SAAS;AAAA,cACjB,GAAG,kBAAkB,IAAK,GAC1B,kBAAkB,cAAe,SAAU,MAAO;AACjD,uBAAOL,SAAS,cAAc,IAAK,IAAI;AAAA,cACxC,GAAG,kBAAkB,IAAK,GAC1B,WAAW,CAAE,SAAU,MAAM,SAAS,KAAM;AAC3C,oBAAI,MAAQ,CAAC,oBAAqB,OAAO,YAAY,uBAClD,eAAe,SAAU,WAC1B,aAAc,MAAM,SAAS,GAAI,IACjC,gBAAiB,MAAM,SAAS,GAAI;AAGtC,+BAAe;AACf,uBAAO;AAAA,cACR,CAAE;AAEH,qBAAQK,KAAI,KAAKA,MAAM;AACtB,oBAAO,UAAU,KAAK,SAAU,OAAQA,EAAE,EAAE,IAAK,GAAM;AACtD,6BAAW,CAAE,cAAe,eAAgB,QAAS,GAAG,OAAQ,CAAE;AAAA,gBACnE,OAAO;AACN,4BAAU,KAAK,OAAQ,OAAQA,EAAE,EAAE,IAAK,EAAE,MAAO,MAAM,OAAQA,EAAE,EAAE,OAAQ;AAG3E,sBAAK,QAAS,OAAQ,GAAI;AAGzB,oBAAAC,KAAI,EAAED;AACN,2BAAQC,KAAI,KAAKA,MAAM;AACtB,0BAAK,KAAK,SAAU,OAAQA,EAAE,EAAE,IAAK,GAAI;AACxC;AAAA,sBACD;AAAA,oBACD;AACA,2BAAO;AAAA,sBACND,KAAI,KAAK,eAAgB,QAAS;AAAA,sBAClCA,KAAI,KAAK;AAAA;AAAA,wBAGT,OACE,MAAO,GAAGA,KAAI,CAAE,EAChB,OAAQ,EAAE,OAAO,OAAQA,KAAI,CAAE,EAAE,SAAS,MAAM,MAAM,GAAG,CAAE;AAAA,sBAC7D,EAAE,QAASU,QAAO,IAAK;AAAA,sBACvB;AAAA,sBACAV,KAAIC,MAAK,kBAAmB,OAAO,MAAOD,IAAGC,EAAE,CAAE;AAAA,sBACjDA,KAAI,OAAO,kBAAqB,SAAS,OAAO,MAAOA,EAAE,CAAI;AAAA,sBAC7DA,KAAI,OAAO,WAAY,MAAO;AAAA,oBAC/B;AAAA,kBACD;AACA,2BAAS,KAAM,OAAQ;AAAA,gBACxB;AAAA,cACD;AAEA,qBAAO,eAAgB,QAAS;AAAA,YACjC;AAEA,qBAAS,yBAA0B,iBAAiB,aAAc;AACjE,kBAAI,QAAQ,YAAY,SAAS,GAChC,YAAY,gBAAgB,SAAS,GACrC,eAAe,SAAU,MAAM,SAAS,KAAK,SAAS,WAAY;AACjE,oBAAI,MAAMA,IAAG,SACZ,eAAe,GACfD,KAAI,KACJ,YAAY,QAAQ,CAAC,GACrB,aAAa,CAAC,GACd,gBAAgB,kBAGhB,QAAQ,QAAQ,aAAa,KAAK,KAAM,KAAM,EAAG,KAAK,SAAU,GAGhE,gBAAkB,WAAW,iBAAiB,OAAO,IAAI,KAAK,OAAO,KAAK,KAC1E,MAAM,MAAM;AAEb,oBAAK,WAAY;AAMhB,qCAAmB,WAAWD,aAAY,WAAW;AAAA,gBACtD;AAKA,uBAAQC,OAAM,QAAS,OAAO,MAAOA,EAAE,MAAO,MAAMA,MAAM;AACzD,sBAAK,aAAa,MAAO;AACxB,oBAAAC,KAAI;AAMJ,wBAAK,CAAC,WAAW,KAAK,iBAAiBF,WAAW;AACjD,kCAAa,IAAK;AAClB,4BAAM,CAAC;AAAA,oBACR;AACA,2BAAU,UAAU,gBAAiBE,IAAI,GAAM;AAC9C,0BAAK,QAAS,MAAM,WAAWF,WAAU,GAAI,GAAI;AAChD,gCAAQ,KAAM,IAAK;AACnB;AAAA,sBACD;AAAA,oBACD;AACA,wBAAK,WAAY;AAChB,gCAAU;AAAA,oBACX;AAAA,kBACD;AAGA,sBAAK,OAAQ;AAGZ,wBAAO,OAAO,CAAC,WAAW,MAAS;AAClC;AAAA,oBACD;AAGA,wBAAK,MAAO;AACX,gCAAU,KAAM,IAAK;AAAA,oBACtB;AAAA,kBACD;AAAA,gBACD;AAIA,gCAAgBC;AAShB,oBAAK,SAASA,OAAM,cAAe;AAClC,kBAAAC,KAAI;AACJ,yBAAU,UAAU,YAAaA,IAAI,GAAM;AAC1C,4BAAS,WAAW,YAAY,SAAS,GAAI;AAAA,kBAC9C;AAEA,sBAAK,MAAO;AAGX,wBAAK,eAAe,GAAI;AACvB,6BAAQD,MAAM;AACb,4BAAK,EAAG,UAAWA,EAAE,KAAK,WAAYA,EAAE,IAAM;AAC7C,qCAAYA,EAAE,IAAI,IAAI,KAAM,OAAQ;AAAA,wBACrC;AAAA,sBACD;AAAA,oBACD;AAGA,iCAAa,SAAU,UAAW;AAAA,kBACnC;AAGA,kBAAAS,MAAK,MAAO,SAAS,UAAW;AAGhC,sBAAK,aAAa,CAAC,QAAQ,WAAW,SAAS,KAC5C,eAAe,YAAY,SAAW,GAAI;AAE5C,oBAAAM,QAAO,WAAY,OAAQ;AAAA,kBAC5B;AAAA,gBACD;AAGA,oBAAK,WAAY;AAChB,4BAAU;AACV,qCAAmB;AAAA,gBACpB;AAEA,uBAAO;AAAA,cACR;AAED,qBAAO,QACN,aAAc,YAAa,IAC3B;AAAA,YACF;AAEA,sBAAUA,QAAO,UAAU,SAAU,UAAUE,QAAgC;AAC9E,kBAAIjB,IACH,cAAc,CAAC,GACf,kBAAkB,CAAC,GACnB,SAAS,cAAe,WAAW,GAAI;AAExC,kBAAK,CAAC,QAAS;AAGd,oBAAK,CAACiB,QAAQ;AACb,kBAAAA,SAAQb,UAAU,QAAS;AAAA,gBAC5B;AACA,gBAAAJ,KAAIiB,OAAM;AACV,uBAAQjB,MAAM;AACb,2BAAS,kBAAmBiB,OAAOjB,EAAE,CAAE;AACvC,sBAAK,OAAQ,OAAQ,GAAI;AACxB,gCAAY,KAAM,MAAO;AAAA,kBAC1B,OAAO;AACN,oCAAgB,KAAM,MAAO;AAAA,kBAC9B;AAAA,gBACD;AAGA,yBAAS;AAAA,kBACR;AAAA,kBACA,yBAA0B,iBAAiB,WAAY;AAAA,gBACxD;AAGA,uBAAO,WAAW;AAAA,cACnB;AACA,qBAAO;AAAA,YACR;AAWA,qBAASe,QAAO,SAAS,SAAU,UAAU,SAAS,SAAS,MAAO;AACrE,kBAAIf,IAAG,QAAQ,OAAO,MAAM,MAC3B,WAAW,OAAO,aAAa,cAAc,UAC7CiB,SAAQ,CAAC,QAAQb,UAAY,WAAW,SAAS,YAAY,QAAW;AAEzE,wBAAU,WAAW,CAAC;AAItB,kBAAKa,OAAM,WAAW,GAAI;AAGzB,yBAASA,OAAO,CAAE,IAAIA,OAAO,CAAE,EAAE,MAAO,CAAE;AAC1C,oBAAK,OAAO,SAAS,MAAO,QAAQ,OAAQ,CAAE,GAAI,SAAS,QAC1D,QAAQ,aAAa,KAAK,kBAAkB,KAAK,SAAU,OAAQ,CAAE,EAAE,IAAK,GAAI;AAEhF,6BAAY,KAAK,KAAM,IAAK,EAAG,MAAM,QAAS,CAAE,EAC9C,QAAS,WAAW,SAAU,GAAG,OAAQ,KAAK,CAAC,GAAK,CAAE;AACxD,sBAAK,CAAC,SAAU;AACf,2BAAO;AAAA,kBAGR,WAAY,UAAW;AACtB,8BAAU,QAAQ;AAAA,kBACnB;AAEA,6BAAW,SAAS,MAAO,OAAO,MAAM,EAAE,MAAM,MAAO;AAAA,gBACxD;AAGA,gBAAAjB,KAAI,UAAW,cAAe,EAAE,KAAM,QAAS,IAAI,IAAI,OAAO;AAC9D,uBAAQA,MAAM;AACb,0BAAQ,OAAQA,EAAE;AAGlB,sBAAK,KAAK,SAAY,OAAO,MAAM,IAAO,GAAI;AAC7C;AAAA,kBACD;AACA,sBAAO,OAAO,KAAK,KAAM,IAAK,GAAM;AAGnC,wBAAO,OAAO;AAAA,sBACb,MAAM,QAAS,CAAE,EAAE,QAAS,WAAW,SAAU;AAAA,sBACjD,SAAS,KAAM,OAAQ,CAAE,EAAE,IAAK,KAAK,YAAa,QAAQ,UAAW,KACpE;AAAA,oBACF,GAAM;AAGL,6BAAO,OAAQA,IAAG,CAAE;AACpB,iCAAW,KAAK,UAAU,WAAY,MAAO;AAC7C,0BAAK,CAAC,UAAW;AAChB,wBAAAS,MAAK,MAAO,SAAS,IAAK;AAC1B,+BAAO;AAAA,sBACR;AAEA;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAIA,eAAE,YAAY,QAAS,UAAUQ,MAAM;AAAA,gBACtC;AAAA,gBACA;AAAA,gBACA,CAAC;AAAA,gBACD;AAAA,gBACA,CAAC,WAAW,SAAS,KAAM,QAAS,KAAK,YAAa,QAAQ,UAAW,KAAK;AAAA,cAC/E;AACA,qBAAO;AAAA,YACR;AAKA,YAAAd,SAAQ,aAAa,QAAQ,MAAO,EAAG,EAAE,KAAM,SAAU,EAAE,KAAM,EAAG,MAAM;AAI1E,YAAAA,SAAQ,mBAAmB,CAAC,CAAC;AAG7B,wBAAY;AAIZ,YAAAA,SAAQ,eAAe,OAAQ,SAAU,IAAK;AAG7C,qBAAO,GAAG,wBAAyBJ,UAAS,cAAe,UAAW,CAAE,IAAI;AAAA,YAC7E,CAAE;AAKF,gBAAK,CAAC,OAAQ,SAAU,IAAK;AAC5B,iBAAG,YAAY;AACf,qBAAO,GAAG,WAAW,aAAc,MAAO,MAAM;AAAA,YACjD,CAAE,GAAI;AACL,wBAAW,0BAA0B,SAAU,MAAM,MAAM4B,QAAQ;AAClE,oBAAK,CAACA,QAAQ;AACb,yBAAO,KAAK,aAAc,MAAM,KAAK,YAAY,MAAM,SAAS,IAAI,CAAE;AAAA,gBACvE;AAAA,cACD,CAAE;AAAA,YACH;AAIA,gBAAK,CAACxB,SAAQ,cAAc,CAAC,OAAQ,SAAU,IAAK;AACnD,iBAAG,YAAY;AACf,iBAAG,WAAW,aAAc,SAAS,EAAG;AACxC,qBAAO,GAAG,WAAW,aAAc,OAAQ,MAAM;AAAA,YAClD,CAAE,GAAI;AACL,wBAAW,SAAS,SAAU,MAAM,OAAOwB,QAAQ;AAClD,oBAAK,CAACA,UAAS,KAAK,SAAS,YAAY,MAAM,SAAU;AACxD,yBAAO,KAAK;AAAA,gBACb;AAAA,cACD,CAAE;AAAA,YACH;AAIA,gBAAK,CAAC,OAAQ,SAAU,IAAK;AAC5B,qBAAO,GAAG,aAAc,UAAW,KAAK;AAAA,YACzC,CAAE,GAAI;AACL,wBAAW,UAAU,SAAU,MAAM,MAAMA,QAAQ;AAClD,oBAAI;AACJ,oBAAK,CAACA,QAAQ;AACb,yBAAO,KAAM,IAAK,MAAM,OAAO,KAAK,YAAY,KAC7C,MAAM,KAAK,iBAAkB,IAAK,MAAO,IAAI,YAC9C,IAAI,QACJ;AAAA,gBACH;AAAA,cACD,CAAE;AAAA,YACH;AAEA,mBAAOZ;AAAA,UAEP,EAAKtB,OAAO;AAAA;AAIZ,eAAO,OAAO;AACd,eAAO,OAAO,OAAO;AAGrB,eAAO,KAAM,GAAI,IAAI,OAAO,KAAK;AACjC,eAAO,aAAa,OAAO,SAAS,OAAO;AAC3C,eAAO,OAAO,OAAO;AACrB,eAAO,WAAW,OAAO;AACzB,eAAO,WAAW,OAAO;AACzB,eAAO,iBAAiB,OAAO;AAK/B,YAAI,MAAM,SAAU,MAAMgC,MAAK,OAAQ;AACtC,cAAI,UAAU,CAAC,GACd,WAAW,UAAU;AAEtB,kBAAU,OAAO,KAAMA,IAAI,MAAO,KAAK,aAAa,GAAI;AACvD,gBAAK,KAAK,aAAa,GAAI;AAC1B,kBAAK,YAAY,OAAQ,IAAK,EAAE,GAAI,KAAM,GAAI;AAC7C;AAAA,cACD;AACA,sBAAQ,KAAM,IAAK;AAAA,YACpB;AAAA,UACD;AACA,iBAAO;AAAA,QACR;AAGA,YAAI,WAAW,SAAUG,IAAG,MAAO;AAClC,cAAI,UAAU,CAAC;AAEf,iBAAQA,IAAGA,KAAIA,GAAE,aAAc;AAC9B,gBAAKA,GAAE,aAAa,KAAKA,OAAM,MAAO;AACrC,sBAAQ,KAAMA,EAAE;AAAA,YACjB;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAGA,YAAI,gBAAgB,OAAO,KAAK,MAAM;AAItC,iBAAS,SAAU,MAAM,MAAO;AAE/B,iBAAO,KAAK,YAAY,KAAK,SAAS,YAAY,MAAM,KAAK,YAAY;AAAA,QAE1E;AACA,YAAI,aAAe;AAKnB,iBAAS,OAAQ,UAAU,WAAW,KAAM;AAC3C,cAAK,WAAY,SAAU,GAAI;AAC9B,mBAAO,OAAO,KAAM,UAAU,SAAU,MAAM5B,IAAI;AACjD,qBAAO,CAAC,CAAC,UAAU,KAAM,MAAMA,IAAG,IAAK,MAAM;AAAA,YAC9C,CAAE;AAAA,UACH;AAGA,cAAK,UAAU,UAAW;AACzB,mBAAO,OAAO,KAAM,UAAU,SAAU,MAAO;AAC9C,qBAAS,SAAS,cAAgB;AAAA,YACnC,CAAE;AAAA,UACH;AAGA,cAAK,OAAO,cAAc,UAAW;AACpC,mBAAO,OAAO,KAAM,UAAU,SAAU,MAAO;AAC9C,qBAASL,SAAQ,KAAM,WAAW,IAAK,IAAI,OAAS;AAAA,YACrD,CAAE;AAAA,UACH;AAGA,iBAAO,OAAO,OAAQ,WAAW,UAAU,GAAI;AAAA,QAChD;AAEA,eAAO,SAAS,SAAU,MAAM,OAAO,KAAM;AAC5C,cAAI,OAAO,MAAO,CAAE;AAEpB,cAAK,KAAM;AACV,mBAAO,UAAU,OAAO;AAAA,UACzB;AAEA,cAAK,MAAM,WAAW,KAAK,KAAK,aAAa,GAAI;AAChD,mBAAO,OAAO,KAAK,gBAAiB,MAAM,IAAK,IAAI,CAAE,IAAK,IAAI,CAAC;AAAA,UAChE;AAEA,iBAAO,OAAO,KAAK,QAAS,MAAM,OAAO,KAAM,OAAO,SAAUkC,OAAO;AACtE,mBAAOA,MAAK,aAAa;AAAA,UAC1B,CAAE,CAAE;AAAA,QACL;AAEA,eAAO,GAAG,OAAQ;AAAA,UACjB,MAAM,SAAU,UAAW;AAC1B,gBAAI7B,IAAG,KACN,MAAM,KAAK,QACX8B,QAAO;AAER,gBAAK,OAAO,aAAa,UAAW;AACnC,qBAAO,KAAK,UAAW,OAAQ,QAAS,EAAE,OAAQ,WAAW;AAC5D,qBAAM9B,KAAI,GAAGA,KAAI,KAAKA,MAAM;AAC3B,sBAAK,OAAO,SAAU8B,MAAM9B,EAAE,GAAG,IAAK,GAAI;AACzC,2BAAO;AAAA,kBACR;AAAA,gBACD;AAAA,cACD,CAAE,CAAE;AAAA,YACL;AAEA,kBAAM,KAAK,UAAW,CAAC,CAAE;AAEzB,iBAAMA,KAAI,GAAGA,KAAI,KAAKA,MAAM;AAC3B,qBAAO,KAAM,UAAU8B,MAAM9B,EAAE,GAAG,GAAI;AAAA,YACvC;AAEA,mBAAO,MAAM,IAAI,OAAO,WAAY,GAAI,IAAI;AAAA,UAC7C;AAAA,UACA,QAAQ,SAAU,UAAW;AAC5B,mBAAO,KAAK,UAAW,OAAQ,MAAM,YAAY,CAAC,GAAG,KAAM,CAAE;AAAA,UAC9D;AAAA,UACA,KAAK,SAAU,UAAW;AACzB,mBAAO,KAAK,UAAW,OAAQ,MAAM,YAAY,CAAC,GAAG,IAAK,CAAE;AAAA,UAC7D;AAAA,UACA,IAAI,SAAU,UAAW;AACxB,mBAAO,CAAC,CAAC;AAAA,cACR;AAAA;AAAA;AAAA,cAIA,OAAO,aAAa,YAAY,cAAc,KAAM,QAAS,IAC5D,OAAQ,QAAS,IACjB,YAAY,CAAC;AAAA,cACd;AAAA,YACD,EAAE;AAAA,UACH;AAAA,QACD,CAAE;AAOF,YAAI,YAMH,aAAa,uCAEb,OAAO,OAAO,GAAG,OAAO,SAAU,UAAU,SAAS,MAAO;AAC3D,cAAIiB,QAAO;AAGX,cAAK,CAAC,UAAW;AAChB,mBAAO;AAAA,UACR;AAIA,iBAAO,QAAQ;AAGf,cAAK,OAAO,aAAa,UAAW;AACnC,gBAAK,SAAU,CAAE,MAAM,OACtB,SAAU,SAAS,SAAS,CAAE,MAAM,OACpC,SAAS,UAAU,GAAI;AAGvB,cAAAA,SAAQ,CAAE,MAAM,UAAU,IAAK;AAAA,YAEhC,OAAO;AACN,cAAAA,SAAQ,WAAW,KAAM,QAAS;AAAA,YACnC;AAGA,gBAAKA,WAAWA,OAAO,CAAE,KAAK,CAAC,UAAY;AAG1C,kBAAKA,OAAO,CAAE,GAAI;AACjB,0BAAU,mBAAmB,SAAS,QAAS,CAAE,IAAI;AAIrD,uBAAO,MAAO,MAAM,OAAO;AAAA,kBAC1BA,OAAO,CAAE;AAAA,kBACT,WAAW,QAAQ,WAAW,QAAQ,iBAAiB,UAAUlB;AAAA,kBACjE;AAAA,gBACD,CAAE;AAGF,oBAAK,WAAW,KAAMkB,OAAO,CAAE,CAAE,KAAK,OAAO,cAAe,OAAQ,GAAI;AACvE,uBAAMA,UAAS,SAAU;AAGxB,wBAAK,WAAY,KAAMA,MAAM,CAAE,GAAI;AAClC,2BAAMA,MAAM,EAAG,QAASA,MAAM,CAAE;AAAA,oBAGjC,OAAO;AACN,2BAAK,KAAMA,QAAO,QAASA,MAAM,CAAE;AAAA,oBACpC;AAAA,kBACD;AAAA,gBACD;AAEA,uBAAO;AAAA,cAGR,OAAO;AACN,uBAAOlB,UAAS,eAAgBkB,OAAO,CAAE,CAAE;AAE3C,oBAAK,MAAO;AAGX,uBAAM,CAAE,IAAI;AACZ,uBAAK,SAAS;AAAA,gBACf;AACA,uBAAO;AAAA,cACR;AAAA,YAGD,WAAY,CAAC,WAAW,QAAQ,QAAS;AACxC,sBAAS,WAAW,MAAO,KAAM,QAAS;AAAA,YAI3C,OAAO;AACN,qBAAO,KAAK,YAAa,OAAQ,EAAE,KAAM,QAAS;AAAA,YACnD;AAAA,UAGD,WAAY,SAAS,UAAW;AAC/B,iBAAM,CAAE,IAAI;AACZ,iBAAK,SAAS;AACd,mBAAO;AAAA,UAIR,WAAY,WAAY,QAAS,GAAI;AACpC,mBAAO,KAAK,UAAU,SACrB,KAAK,MAAO,QAAS;AAAA;AAAA,cAGrB,SAAU,MAAO;AAAA;AAAA,UACnB;AAEA,iBAAO,OAAO,UAAW,UAAU,IAAK;AAAA,QACzC;AAGD,aAAK,YAAY,OAAO;AAGxB,qBAAa,OAAQlB,SAAS;AAG9B,YAAI,eAAe,kCAGlB,mBAAmB;AAAA,UAClB,UAAU;AAAA,UACV,UAAU;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAED,eAAO,GAAG,OAAQ;AAAA,UACjB,KAAK,SAAU,QAAS;AACvB,gBAAI,UAAU,OAAQ,QAAQ,IAAK,GAClCgC,KAAI,QAAQ;AAEb,mBAAO,KAAK,OAAQ,WAAW;AAC9B,kBAAI/B,KAAI;AACR,qBAAQA,KAAI+B,IAAG/B,MAAM;AACpB,oBAAK,OAAO,SAAU,MAAM,QAASA,EAAE,CAAE,GAAI;AAC5C,yBAAO;AAAA,gBACR;AAAA,cACD;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,SAAS,SAAU,WAAW,SAAU;AACvC,gBAAI,KACHA,KAAI,GACJ+B,KAAI,KAAK,QACT,UAAU,CAAC,GACX,UAAU,OAAO,cAAc,YAAY,OAAQ,SAAU;AAG9D,gBAAK,CAAC,cAAc,KAAM,SAAU,GAAI;AACvC,qBAAQ/B,KAAI+B,IAAG/B,MAAM;AACpB,qBAAM,MAAM,KAAMA,EAAE,GAAG,OAAO,QAAQ,SAAS,MAAM,IAAI,YAAa;AAGrE,sBAAK,IAAI,WAAW,OAAQ,UAC3B,QAAQ,MAAO,GAAI,IAAI;AAAA;AAAA,oBAGvB,IAAI,aAAa,KAChB,OAAO,KAAK,gBAAiB,KAAK,SAAU;AAAA,sBAAM;AAEnD,4BAAQ,KAAM,GAAI;AAClB;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAEA,mBAAO,KAAK,UAAW,QAAQ,SAAS,IAAI,OAAO,WAAY,OAAQ,IAAI,OAAQ;AAAA,UACpF;AAAA;AAAA,UAGA,OAAO,SAAU,MAAO;AAGvB,gBAAK,CAAC,MAAO;AACZ,qBAAS,KAAM,CAAE,KAAK,KAAM,CAAE,EAAE,aAAe,KAAK,MAAM,EAAE,QAAQ,EAAE,SAAS;AAAA,YAChF;AAGA,gBAAK,OAAO,SAAS,UAAW;AAC/B,qBAAOL,SAAQ,KAAM,OAAQ,IAAK,GAAG,KAAM,CAAE,CAAE;AAAA,YAChD;AAGA,mBAAOA,SAAQ;AAAA,cAAM;AAAA;AAAA,cAGpB,KAAK,SAAS,KAAM,CAAE,IAAI;AAAA,YAC3B;AAAA,UACD;AAAA,UAEA,KAAK,SAAU,UAAU,SAAU;AAClC,mBAAO,KAAK;AAAA,cACX,OAAO;AAAA,gBACN,OAAO,MAAO,KAAK,IAAI,GAAG,OAAQ,UAAU,OAAQ,CAAE;AAAA,cACvD;AAAA,YACD;AAAA,UACD;AAAA,UAEA,SAAS,SAAU,UAAW;AAC7B,mBAAO,KAAK;AAAA,cAAK,YAAY,OAC5B,KAAK,aAAa,KAAK,WAAW,OAAQ,QAAS;AAAA,YACpD;AAAA,UACD;AAAA,QACD,CAAE;AAEF,iBAAS,QAAS,KAAK8B,MAAM;AAC5B,kBAAU,MAAM,IAAKA,IAAI,MAAO,IAAI,aAAa,GAAI;AAAA,UAAC;AACtD,iBAAO;AAAA,QACR;AAEA,eAAO,KAAM;AAAA,UACZ,QAAQ,SAAU,MAAO;AACxB,gBAAI,SAAS,KAAK;AAClB,mBAAO,UAAU,OAAO,aAAa,KAAK,SAAS;AAAA,UACpD;AAAA,UACA,SAAS,SAAU,MAAO;AACzB,mBAAO,IAAK,MAAM,YAAa;AAAA,UAChC;AAAA,UACA,cAAc,SAAU,MAAM,IAAI,OAAQ;AACzC,mBAAO,IAAK,MAAM,cAAc,KAAM;AAAA,UACvC;AAAA,UACA,MAAM,SAAU,MAAO;AACtB,mBAAO,QAAS,MAAM,aAAc;AAAA,UACrC;AAAA,UACA,MAAM,SAAU,MAAO;AACtB,mBAAO,QAAS,MAAM,iBAAkB;AAAA,UACzC;AAAA,UACA,SAAS,SAAU,MAAO;AACzB,mBAAO,IAAK,MAAM,aAAc;AAAA,UACjC;AAAA,UACA,SAAS,SAAU,MAAO;AACzB,mBAAO,IAAK,MAAM,iBAAkB;AAAA,UACrC;AAAA,UACA,WAAW,SAAU,MAAM,IAAI,OAAQ;AACtC,mBAAO,IAAK,MAAM,eAAe,KAAM;AAAA,UACxC;AAAA,UACA,WAAW,SAAU,MAAM,IAAI,OAAQ;AACtC,mBAAO,IAAK,MAAM,mBAAmB,KAAM;AAAA,UAC5C;AAAA,UACA,UAAU,SAAU,MAAO;AAC1B,mBAAO,UAAY,KAAK,cAAc,CAAC,GAAI,YAAY,IAAK;AAAA,UAC7D;AAAA,UACA,UAAU,SAAU,MAAO;AAC1B,mBAAO,SAAU,KAAK,UAAW;AAAA,UAClC;AAAA,UACA,UAAU,SAAU,MAAO;AAC1B,gBAAK,KAAK,mBAAmB;AAAA;AAAA;AAAA,YAK5B,SAAU,KAAK,eAAgB,GAAI;AAEnC,qBAAO,KAAK;AAAA,YACb;AAKA,gBAAK,SAAU,MAAM,UAAW,GAAI;AACnC,qBAAO,KAAK,WAAW;AAAA,YACxB;AAEA,mBAAO,OAAO,MAAO,CAAC,GAAG,KAAK,UAAW;AAAA,UAC1C;AAAA,QACD,GAAG,SAAU,MAAMP,KAAK;AACvB,iBAAO,GAAI,IAAK,IAAI,SAAU,OAAO,UAAW;AAC/C,gBAAI,UAAU,OAAO,IAAK,MAAMA,KAAI,KAAM;AAE1C,gBAAK,KAAK,MAAO,EAAG,MAAM,SAAU;AACnC,yBAAW;AAAA,YACZ;AAEA,gBAAK,YAAY,OAAO,aAAa,UAAW;AAC/C,wBAAU,OAAO,OAAQ,UAAU,OAAQ;AAAA,YAC5C;AAEA,gBAAK,KAAK,SAAS,GAAI;AAGtB,kBAAK,CAAC,iBAAkB,IAAK,GAAI;AAChC,uBAAO,WAAY,OAAQ;AAAA,cAC5B;AAGA,kBAAK,aAAa,KAAM,IAAK,GAAI;AAChC,wBAAQ,QAAQ;AAAA,cACjB;AAAA,YACD;AAEA,mBAAO,KAAK,UAAW,OAAQ;AAAA,UAChC;AAAA,QACD,CAAE;AACF,YAAI,gBAAkB;AAKtB,iBAAS,cAAe,SAAU;AACjC,cAAI,SAAS,CAAC;AACd,iBAAO,KAAM,QAAQ,MAAO,aAAc,KAAK,CAAC,GAAG,SAAUc,IAAG,MAAO;AACtE,mBAAQ,IAAK,IAAI;AAAA,UAClB,CAAE;AACF,iBAAO;AAAA,QACR;AAwBA,eAAO,YAAY,SAAU,SAAU;AAItC,oBAAU,OAAO,YAAY,WAC5B,cAAe,OAAQ,IACvB,OAAO,OAAQ,CAAC,GAAG,OAAQ;AAE5B,cACC,QAGA,QAGA,OAGA,QAGA,OAAO,CAAC,GAGR,QAAQ,CAAC,GAGT,cAAc,IAGd,OAAO,WAAW;AAGjB,qBAAS,UAAU,QAAQ;AAI3B,oBAAQ,SAAS;AACjB,mBAAQ,MAAM,QAAQ,cAAc,IAAK;AACxC,uBAAS,MAAM,MAAM;AACrB,qBAAQ,EAAE,cAAc,KAAK,QAAS;AAGrC,oBAAK,KAAM,WAAY,EAAE,MAAO,OAAQ,CAAE,GAAG,OAAQ,CAAE,CAAE,MAAM,SAC9D,QAAQ,aAAc;AAGtB,gCAAc,KAAK;AACnB,2BAAS;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAGA,gBAAK,CAAC,QAAQ,QAAS;AACtB,uBAAS;AAAA,YACV;AAEA,qBAAS;AAGT,gBAAK,QAAS;AAGb,kBAAK,QAAS;AACb,uBAAO,CAAC;AAAA,cAGT,OAAO;AACN,uBAAO;AAAA,cACR;AAAA,YACD;AAAA,UACD,GAGAF,QAAO;AAAA;AAAA,YAGN,KAAK,WAAW;AACf,kBAAK,MAAO;AAGX,oBAAK,UAAU,CAAC,QAAS;AACxB,gCAAc,KAAK,SAAS;AAC5B,wBAAM,KAAM,MAAO;AAAA,gBACpB;AAEA,iBAAE,SAASG,KAAK,MAAO;AACtB,yBAAO,KAAM,MAAM,SAAUD,IAAG,KAAM;AACrC,wBAAK,WAAY,GAAI,GAAI;AACxB,0BAAK,CAAC,QAAQ,UAAU,CAACF,MAAK,IAAK,GAAI,GAAI;AAC1C,6BAAK,KAAM,GAAI;AAAA,sBAChB;AAAA,oBACD,WAAY,OAAO,IAAI,UAAU,OAAQ,GAAI,MAAM,UAAW;AAG7D,sBAAAG,KAAK,GAAI;AAAA,oBACV;AAAA,kBACD,CAAE;AAAA,gBACH,GAAK,SAAU;AAEf,oBAAK,UAAU,CAAC,QAAS;AACxB,uBAAK;AAAA,gBACN;AAAA,cACD;AACA,qBAAO;AAAA,YACR;AAAA;AAAA,YAGA,QAAQ,WAAW;AAClB,qBAAO,KAAM,WAAW,SAAUD,IAAG,KAAM;AAC1C,oBAAI;AACJ,wBAAU,QAAQ,OAAO,QAAS,KAAK,MAAM,KAAM,KAAM,IAAK;AAC7D,uBAAK,OAAQ,OAAO,CAAE;AAGtB,sBAAK,SAAS,aAAc;AAC3B;AAAA,kBACD;AAAA,gBACD;AAAA,cACD,CAAE;AACF,qBAAO;AAAA,YACR;AAAA;AAAA;AAAA,YAIA,KAAK,SAAUd,KAAK;AACnB,qBAAOA,MACN,OAAO,QAASA,KAAI,IAAK,IAAI,KAC7B,KAAK,SAAS;AAAA,YAChB;AAAA;AAAA,YAGA,OAAO,WAAW;AACjB,kBAAK,MAAO;AACX,uBAAO,CAAC;AAAA,cACT;AACA,qBAAO;AAAA,YACR;AAAA;AAAA;AAAA;AAAA,YAKA,SAAS,WAAW;AACnB,uBAAS,QAAQ,CAAC;AAClB,qBAAO,SAAS;AAChB,qBAAO;AAAA,YACR;AAAA,YACA,UAAU,WAAW;AACpB,qBAAO,CAAC;AAAA,YACT;AAAA;AAAA;AAAA;AAAA,YAKA,MAAM,WAAW;AAChB,uBAAS,QAAQ,CAAC;AAClB,kBAAK,CAAC,UAAU,CAAC,QAAS;AACzB,uBAAO,SAAS;AAAA,cACjB;AACA,qBAAO;AAAA,YACR;AAAA,YACA,QAAQ,WAAW;AAClB,qBAAO,CAAC,CAAC;AAAA,YACV;AAAA;AAAA,YAGA,UAAU,SAAU,SAAS,MAAO;AACnC,kBAAK,CAAC,QAAS;AACd,uBAAO,QAAQ,CAAC;AAChB,uBAAO,CAAE,SAAS,KAAK,QAAQ,KAAK,MAAM,IAAI,IAAK;AACnD,sBAAM,KAAM,IAAK;AACjB,oBAAK,CAAC,QAAS;AACd,uBAAK;AAAA,gBACN;AAAA,cACD;AACA,qBAAO;AAAA,YACR;AAAA;AAAA,YAGA,MAAM,WAAW;AAChB,cAAAY,MAAK,SAAU,MAAM,SAAU;AAC/B,qBAAO;AAAA,YACR;AAAA;AAAA,YAGA,OAAO,WAAW;AACjB,qBAAO,CAAC,CAAC;AAAA,YACV;AAAA,UACD;AAED,iBAAOA;AAAA,QACR;AAGA,iBAAS,SAAUI,IAAI;AACtB,iBAAOA;AAAA,QACR;AACA,iBAAS,QAAS,IAAK;AACtB,gBAAM;AAAA,QACP;AAEA,iBAAS,WAAY,OAAO,SAAS,QAAQ,SAAU;AACtD,cAAI;AAEJ,cAAI;AAGH,gBAAK,SAAS,WAAc,SAAS,MAAM,OAAU,GAAI;AACxD,qBAAO,KAAM,KAAM,EAAE,KAAM,OAAQ,EAAE,KAAM,MAAO;AAAA,YAGnD,WAAY,SAAS,WAAc,SAAS,MAAM,IAAO,GAAI;AAC5D,qBAAO,KAAM,OAAO,SAAS,MAAO;AAAA,YAGrC,OAAO;AAKN,sBAAQ,MAAO,QAAW,CAAE,KAAM,EAAE,MAAO,OAAQ,CAAE;AAAA,YACtD;AAAA,UAKD,SAAUC,QAAQ;AAIjB,mBAAO,MAAO,QAAW,CAAEA,MAAM,CAAE;AAAA,UACpC;AAAA,QACD;AAEA,eAAO,OAAQ;AAAA,UAEd,UAAU,SAAU,MAAO;AAC1B,gBAAI,SAAS;AAAA;AAAA;AAAA,cAIX;AAAA,gBAAE;AAAA,gBAAU;AAAA,gBAAY,OAAO,UAAW,QAAS;AAAA,gBAClD,OAAO,UAAW,QAAS;AAAA,gBAAG;AAAA,cAAE;AAAA,cACjC;AAAA,gBAAE;AAAA,gBAAW;AAAA,gBAAQ,OAAO,UAAW,aAAc;AAAA,gBACpD,OAAO,UAAW,aAAc;AAAA,gBAAG;AAAA,gBAAG;AAAA,cAAW;AAAA,cAClD;AAAA,gBAAE;AAAA,gBAAU;AAAA,gBAAQ,OAAO,UAAW,aAAc;AAAA,gBACnD,OAAO,UAAW,aAAc;AAAA,gBAAG;AAAA,gBAAG;AAAA,cAAW;AAAA,YACnD,GACA,QAAQ,WACR,UAAU;AAAA,cACT,OAAO,WAAW;AACjB,uBAAO;AAAA,cACR;AAAA,cACA,QAAQ,WAAW;AAClB,yBAAS,KAAM,SAAU,EAAE,KAAM,SAAU;AAC3C,uBAAO;AAAA,cACR;AAAA,cACA,SAAS,SAAUjB,KAAK;AACvB,uBAAO,QAAQ,KAAM,MAAMA,GAAG;AAAA,cAC/B;AAAA;AAAA,cAGA,MAAM,WAA6C;AAClD,oBAAI,MAAM;AAEV,uBAAO,OAAO,SAAU,SAAU,UAAW;AAC5C,yBAAO,KAAM,QAAQ,SAAU,IAAI,OAAQ;AAG1C,wBAAIA,MAAK,WAAY,IAAK,MAAO,CAAE,CAAE,CAAE,KAAK,IAAK,MAAO,CAAE,CAAE;AAK5D,6BAAU,MAAO,CAAE,CAAE,EAAG,WAAW;AAClC,0BAAI,WAAWA,OAAMA,IAAG,MAAO,MAAM,SAAU;AAC/C,0BAAK,YAAY,WAAY,SAAS,OAAQ,GAAI;AACjD,iCAAS,QAAQ,EACf,SAAU,SAAS,MAAO,EAC1B,KAAM,SAAS,OAAQ,EACvB,KAAM,SAAS,MAAO;AAAA,sBACzB,OAAO;AACN,iCAAU,MAAO,CAAE,IAAI,MAAO;AAAA,0BAC7B;AAAA,0BACAA,MAAK,CAAE,QAAS,IAAI;AAAA,wBACrB;AAAA,sBACD;AAAA,oBACD,CAAE;AAAA,kBACH,CAAE;AACF,wBAAM;AAAA,gBACP,CAAE,EAAE,QAAQ;AAAA,cACb;AAAA,cACA,MAAM,SAAU,aAAa,YAAY,YAAa;AACrD,oBAAI,WAAW;AACf,yBAAS,QAAS,OAAOkB,WAAU,SAAS,SAAU;AACrD,yBAAO,WAAW;AACjB,wBAAI,OAAO,MACV,OAAO,WACP,aAAa,WAAW;AACvB,0BAAI,UAAU;AAKd,0BAAK,QAAQ,UAAW;AACvB;AAAA,sBACD;AAEA,iCAAW,QAAQ,MAAO,MAAM,IAAK;AAIrC,0BAAK,aAAaA,UAAS,QAAQ,GAAI;AACtC,8BAAM,IAAI,UAAW,0BAA2B;AAAA,sBACjD;AAMA,6BAAO;AAAA;AAAA;AAAA,uBAKJ,OAAO,aAAa,YACrB,OAAO,aAAa,eACrB,SAAS;AAGV,0BAAK,WAAY,IAAK,GAAI;AAGzB,4BAAK,SAAU;AACd,+BAAK;AAAA,4BACJ;AAAA,4BACA,QAAS,UAAUA,WAAU,UAAU,OAAQ;AAAA,4BAC/C,QAAS,UAAUA,WAAU,SAAS,OAAQ;AAAA,0BAC/C;AAAA,wBAGD,OAAO;AAGN;AAEA,+BAAK;AAAA,4BACJ;AAAA,4BACA,QAAS,UAAUA,WAAU,UAAU,OAAQ;AAAA,4BAC/C,QAAS,UAAUA,WAAU,SAAS,OAAQ;AAAA,4BAC9C;AAAA,8BAAS;AAAA,8BAAUA;AAAA,8BAAU;AAAA,8BAC5BA,UAAS;AAAA,4BAAW;AAAA,0BACtB;AAAA,wBACD;AAAA,sBAGD,OAAO;AAIN,4BAAK,YAAY,UAAW;AAC3B,iCAAO;AACP,iCAAO,CAAE,QAAS;AAAA,wBACnB;AAIA,yBAAE,WAAWA,UAAS,aAAe,MAAM,IAAK;AAAA,sBACjD;AAAA,oBACD,GAGAC,WAAU,UACT,aACA,WAAW;AACV,0BAAI;AACH,mCAAW;AAAA,sBACZ,SAAUvB,IAAI;AAEb,4BAAK,OAAO,SAAS,eAAgB;AACpC,iCAAO,SAAS;AAAA,4BAAeA;AAAA,4BAC9BuB,SAAQ;AAAA,0BAAW;AAAA,wBACrB;AAKA,4BAAK,QAAQ,KAAK,UAAW;AAI5B,8BAAK,YAAY,SAAU;AAC1B,mCAAO;AACP,mCAAO,CAAEvB,EAAE;AAAA,0BACZ;AAEA,0BAAAsB,UAAS,WAAY,MAAM,IAAK;AAAA,wBACjC;AAAA,sBACD;AAAA,oBACD;AAMF,wBAAK,OAAQ;AACZ,sBAAAC,SAAQ;AAAA,oBACT,OAAO;AAIN,0BAAK,OAAO,SAAS,cAAe;AACnC,wBAAAA,SAAQ,aAAa,OAAO,SAAS,aAAa;AAAA,sBACnD;AACA,sBAAA5C,QAAO,WAAY4C,QAAQ;AAAA,oBAC5B;AAAA,kBACD;AAAA,gBACD;AAEA,uBAAO,OAAO,SAAU,SAAU,UAAW;AAG5C,yBAAQ,CAAE,EAAG,CAAE,EAAE;AAAA,oBAChB;AAAA,sBACC;AAAA,sBACA;AAAA,sBACA,WAAY,UAAW,IACtB,aACA;AAAA,sBACD,SAAS;AAAA,oBACV;AAAA,kBACD;AAGA,yBAAQ,CAAE,EAAG,CAAE,EAAE;AAAA,oBAChB;AAAA,sBACC;AAAA,sBACA;AAAA,sBACA,WAAY,WAAY,IACvB,cACA;AAAA,oBACF;AAAA,kBACD;AAGA,yBAAQ,CAAE,EAAG,CAAE,EAAE;AAAA,oBAChB;AAAA,sBACC;AAAA,sBACA;AAAA,sBACA,WAAY,UAAW,IACtB,aACA;AAAA,oBACF;AAAA,kBACD;AAAA,gBACD,CAAE,EAAE,QAAQ;AAAA,cACb;AAAA;AAAA;AAAA,cAIA,SAAS,SAAU,KAAM;AACxB,uBAAO,OAAO,OAAO,OAAO,OAAQ,KAAK,OAAQ,IAAI;AAAA,cACtD;AAAA,YACD,GACA,WAAW,CAAC;AAGb,mBAAO,KAAM,QAAQ,SAAUrC,IAAG,OAAQ;AACzC,kBAAI,OAAO,MAAO,CAAE,GACnB,cAAc,MAAO,CAAE;AAKxB,sBAAS,MAAO,CAAE,CAAE,IAAI,KAAK;AAG7B,kBAAK,aAAc;AAClB,qBAAK;AAAA,kBACJ,WAAW;AAIV,4BAAQ;AAAA,kBACT;AAAA;AAAA;AAAA,kBAIA,OAAQ,IAAIA,EAAE,EAAG,CAAE,EAAE;AAAA;AAAA;AAAA,kBAIrB,OAAQ,IAAIA,EAAE,EAAG,CAAE,EAAE;AAAA;AAAA,kBAGrB,OAAQ,CAAE,EAAG,CAAE,EAAE;AAAA;AAAA,kBAGjB,OAAQ,CAAE,EAAG,CAAE,EAAE;AAAA,gBAClB;AAAA,cACD;AAKA,mBAAK,IAAK,MAAO,CAAE,EAAE,IAAK;AAK1B,uBAAU,MAAO,CAAE,CAAE,IAAI,WAAW;AACnC,yBAAU,MAAO,CAAE,IAAI,MAAO,EAAG,SAAS,WAAW,SAAY,MAAM,SAAU;AACjF,uBAAO;AAAA,cACR;AAKA,uBAAU,MAAO,CAAE,IAAI,MAAO,IAAI,KAAK;AAAA,YACxC,CAAE;AAGF,oBAAQ,QAAS,QAAS;AAG1B,gBAAK,MAAO;AACX,mBAAK,KAAM,UAAU,QAAS;AAAA,YAC/B;AAGA,mBAAO;AAAA,UACR;AAAA;AAAA,UAGA,MAAM,SAAU,aAAc;AAC7B,gBAGC,YAAY,UAAU,QAGtBA,KAAI,WAGJ,kBAAkB,MAAOA,EAAE,GAC3B,gBAAgBN,OAAM,KAAM,SAAU,GAGtC,UAAU,OAAO,SAAS,GAG1B,aAAa,SAAUM,IAAI;AAC1B,qBAAO,SAAU,OAAQ;AACxB,gCAAiBA,EAAE,IAAI;AACvB,8BAAeA,EAAE,IAAI,UAAU,SAAS,IAAIN,OAAM,KAAM,SAAU,IAAI;AACtE,oBAAK,CAAG,EAAE,WAAc;AACvB,0BAAQ,YAAa,iBAAiB,aAAc;AAAA,gBACrD;AAAA,cACD;AAAA,YACD;AAGD,gBAAK,aAAa,GAAI;AACrB;AAAA,gBAAY;AAAA,gBAAa,QAAQ,KAAM,WAAYM,EAAE,CAAE,EAAE;AAAA,gBAAS,QAAQ;AAAA,gBACzE,CAAC;AAAA,cAAU;AAGZ,kBAAK,QAAQ,MAAM,MAAM,aACxB,WAAY,cAAeA,EAAE,KAAK,cAAeA,EAAE,EAAE,IAAK,GAAI;AAE9D,uBAAO,QAAQ,KAAK;AAAA,cACrB;AAAA,YACD;AAGA,mBAAQA,MAAM;AACb,yBAAY,cAAeA,EAAE,GAAG,WAAYA,EAAE,GAAG,QAAQ,MAAO;AAAA,YACjE;AAEA,mBAAO,QAAQ,QAAQ;AAAA,UACxB;AAAA,QACD,CAAE;AAKF,YAAI,cAAc;AAElB,eAAO,SAAS,gBAAgB,SAAUsC,QAAO,OAAQ;AAIxD,cAAK7C,QAAO,WAAWA,QAAO,QAAQ,QAAQ6C,UAAS,YAAY,KAAMA,OAAM,IAAK,GAAI;AACvF,YAAA7C,QAAO,QAAQ,KAAM,gCAAgC6C,OAAM,SAASA,OAAM,OAAO,KAAM;AAAA,UACxF;AAAA,QACD;AAKA,eAAO,iBAAiB,SAAUA,QAAQ;AACzC,UAAA7C,QAAO,WAAY,WAAW;AAC7B,kBAAM6C;AAAA,UACP,CAAE;AAAA,QACH;AAMA,YAAI,YAAY,OAAO,SAAS;AAEhC,eAAO,GAAG,QAAQ,SAAUpB,KAAK;AAEhC,oBACE,KAAMA,GAAG,EAKT,MAAO,SAAUoB,QAAQ;AACzB,mBAAO,eAAgBA,MAAM;AAAA,UAC9B,CAAE;AAEH,iBAAO;AAAA,QACR;AAEA,eAAO,OAAQ;AAAA;AAAA,UAGd,SAAS;AAAA;AAAA;AAAA,UAIT,WAAW;AAAA;AAAA,UAGX,OAAO,SAAU,MAAO;AAGvB,gBAAK,SAAS,OAAO,EAAE,OAAO,YAAY,OAAO,SAAU;AAC1D;AAAA,YACD;AAGA,mBAAO,UAAU;AAGjB,gBAAK,SAAS,QAAQ,EAAE,OAAO,YAAY,GAAI;AAC9C;AAAA,YACD;AAGA,sBAAU,YAAavC,WAAU,CAAE,MAAO,CAAE;AAAA,UAC7C;AAAA,QACD,CAAE;AAEF,eAAO,MAAM,OAAO,UAAU;AAG9B,iBAAS,YAAY;AACpB,UAAAA,UAAS,oBAAqB,oBAAoB,SAAU;AAC5D,UAAAN,QAAO,oBAAqB,QAAQ,SAAU;AAC9C,iBAAO,MAAM;AAAA,QACd;AAMA,YAAKM,UAAS,eAAe,cAC1BA,UAAS,eAAe,aAAa,CAACA,UAAS,gBAAgB,UAAa;AAG9E,UAAAN,QAAO,WAAY,OAAO,KAAM;AAAA,QAEjC,OAAO;AAGN,UAAAM,UAAS,iBAAkB,oBAAoB,SAAU;AAGzD,UAAAN,QAAO,iBAAkB,QAAQ,SAAU;AAAA,QAC5C;AAOA,YAAI,SAAS,SAAU,OAAOyB,KAAI,KAAK,OAAO,WAAW,UAAU,KAAM;AACxE,cAAIlB,KAAI,GACP,MAAM,MAAM,QACZ,OAAO,OAAO;AAGf,cAAK,OAAQ,GAAI,MAAM,UAAW;AACjC,wBAAY;AACZ,iBAAMA,MAAK,KAAM;AAChB,qBAAQ,OAAOkB,KAAIlB,IAAG,IAAKA,EAAE,GAAG,MAAM,UAAU,GAAI;AAAA,YACrD;AAAA,UAGD,WAAY,UAAU,QAAY;AACjC,wBAAY;AAEZ,gBAAK,CAAC,WAAY,KAAM,GAAI;AAC3B,oBAAM;AAAA,YACP;AAEA,gBAAK,MAAO;AAGX,kBAAK,KAAM;AACV,gBAAAkB,IAAG,KAAM,OAAO,KAAM;AACtB,gBAAAA,MAAK;AAAA,cAGN,OAAO;AACN,uBAAOA;AACP,gBAAAA,MAAK,SAAU,MAAM,MAAMiB,QAAQ;AAClC,yBAAO,KAAK,KAAM,OAAQ,IAAK,GAAGA,MAAM;AAAA,gBACzC;AAAA,cACD;AAAA,YACD;AAEA,gBAAKjB,KAAK;AACT,qBAAQlB,KAAI,KAAKA,MAAM;AACtB,gBAAAkB;AAAA,kBACC,MAAOlB,EAAE;AAAA,kBAAG;AAAA,kBAAK,MAChB,QACA,MAAM,KAAM,MAAOA,EAAE,GAAGA,IAAGkB,IAAI,MAAOlB,EAAE,GAAG,GAAI,CAAE;AAAA,gBACnD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAEA,cAAK,WAAY;AAChB,mBAAO;AAAA,UACR;AAGA,cAAK,MAAO;AACX,mBAAOkB,IAAG,KAAM,KAAM;AAAA,UACvB;AAEA,iBAAO,MAAMA,IAAI,MAAO,CAAE,GAAG,GAAI,IAAI;AAAA,QACtC;AAIA,YAAI,YAAY,SACf,aAAa;AAGd,iBAAS,WAAY,MAAM,QAAS;AACnC,iBAAO,OAAO,YAAY;AAAA,QAC3B;AAKA,iBAAS,UAAW,QAAS;AAC5B,iBAAO,OAAO,QAAS,WAAW,KAAM,EAAE,QAAS,YAAY,UAAW;AAAA,QAC3E;AACA,YAAI,aAAa,SAAU,OAAQ;AAQlC,iBAAO,MAAM,aAAa,KAAK,MAAM,aAAa,KAAK,CAAG,CAAC,MAAM;AAAA,QAClE;AAKA,iBAAS,OAAO;AACf,eAAK,UAAU,OAAO,UAAU,KAAK;AAAA,QACtC;AAEA,aAAK,MAAM;AAEX,aAAK,YAAY;AAAA,UAEhB,OAAO,SAAU,OAAQ;AAGxB,gBAAI,QAAQ,MAAO,KAAK,OAAQ;AAGhC,gBAAK,CAAC,OAAQ;AACb,sBAAQ,CAAC;AAKT,kBAAK,WAAY,KAAM,GAAI;AAI1B,oBAAK,MAAM,UAAW;AACrB,wBAAO,KAAK,OAAQ,IAAI;AAAA,gBAKzB,OAAO;AACN,yBAAO,eAAgB,OAAO,KAAK,SAAS;AAAA,oBAC3C;AAAA,oBACA,cAAc;AAAA,kBACf,CAAE;AAAA,gBACH;AAAA,cACD;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,UACA,KAAK,SAAU,OAAO,MAAM,OAAQ;AACnC,gBAAI,MACH,QAAQ,KAAK,MAAO,KAAM;AAI3B,gBAAK,OAAO,SAAS,UAAW;AAC/B,oBAAO,UAAW,IAAK,CAAE,IAAI;AAAA,YAG9B,OAAO;AAGN,mBAAM,QAAQ,MAAO;AACpB,sBAAO,UAAW,IAAK,CAAE,IAAI,KAAM,IAAK;AAAA,cACzC;AAAA,YACD;AACA,mBAAO;AAAA,UACR;AAAA,UACA,KAAK,SAAU,OAAO,KAAM;AAC3B,mBAAO,QAAQ,SACd,KAAK,MAAO,KAAM;AAAA;AAAA,cAGlB,MAAO,KAAK,OAAQ,KAAK,MAAO,KAAK,OAAQ,EAAG,UAAW,GAAI,CAAE;AAAA;AAAA,UACnE;AAAA,UACA,QAAQ,SAAU,OAAO,KAAK,OAAQ;AAarC,gBAAK,QAAQ,UACP,OAAO,OAAO,QAAQ,YAAc,UAAU,QAAc;AAEjE,qBAAO,KAAK,IAAK,OAAO,GAAI;AAAA,YAC7B;AAQA,iBAAK,IAAK,OAAO,KAAK,KAAM;AAI5B,mBAAO,UAAU,SAAY,QAAQ;AAAA,UACtC;AAAA,UACA,QAAQ,SAAU,OAAO,KAAM;AAC9B,gBAAIlB,IACH,QAAQ,MAAO,KAAK,OAAQ;AAE7B,gBAAK,UAAU,QAAY;AAC1B;AAAA,YACD;AAEA,gBAAK,QAAQ,QAAY;AAGxB,kBAAK,MAAM,QAAS,GAAI,GAAI;AAI3B,sBAAM,IAAI,IAAK,SAAU;AAAA,cAC1B,OAAO;AACN,sBAAM,UAAW,GAAI;AAIrB,sBAAM,OAAO,QACZ,CAAE,GAAI,IACJ,IAAI,MAAO,aAAc,KAAK,CAAC;AAAA,cACnC;AAEA,cAAAA,KAAI,IAAI;AAER,qBAAQA,MAAM;AACb,uBAAO,MAAO,IAAKA,EAAE,CAAE;AAAA,cACxB;AAAA,YACD;AAGA,gBAAK,QAAQ,UAAa,OAAO,cAAe,KAAM,GAAI;AAMzD,kBAAK,MAAM,UAAW;AACrB,sBAAO,KAAK,OAAQ,IAAI;AAAA,cACzB,OAAO;AACN,uBAAO,MAAO,KAAK,OAAQ;AAAA,cAC5B;AAAA,YACD;AAAA,UACD;AAAA,UACA,SAAS,SAAU,OAAQ;AAC1B,gBAAI,QAAQ,MAAO,KAAK,OAAQ;AAChC,mBAAO,UAAU,UAAa,CAAC,OAAO,cAAe,KAAM;AAAA,UAC5D;AAAA,QACD;AACA,YAAI,WAAW,IAAI,KAAK;AAExB,YAAI,WAAW,IAAI,KAAK;AAcxB,YAAI,SAAS,iCACZ,aAAa;AAEd,iBAAS,QAAS,MAAO;AACxB,cAAK,SAAS,QAAS;AACtB,mBAAO;AAAA,UACR;AAEA,cAAK,SAAS,SAAU;AACvB,mBAAO;AAAA,UACR;AAEA,cAAK,SAAS,QAAS;AACtB,mBAAO;AAAA,UACR;AAGA,cAAK,SAAS,CAAC,OAAO,IAAK;AAC1B,mBAAO,CAAC;AAAA,UACT;AAEA,cAAK,OAAO,KAAM,IAAK,GAAI;AAC1B,mBAAO,KAAK,MAAO,IAAK;AAAA,UACzB;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,SAAU,MAAM,KAAK,MAAO;AACpC,cAAI;AAIJ,cAAK,SAAS,UAAa,KAAK,aAAa,GAAI;AAChD,mBAAO,UAAU,IAAI,QAAS,YAAY,KAAM,EAAE,YAAY;AAC9D,mBAAO,KAAK,aAAc,IAAK;AAE/B,gBAAK,OAAO,SAAS,UAAW;AAC/B,kBAAI;AACH,uBAAO,QAAS,IAAK;AAAA,cACtB,SAAUc,IAAI;AAAA,cAAC;AAGf,uBAAS,IAAK,MAAM,KAAK,IAAK;AAAA,YAC/B,OAAO;AACN,qBAAO;AAAA,YACR;AAAA,UACD;AACA,iBAAO;AAAA,QACR;AAEA,eAAO,OAAQ;AAAA,UACd,SAAS,SAAU,MAAO;AACzB,mBAAO,SAAS,QAAS,IAAK,KAAK,SAAS,QAAS,IAAK;AAAA,UAC3D;AAAA,UAEA,MAAM,SAAU,MAAM,MAAM,MAAO;AAClC,mBAAO,SAAS,OAAQ,MAAM,MAAM,IAAK;AAAA,UAC1C;AAAA,UAEA,YAAY,SAAU,MAAM,MAAO;AAClC,qBAAS,OAAQ,MAAM,IAAK;AAAA,UAC7B;AAAA;AAAA;AAAA,UAIA,OAAO,SAAU,MAAM,MAAM,MAAO;AACnC,mBAAO,SAAS,OAAQ,MAAM,MAAM,IAAK;AAAA,UAC1C;AAAA,UAEA,aAAa,SAAU,MAAM,MAAO;AACnC,qBAAS,OAAQ,MAAM,IAAK;AAAA,UAC7B;AAAA,QACD,CAAE;AAEF,eAAO,GAAG,OAAQ;AAAA,UACjB,MAAM,SAAU,KAAK,OAAQ;AAC5B,gBAAId,IAAG,MAAM,MACZ,OAAO,KAAM,CAAE,GACf,QAAQ,QAAQ,KAAK;AAGtB,gBAAK,QAAQ,QAAY;AACxB,kBAAK,KAAK,QAAS;AAClB,uBAAO,SAAS,IAAK,IAAK;AAE1B,oBAAK,KAAK,aAAa,KAAK,CAAC,SAAS,IAAK,MAAM,cAAe,GAAI;AACnE,kBAAAA,KAAI,MAAM;AACV,yBAAQA,MAAM;AAIb,wBAAK,MAAOA,EAAE,GAAI;AACjB,6BAAO,MAAOA,EAAE,EAAE;AAClB,0BAAK,KAAK,QAAS,OAAQ,MAAM,GAAI;AACpC,+BAAO,UAAW,KAAK,MAAO,CAAE,CAAE;AAClC,iCAAU,MAAM,MAAM,KAAM,IAAK,CAAE;AAAA,sBACpC;AAAA,oBACD;AAAA,kBACD;AACA,2BAAS,IAAK,MAAM,gBAAgB,IAAK;AAAA,gBAC1C;AAAA,cACD;AAEA,qBAAO;AAAA,YACR;AAGA,gBAAK,OAAO,QAAQ,UAAW;AAC9B,qBAAO,KAAK,KAAM,WAAW;AAC5B,yBAAS,IAAK,MAAM,GAAI;AAAA,cACzB,CAAE;AAAA,YACH;AAEA,mBAAO,OAAQ,MAAM,SAAUmC,QAAQ;AACtC,kBAAII;AAOJ,kBAAK,QAAQJ,WAAU,QAAY;AAIlC,gBAAAI,QAAO,SAAS,IAAK,MAAM,GAAI;AAC/B,oBAAKA,UAAS,QAAY;AACzB,yBAAOA;AAAA,gBACR;AAIA,gBAAAA,QAAO,SAAU,MAAM,GAAI;AAC3B,oBAAKA,UAAS,QAAY;AACzB,yBAAOA;AAAA,gBACR;AAGA;AAAA,cACD;AAGA,mBAAK,KAAM,WAAW;AAGrB,yBAAS,IAAK,MAAM,KAAKJ,MAAM;AAAA,cAChC,CAAE;AAAA,YACH,GAAG,MAAM,OAAO,UAAU,SAAS,GAAG,MAAM,IAAK;AAAA,UAClD;AAAA,UAEA,YAAY,SAAU,KAAM;AAC3B,mBAAO,KAAK,KAAM,WAAW;AAC5B,uBAAS,OAAQ,MAAM,GAAI;AAAA,YAC5B,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAGF,eAAO,OAAQ;AAAA,UACd,OAAO,SAAU,MAAM,MAAM,MAAO;AACnC,gBAAI;AAEJ,gBAAK,MAAO;AACX,sBAAS,QAAQ,QAAS;AAC1B,sBAAQ,SAAS,IAAK,MAAM,IAAK;AAGjC,kBAAK,MAAO;AACX,oBAAK,CAAC,SAAS,MAAM,QAAS,IAAK,GAAI;AACtC,0BAAQ,SAAS,OAAQ,MAAM,MAAM,OAAO,UAAW,IAAK,CAAE;AAAA,gBAC/D,OAAO;AACN,wBAAM,KAAM,IAAK;AAAA,gBAClB;AAAA,cACD;AACA,qBAAO,SAAS,CAAC;AAAA,YAClB;AAAA,UACD;AAAA,UAEA,SAAS,SAAU,MAAM,MAAO;AAC/B,mBAAO,QAAQ;AAEf,gBAAI,QAAQ,OAAO,MAAO,MAAM,IAAK,GACpC,cAAc,MAAM,QACpBjB,MAAK,MAAM,MAAM,GACjB,QAAQ,OAAO,YAAa,MAAM,IAAK,GACvC,OAAO,WAAW;AACjB,qBAAO,QAAS,MAAM,IAAK;AAAA,YAC5B;AAGD,gBAAKA,QAAO,cAAe;AAC1B,cAAAA,MAAK,MAAM,MAAM;AACjB;AAAA,YACD;AAEA,gBAAKA,KAAK;AAIT,kBAAK,SAAS,MAAO;AACpB,sBAAM,QAAS,YAAa;AAAA,cAC7B;AAGA,qBAAO,MAAM;AACb,cAAAA,IAAG,KAAM,MAAM,MAAM,KAAM;AAAA,YAC5B;AAEA,gBAAK,CAAC,eAAe,OAAQ;AAC5B,oBAAM,MAAM,KAAK;AAAA,YAClB;AAAA,UACD;AAAA;AAAA,UAGA,aAAa,SAAU,MAAM,MAAO;AACnC,gBAAI,MAAM,OAAO;AACjB,mBAAO,SAAS,IAAK,MAAM,GAAI,KAAK,SAAS,OAAQ,MAAM,KAAK;AAAA,cAC/D,OAAO,OAAO,UAAW,aAAc,EAAE,IAAK,WAAW;AACxD,yBAAS,OAAQ,MAAM,CAAE,OAAO,SAAS,GAAI,CAAE;AAAA,cAChD,CAAE;AAAA,YACH,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,eAAO,GAAG,OAAQ;AAAA,UACjB,OAAO,SAAU,MAAM,MAAO;AAC7B,gBAAI,SAAS;AAEb,gBAAK,OAAO,SAAS,UAAW;AAC/B,qBAAO;AACP,qBAAO;AACP;AAAA,YACD;AAEA,gBAAK,UAAU,SAAS,QAAS;AAChC,qBAAO,OAAO,MAAO,KAAM,CAAE,GAAG,IAAK;AAAA,YACtC;AAEA,mBAAO,SAAS,SACf,OACA,KAAK,KAAM,WAAW;AACrB,kBAAI,QAAQ,OAAO,MAAO,MAAM,MAAM,IAAK;AAG3C,qBAAO,YAAa,MAAM,IAAK;AAE/B,kBAAK,SAAS,QAAQ,MAAO,CAAE,MAAM,cAAe;AACnD,uBAAO,QAAS,MAAM,IAAK;AAAA,cAC5B;AAAA,YACD,CAAE;AAAA,UACJ;AAAA,UACA,SAAS,SAAU,MAAO;AACzB,mBAAO,KAAK,KAAM,WAAW;AAC5B,qBAAO,QAAS,MAAM,IAAK;AAAA,YAC5B,CAAE;AAAA,UACH;AAAA,UACA,YAAY,SAAU,MAAO;AAC5B,mBAAO,KAAK,MAAO,QAAQ,MAAM,CAAC,CAAE;AAAA,UACrC;AAAA;AAAA;AAAA,UAIA,SAAS,SAAU,MAAM,KAAM;AAC9B,gBAAI,KACH,QAAQ,GACR,QAAQ,OAAO,SAAS,GACxB,WAAW,MACXlB,KAAI,KAAK,QACT,UAAU,WAAW;AACpB,kBAAK,CAAG,EAAE,OAAU;AACnB,sBAAM,YAAa,UAAU,CAAE,QAAS,CAAE;AAAA,cAC3C;AAAA,YACD;AAED,gBAAK,OAAO,SAAS,UAAW;AAC/B,oBAAM;AACN,qBAAO;AAAA,YACR;AACA,mBAAO,QAAQ;AAEf,mBAAQA,MAAM;AACb,oBAAM,SAAS,IAAK,SAAUA,EAAE,GAAG,OAAO,YAAa;AACvD,kBAAK,OAAO,IAAI,OAAQ;AACvB;AACA,oBAAI,MAAM,IAAK,OAAQ;AAAA,cACxB;AAAA,YACD;AACA,oBAAQ;AACR,mBAAO,MAAM,QAAS,GAAI;AAAA,UAC3B;AAAA,QACD,CAAE;AACF,YAAI,OAAS,sCAAwC;AAErD,YAAI,UAAU,IAAI,OAAQ,mBAAmB,OAAO,eAAe,GAAI;AAGvE,YAAI,YAAY,CAAE,OAAO,SAAS,UAAU,MAAO;AAEnD,YAAI,kBAAkBD,UAAS;AAI9B,YAAI,aAAa,SAAU,MAAO;AAChC,iBAAO,OAAO,SAAU,KAAK,eAAe,IAAK;AAAA,QAClD,GACA,WAAW,EAAE,UAAU,KAAK;AAO7B,YAAK,gBAAgB,aAAc;AAClC,uBAAa,SAAU,MAAO;AAC7B,mBAAO,OAAO,SAAU,KAAK,eAAe,IAAK,KAChD,KAAK,YAAa,QAAS,MAAM,KAAK;AAAA,UACxC;AAAA,QACD;AACD,YAAI,qBAAqB,SAAU,MAAM,IAAK;AAI5C,iBAAO,MAAM;AAGb,iBAAO,KAAK,MAAM,YAAY,UAC7B,KAAK,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,UAMvB,WAAY,IAAK,KAEjB,OAAO,IAAK,MAAM,SAAU,MAAM;AAAA,QACpC;AAID,iBAAS,UAAW,MAAM,MAAM,YAAY,OAAQ;AACnD,cAAI,UAAU,OACb,gBAAgB,IAChB,eAAe,QACd,WAAW;AACV,mBAAO,MAAM,IAAI;AAAA,UAClB,IACA,WAAW;AACV,mBAAO,OAAO,IAAK,MAAM,MAAM,EAAG;AAAA,UACnC,GACD,UAAU,aAAa,GACvB,OAAO,cAAc,WAAY,CAAE,MAAO,OAAO,UAAW,IAAK,IAAI,KAAK,OAG1E,gBAAgB,KAAK,aAClB,OAAO,UAAW,IAAK,KAAK,SAAS,QAAQ,CAAC,YAChD,QAAQ,KAAM,OAAO,IAAK,MAAM,IAAK,CAAE;AAEzC,cAAK,iBAAiB,cAAe,CAAE,MAAM,MAAO;AAInD,sBAAU,UAAU;AAGpB,mBAAO,QAAQ,cAAe,CAAE;AAGhC,4BAAgB,CAAC,WAAW;AAE5B,mBAAQ,iBAAkB;AAIzB,qBAAO,MAAO,MAAM,MAAM,gBAAgB,IAAK;AAC/C,mBAAO,IAAI,UAAY,KAAM,QAAQ,aAAa,IAAI,WAAW,SAAW,GAAI;AAC/E,gCAAgB;AAAA,cACjB;AACA,8BAAgB,gBAAgB;AAAA,YAEjC;AAEA,4BAAgB,gBAAgB;AAChC,mBAAO,MAAO,MAAM,MAAM,gBAAgB,IAAK;AAG/C,yBAAa,cAAc,CAAC;AAAA,UAC7B;AAEA,cAAK,YAAa;AACjB,4BAAgB,CAAC,iBAAiB,CAAC,WAAW;AAG9C,uBAAW,WAAY,CAAE,IACxB,iBAAkB,WAAY,CAAE,IAAI,KAAM,WAAY,CAAE,IACxD,CAAC,WAAY,CAAE;AAChB,gBAAK,OAAQ;AACZ,oBAAM,OAAO;AACb,oBAAM,QAAQ;AACd,oBAAM,MAAM;AAAA,YACb;AAAA,UACD;AACA,iBAAO;AAAA,QACR;AAGA,YAAI,oBAAoB,CAAC;AAEzB,iBAAS,kBAAmB,MAAO;AAClC,cAAI,MACH,MAAM,KAAK,eACXwB,YAAW,KAAK,UAChB,UAAU,kBAAmBA,SAAS;AAEvC,cAAK,SAAU;AACd,mBAAO;AAAA,UACR;AAEA,iBAAO,IAAI,KAAK,YAAa,IAAI,cAAeA,SAAS,CAAE;AAC3D,oBAAU,OAAO,IAAK,MAAM,SAAU;AAEtC,eAAK,WAAW,YAAa,IAAK;AAElC,cAAK,YAAY,QAAS;AACzB,sBAAU;AAAA,UACX;AACA,4BAAmBA,SAAS,IAAI;AAEhC,iBAAO;AAAA,QACR;AAEA,iBAAS,SAAU,UAAU,MAAO;AACnC,cAAI,SAAS,MACZ,SAAS,CAAC,GACV,QAAQ,GACR,SAAS,SAAS;AAGnB,iBAAQ,QAAQ,QAAQ,SAAU;AACjC,mBAAO,SAAU,KAAM;AACvB,gBAAK,CAAC,KAAK,OAAQ;AAClB;AAAA,YACD;AAEA,sBAAU,KAAK,MAAM;AACrB,gBAAK,MAAO;AAKX,kBAAK,YAAY,QAAS;AACzB,uBAAQ,KAAM,IAAI,SAAS,IAAK,MAAM,SAAU,KAAK;AACrD,oBAAK,CAAC,OAAQ,KAAM,GAAI;AACvB,uBAAK,MAAM,UAAU;AAAA,gBACtB;AAAA,cACD;AACA,kBAAK,KAAK,MAAM,YAAY,MAAM,mBAAoB,IAAK,GAAI;AAC9D,uBAAQ,KAAM,IAAI,kBAAmB,IAAK;AAAA,cAC3C;AAAA,YACD,OAAO;AACN,kBAAK,YAAY,QAAS;AACzB,uBAAQ,KAAM,IAAI;AAGlB,yBAAS,IAAK,MAAM,WAAW,OAAQ;AAAA,cACxC;AAAA,YACD;AAAA,UACD;AAGA,eAAM,QAAQ,GAAG,QAAQ,QAAQ,SAAU;AAC1C,gBAAK,OAAQ,KAAM,KAAK,MAAO;AAC9B,uBAAU,KAAM,EAAE,MAAM,UAAU,OAAQ,KAAM;AAAA,YACjD;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAEA,eAAO,GAAG,OAAQ;AAAA,UACjB,MAAM,WAAW;AAChB,mBAAO,SAAU,MAAM,IAAK;AAAA,UAC7B;AAAA,UACA,MAAM,WAAW;AAChB,mBAAO,SAAU,IAAK;AAAA,UACvB;AAAA,UACA,QAAQ,SAAU,OAAQ;AACzB,gBAAK,OAAO,UAAU,WAAY;AACjC,qBAAO,QAAQ,KAAK,KAAK,IAAI,KAAK,KAAK;AAAA,YACxC;AAEA,mBAAO,KAAK,KAAM,WAAW;AAC5B,kBAAK,mBAAoB,IAAK,GAAI;AACjC,uBAAQ,IAAK,EAAE,KAAK;AAAA,cACrB,OAAO;AACN,uBAAQ,IAAK,EAAE,KAAK;AAAA,cACrB;AAAA,YACD,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AACF,YAAI,iBAAmB;AAEvB,YAAI,WAAa;AAEjB,YAAI,cAAgB;AAIpB,SAAE,WAAW;AACZ,cAAI,WAAWxB,UAAS,uBAAuB,GAC9C,MAAM,SAAS,YAAaA,UAAS,cAAe,KAAM,CAAE,GAC5D,QAAQA,UAAS,cAAe,OAAQ;AAMzC,gBAAM,aAAc,QAAQ,OAAQ;AACpC,gBAAM,aAAc,WAAW,SAAU;AACzC,gBAAM,aAAc,QAAQ,GAAI;AAEhC,cAAI,YAAa,KAAM;AAIvB,kBAAQ,aAAa,IAAI,UAAW,IAAK,EAAE,UAAW,IAAK,EAAE,UAAU;AAIvE,cAAI,YAAY;AAChB,kBAAQ,iBAAiB,CAAC,CAAC,IAAI,UAAW,IAAK,EAAE,UAAU;AAK3D,cAAI,YAAY;AAChB,kBAAQ,SAAS,CAAC,CAAC,IAAI;AAAA,QACxB,GAAI;AAIJ,YAAI,UAAU;AAAA;AAAA;AAAA;AAAA,UAKb,OAAO,CAAE,GAAG,WAAW,UAAW;AAAA,UAClC,KAAK,CAAE,GAAG,qBAAqB,qBAAsB;AAAA,UACrD,IAAI,CAAE,GAAG,kBAAkB,kBAAmB;AAAA,UAC9C,IAAI,CAAE,GAAG,sBAAsB,uBAAwB;AAAA,UAEvD,UAAU,CAAE,GAAG,IAAI,EAAG;AAAA,QACvB;AAEA,gBAAQ,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,UAAU,QAAQ;AAC7E,gBAAQ,KAAK,QAAQ;AAGrB,YAAK,CAAC,QAAQ,QAAS;AACtB,kBAAQ,WAAW,QAAQ,SAAS,CAAE,GAAG,gCAAgC,WAAY;AAAA,QACtF;AAGA,iBAAS,OAAQ,SAAS,KAAM;AAI/B,cAAI;AAEJ,cAAK,OAAO,QAAQ,yBAAyB,aAAc;AAC1D,kBAAM,QAAQ,qBAAsB,OAAO,GAAI;AAAA,UAEhD,WAAY,OAAO,QAAQ,qBAAqB,aAAc;AAC7D,kBAAM,QAAQ,iBAAkB,OAAO,GAAI;AAAA,UAE5C,OAAO;AACN,kBAAM,CAAC;AAAA,UACR;AAEA,cAAK,QAAQ,UAAa,OAAO,SAAU,SAAS,GAAI,GAAI;AAC3D,mBAAO,OAAO,MAAO,CAAE,OAAQ,GAAG,GAAI;AAAA,UACvC;AAEA,iBAAO;AAAA,QACR;AAIA,iBAAS,cAAe,OAAO,aAAc;AAC5C,cAAIC,KAAI,GACP+B,KAAI,MAAM;AAEX,iBAAQ/B,KAAI+B,IAAG/B,MAAM;AACpB,qBAAS;AAAA,cACR,MAAOA,EAAE;AAAA,cACT;AAAA,cACA,CAAC,eAAe,SAAS,IAAK,YAAaA,EAAE,GAAG,YAAa;AAAA,YAC9D;AAAA,UACD;AAAA,QACD;AAGA,YAAI,QAAQ;AAEZ,iBAAS,cAAe,OAAO,SAAS,SAAS,WAAW,SAAU;AACrE,cAAI,MAAM,KAAK,KAAK,MAAM,UAAUC,IACnC,WAAW,QAAQ,uBAAuB,GAC1C,QAAQ,CAAC,GACTD,KAAI,GACJ+B,KAAI,MAAM;AAEX,iBAAQ/B,KAAI+B,IAAG/B,MAAM;AACpB,mBAAO,MAAOA,EAAE;AAEhB,gBAAK,QAAQ,SAAS,GAAI;AAGzB,kBAAK,OAAQ,IAAK,MAAM,UAAW;AAIlC,uBAAO,MAAO,OAAO,KAAK,WAAW,CAAE,IAAK,IAAI,IAAK;AAAA,cAGtD,WAAY,CAAC,MAAM,KAAM,IAAK,GAAI;AACjC,sBAAM,KAAM,QAAQ,eAAgB,IAAK,CAAE;AAAA,cAG5C,OAAO;AACN,sBAAM,OAAO,SAAS,YAAa,QAAQ,cAAe,KAAM,CAAE;AAGlE,uBAAQ,SAAS,KAAM,IAAK,KAAK,CAAE,IAAI,EAAG,GAAK,CAAE,EAAE,YAAY;AAC/D,uBAAO,QAAS,GAAI,KAAK,QAAQ;AACjC,oBAAI,YAAY,KAAM,CAAE,IAAI,OAAO,cAAe,IAAK,IAAI,KAAM,CAAE;AAGnE,gBAAAC,KAAI,KAAM,CAAE;AACZ,uBAAQA,MAAM;AACb,wBAAM,IAAI;AAAA,gBACX;AAIA,uBAAO,MAAO,OAAO,IAAI,UAAW;AAGpC,sBAAM,SAAS;AAGf,oBAAI,cAAc;AAAA,cACnB;AAAA,YACD;AAAA,UACD;AAGA,mBAAS,cAAc;AAEvB,UAAAD,KAAI;AACJ,iBAAU,OAAO,MAAOA,IAAI,GAAM;AAGjC,gBAAK,aAAa,OAAO,QAAS,MAAM,SAAU,IAAI,IAAK;AAC1D,kBAAK,SAAU;AACd,wBAAQ,KAAM,IAAK;AAAA,cACpB;AACA;AAAA,YACD;AAEA,uBAAW,WAAY,IAAK;AAG5B,kBAAM,OAAQ,SAAS,YAAa,IAAK,GAAG,QAAS;AAGrD,gBAAK,UAAW;AACf,4BAAe,GAAI;AAAA,YACpB;AAGA,gBAAK,SAAU;AACd,cAAAC,KAAI;AACJ,qBAAU,OAAO,IAAKA,IAAI,GAAM;AAC/B,oBAAK,YAAY,KAAM,KAAK,QAAQ,EAAG,GAAI;AAC1C,0BAAQ,KAAM,IAAK;AAAA,gBACpB;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAGA,YAAI,iBAAiB;AAErB,iBAAS,aAAa;AACrB,iBAAO;AAAA,QACR;AAEA,iBAAS,cAAc;AACtB,iBAAO;AAAA,QACR;AAQA,iBAAS,WAAY,MAAM,MAAO;AACjC,iBAAS,SAAS,kBAAkB,OAAU,SAAS;AAAA,QACxD;AAKA,iBAAS,oBAAoB;AAC5B,cAAI;AACH,mBAAOF,UAAS;AAAA,UACjB,SAAU,KAAM;AAAA,UAAE;AAAA,QACnB;AAEA,iBAAS,GAAI,MAAM,OAAO,UAAU,MAAMmB,KAAI,KAAM;AACnD,cAAI,QAAQ;AAGZ,cAAK,OAAO,UAAU,UAAW;AAGhC,gBAAK,OAAO,aAAa,UAAW;AAGnC,qBAAO,QAAQ;AACf,yBAAW;AAAA,YACZ;AACA,iBAAM,QAAQ,OAAQ;AACrB,iBAAI,MAAM,MAAM,UAAU,MAAM,MAAO,IAAK,GAAG,GAAI;AAAA,YACpD;AACA,mBAAO;AAAA,UACR;AAEA,cAAK,QAAQ,QAAQA,OAAM,MAAO;AAGjC,YAAAA,MAAK;AACL,mBAAO,WAAW;AAAA,UACnB,WAAYA,OAAM,MAAO;AACxB,gBAAK,OAAO,aAAa,UAAW;AAGnC,cAAAA,MAAK;AACL,qBAAO;AAAA,YACR,OAAO;AAGN,cAAAA,MAAK;AACL,qBAAO;AACP,yBAAW;AAAA,YACZ;AAAA,UACD;AACA,cAAKA,QAAO,OAAQ;AACnB,YAAAA,MAAK;AAAA,UACN,WAAY,CAACA,KAAK;AACjB,mBAAO;AAAA,UACR;AAEA,cAAK,QAAQ,GAAI;AAChB,qBAASA;AACT,YAAAA,MAAK,SAAU,OAAQ;AAGtB,qBAAO,EAAE,IAAK,KAAM;AACpB,qBAAO,OAAO,MAAO,MAAM,SAAU;AAAA,YACtC;AAGA,YAAAA,IAAG,OAAO,OAAO,SAAU,OAAO,OAAO,OAAO;AAAA,UACjD;AACA,iBAAO,KAAK,KAAM,WAAW;AAC5B,mBAAO,MAAM,IAAK,MAAM,OAAOA,KAAI,MAAM,QAAS;AAAA,UACnD,CAAE;AAAA,QACH;AAMA,eAAO,QAAQ;AAAA,UAEd,QAAQ,CAAC;AAAA,UAET,KAAK,SAAU,MAAM,OAAO,SAAS,MAAM,UAAW;AAErD,gBAAI,aAAa,aAAa,KAC7B,QAAQsB,IAAG,WACX,SAAS,UAAU,MAAM,YAAY,UACrC,WAAW,SAAS,IAAK,IAAK;AAG/B,gBAAK,CAAC,WAAY,IAAK,GAAI;AAC1B;AAAA,YACD;AAGA,gBAAK,QAAQ,SAAU;AACtB,4BAAc;AACd,wBAAU,YAAY;AACtB,yBAAW,YAAY;AAAA,YACxB;AAIA,gBAAK,UAAW;AACf,qBAAO,KAAK,gBAAiB,iBAAiB,QAAS;AAAA,YACxD;AAGA,gBAAK,CAAC,QAAQ,MAAO;AACpB,sBAAQ,OAAO,OAAO;AAAA,YACvB;AAGA,gBAAK,EAAG,SAAS,SAAS,SAAW;AACpC,uBAAS,SAAS,SAAS,uBAAO,OAAQ,IAAK;AAAA,YAChD;AACA,gBAAK,EAAG,cAAc,SAAS,SAAW;AACzC,4BAAc,SAAS,SAAS,SAAU1B,IAAI;AAI7C,uBAAO,OAAO,WAAW,eAAe,OAAO,MAAM,cAAcA,GAAE,OACpE,OAAO,MAAM,SAAS,MAAO,MAAM,SAAU,IAAI;AAAA,cACnD;AAAA,YACD;AAGA,qBAAU,SAAS,IAAK,MAAO,aAAc,KAAK,CAAE,EAAG;AACvD,YAAA0B,KAAI,MAAM;AACV,mBAAQA,MAAM;AACb,oBAAM,eAAe,KAAM,MAAOA,EAAE,CAAE,KAAK,CAAC;AAC5C,qBAAO,WAAW,IAAK,CAAE;AACzB,4BAAe,IAAK,CAAE,KAAK,IAAK,MAAO,GAAI,EAAE,KAAK;AAGlD,kBAAK,CAAC,MAAO;AACZ;AAAA,cACD;AAGA,wBAAU,OAAO,MAAM,QAAS,IAAK,KAAK,CAAC;AAG3C,sBAAS,WAAW,QAAQ,eAAe,QAAQ,aAAc;AAGjE,wBAAU,OAAO,MAAM,QAAS,IAAK,KAAK,CAAC;AAG3C,0BAAY,OAAO,OAAQ;AAAA,gBAC1B;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,MAAM,QAAQ;AAAA,gBACd;AAAA,gBACA,cAAc,YAAY,OAAO,KAAK,MAAM,aAAa,KAAM,QAAS;AAAA,gBACxE,WAAW,WAAW,KAAM,GAAI;AAAA,cACjC,GAAG,WAAY;AAGf,kBAAK,EAAG,WAAW,OAAQ,IAAK,IAAM;AACrC,2BAAW,OAAQ,IAAK,IAAI,CAAC;AAC7B,yBAAS,gBAAgB;AAGzB,oBAAK,CAAC,QAAQ,SACb,QAAQ,MAAM,KAAM,MAAM,MAAM,YAAY,WAAY,MAAM,OAAQ;AAEtE,sBAAK,KAAK,kBAAmB;AAC5B,yBAAK,iBAAkB,MAAM,WAAY;AAAA,kBAC1C;AAAA,gBACD;AAAA,cACD;AAEA,kBAAK,QAAQ,KAAM;AAClB,wBAAQ,IAAI,KAAM,MAAM,SAAU;AAElC,oBAAK,CAAC,UAAU,QAAQ,MAAO;AAC9B,4BAAU,QAAQ,OAAO,QAAQ;AAAA,gBAClC;AAAA,cACD;AAGA,kBAAK,UAAW;AACf,yBAAS,OAAQ,SAAS,iBAAiB,GAAG,SAAU;AAAA,cACzD,OAAO;AACN,yBAAS,KAAM,SAAU;AAAA,cAC1B;AAGA,qBAAO,MAAM,OAAQ,IAAK,IAAI;AAAA,YAC/B;AAAA,UAED;AAAA;AAAA,UAGA,QAAQ,SAAU,MAAM,OAAO,SAAS,UAAU,aAAc;AAE/D,gBAAIvC,IAAG,WAAW,KACjB,QAAQuC,IAAG,WACX,SAAS,UAAU,MAAM,YAAY,UACrC,WAAW,SAAS,QAAS,IAAK,KAAK,SAAS,IAAK,IAAK;AAE3D,gBAAK,CAAC,YAAY,EAAG,SAAS,SAAS,SAAW;AACjD;AAAA,YACD;AAGA,qBAAU,SAAS,IAAK,MAAO,aAAc,KAAK,CAAE,EAAG;AACvD,YAAAA,KAAI,MAAM;AACV,mBAAQA,MAAM;AACb,oBAAM,eAAe,KAAM,MAAOA,EAAE,CAAE,KAAK,CAAC;AAC5C,qBAAO,WAAW,IAAK,CAAE;AACzB,4BAAe,IAAK,CAAE,KAAK,IAAK,MAAO,GAAI,EAAE,KAAK;AAGlD,kBAAK,CAAC,MAAO;AACZ,qBAAM,QAAQ,QAAS;AACtB,yBAAO,MAAM,OAAQ,MAAM,OAAO,MAAOA,EAAE,GAAG,SAAS,UAAU,IAAK;AAAA,gBACvE;AACA;AAAA,cACD;AAEA,wBAAU,OAAO,MAAM,QAAS,IAAK,KAAK,CAAC;AAC3C,sBAAS,WAAW,QAAQ,eAAe,QAAQ,aAAc;AACjE,yBAAW,OAAQ,IAAK,KAAK,CAAC;AAC9B,oBAAM,IAAK,CAAE,KACZ,IAAI,OAAQ,YAAY,WAAW,KAAM,eAAgB,IAAI,SAAU;AAGxE,0BAAYvC,KAAI,SAAS;AACzB,qBAAQA,MAAM;AACb,4BAAY,SAAUA,EAAE;AAExB,qBAAO,eAAe,aAAa,UAAU,cAC1C,CAAC,WAAW,QAAQ,SAAS,UAAU,UACvC,CAAC,OAAO,IAAI,KAAM,UAAU,SAAU,OACtC,CAAC,YAAY,aAAa,UAAU,YACrC,aAAa,QAAQ,UAAU,WAAa;AAC7C,2BAAS,OAAQA,IAAG,CAAE;AAEtB,sBAAK,UAAU,UAAW;AACzB,6BAAS;AAAA,kBACV;AACA,sBAAK,QAAQ,QAAS;AACrB,4BAAQ,OAAO,KAAM,MAAM,SAAU;AAAA,kBACtC;AAAA,gBACD;AAAA,cACD;AAIA,kBAAK,aAAa,CAAC,SAAS,QAAS;AACpC,oBAAK,CAAC,QAAQ,YACb,QAAQ,SAAS,KAAM,MAAM,YAAY,SAAS,MAAO,MAAM,OAAQ;AAEvE,yBAAO,YAAa,MAAM,MAAM,SAAS,MAAO;AAAA,gBACjD;AAEA,uBAAO,OAAQ,IAAK;AAAA,cACrB;AAAA,YACD;AAGA,gBAAK,OAAO,cAAe,MAAO,GAAI;AACrC,uBAAS,OAAQ,MAAM,eAAgB;AAAA,YACxC;AAAA,UACD;AAAA,UAEA,UAAU,SAAU,aAAc;AAEjC,gBAAID,IAAGC,IAAG,KAAK,SAAS,WAAW,cAClC,OAAO,IAAI,MAAO,UAAU,MAAO,GAGnC,QAAQ,OAAO,MAAM,IAAK,WAAY,GAEtC,YACC,SAAS,IAAK,MAAM,QAAS,KAAK,uBAAO,OAAQ,IAAK,GACpD,MAAM,IAAK,KAAK,CAAC,GACpB,UAAU,OAAO,MAAM,QAAS,MAAM,IAAK,KAAK,CAAC;AAGlD,iBAAM,CAAE,IAAI;AAEZ,iBAAMD,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAM;AACxC,mBAAMA,EAAE,IAAI,UAAWA,EAAE;AAAA,YAC1B;AAEA,kBAAM,iBAAiB;AAGvB,gBAAK,QAAQ,eAAe,QAAQ,YAAY,KAAM,MAAM,KAAM,MAAM,OAAQ;AAC/E;AAAA,YACD;AAGA,2BAAe,OAAO,MAAM,SAAS,KAAM,MAAM,OAAO,QAAS;AAGjE,YAAAA,KAAI;AACJ,oBAAU,UAAU,aAAcA,IAAI,MAAO,CAAC,MAAM,qBAAqB,GAAI;AAC5E,oBAAM,gBAAgB,QAAQ;AAE9B,cAAAC,KAAI;AACJ,sBAAU,YAAY,QAAQ,SAAUA,IAAI,MAC3C,CAAC,MAAM,8BAA8B,GAAI;AAIzC,oBAAK,CAAC,MAAM,cAAc,UAAU,cAAc,SACjD,MAAM,WAAW,KAAM,UAAU,SAAU,GAAI;AAE/C,wBAAM,YAAY;AAClB,wBAAM,OAAO,UAAU;AAEvB,0BAAU,OAAO,MAAM,QAAS,UAAU,QAAS,KAAK,CAAC,GAAI,UAC5D,UAAU,SAAU,MAAO,QAAQ,MAAM,IAAK;AAE/C,sBAAK,QAAQ,QAAY;AACxB,yBAAO,MAAM,SAAS,SAAU,OAAQ;AACvC,4BAAM,eAAe;AACrB,4BAAM,gBAAgB;AAAA,oBACvB;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAGA,gBAAK,QAAQ,cAAe;AAC3B,sBAAQ,aAAa,KAAM,MAAM,KAAM;AAAA,YACxC;AAEA,mBAAO,MAAM;AAAA,UACd;AAAA,UAEA,UAAU,SAAU,OAAO,UAAW;AACrC,gBAAID,IAAG,WAAW,KAAK,iBAAiB,kBACvC,eAAe,CAAC,GAChB,gBAAgB,SAAS,eACzB,MAAM,MAAM;AAGb,gBAAK;AAAA;AAAA,YAIJ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,YAOJ,EAAG,MAAM,SAAS,WAAW,MAAM,UAAU,IAAM;AAEnD,qBAAQ,QAAQ,MAAM,MAAM,IAAI,cAAc,MAAO;AAIpD,oBAAK,IAAI,aAAa,KAAK,EAAG,MAAM,SAAS,WAAW,IAAI,aAAa,OAAS;AACjF,oCAAkB,CAAC;AACnB,qCAAmB,CAAC;AACpB,uBAAMA,KAAI,GAAGA,KAAI,eAAeA,MAAM;AACrC,gCAAY,SAAUA,EAAE;AAGxB,0BAAM,UAAU,WAAW;AAE3B,wBAAK,iBAAkB,GAAI,MAAM,QAAY;AAC5C,uCAAkB,GAAI,IAAI,UAAU,eACnC,OAAQ,KAAK,IAAK,EAAE,MAAO,GAAI,IAAI,KACnC,OAAO,KAAM,KAAK,MAAM,MAAM,CAAE,GAAI,CAAE,EAAE;AAAA,oBAC1C;AACA,wBAAK,iBAAkB,GAAI,GAAI;AAC9B,sCAAgB,KAAM,SAAU;AAAA,oBACjC;AAAA,kBACD;AACA,sBAAK,gBAAgB,QAAS;AAC7B,iCAAa,KAAM,EAAE,MAAM,KAAK,UAAU,gBAAgB,CAAE;AAAA,kBAC7D;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAGA,kBAAM;AACN,gBAAK,gBAAgB,SAAS,QAAS;AACtC,2BAAa,KAAM,EAAE,MAAM,KAAK,UAAU,SAAS,MAAO,aAAc,EAAE,CAAE;AAAA,YAC7E;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,SAAS,SAAU,MAAM,MAAO;AAC/B,mBAAO,eAAgB,OAAO,MAAM,WAAW,MAAM;AAAA,cACpD,YAAY;AAAA,cACZ,cAAc;AAAA,cAEd,KAAK,WAAY,IAAK,IACrB,WAAW;AACV,oBAAK,KAAK,eAAgB;AACzB,yBAAO,KAAM,KAAK,aAAc;AAAA,gBACjC;AAAA,cACD,IACA,WAAW;AACV,oBAAK,KAAK,eAAgB;AACzB,yBAAO,KAAK,cAAe,IAAK;AAAA,gBACjC;AAAA,cACD;AAAA,cAED,KAAK,SAAU,OAAQ;AACtB,uBAAO,eAAgB,MAAM,MAAM;AAAA,kBAClC,YAAY;AAAA,kBACZ,cAAc;AAAA,kBACd,UAAU;AAAA,kBACV;AAAA,gBACD,CAAE;AAAA,cACH;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,KAAK,SAAU,eAAgB;AAC9B,mBAAO,cAAe,OAAO,OAAQ,IACpC,gBACA,IAAI,OAAO,MAAO,aAAc;AAAA,UAClC;AAAA,UAEA,SAAS;AAAA,YACR,MAAM;AAAA;AAAA,cAGL,UAAU;AAAA,YACX;AAAA,YACA,OAAO;AAAA;AAAA,cAGN,OAAO,SAAU,MAAO;AAIvB,oBAAI,KAAK,QAAQ;AAGjB,oBAAK,eAAe,KAAM,GAAG,IAAK,KACjC,GAAG,SAAS,SAAU,IAAI,OAAQ,GAAI;AAGtC,iCAAgB,IAAI,SAAS,UAAW;AAAA,gBACzC;AAGA,uBAAO;AAAA,cACR;AAAA,cACA,SAAS,SAAU,MAAO;AAIzB,oBAAI,KAAK,QAAQ;AAGjB,oBAAK,eAAe,KAAM,GAAG,IAAK,KACjC,GAAG,SAAS,SAAU,IAAI,OAAQ,GAAI;AAEtC,iCAAgB,IAAI,OAAQ;AAAA,gBAC7B;AAGA,uBAAO;AAAA,cACR;AAAA;AAAA;AAAA,cAIA,UAAU,SAAU,OAAQ;AAC3B,oBAAI,SAAS,MAAM;AACnB,uBAAO,eAAe,KAAM,OAAO,IAAK,KACvC,OAAO,SAAS,SAAU,QAAQ,OAAQ,KAC1C,SAAS,IAAK,QAAQ,OAAQ,KAC9B,SAAU,QAAQ,GAAI;AAAA,cACxB;AAAA,YACD;AAAA,YAEA,cAAc;AAAA,cACb,cAAc,SAAU,OAAQ;AAI/B,oBAAK,MAAM,WAAW,UAAa,MAAM,eAAgB;AACxD,wBAAM,cAAc,cAAc,MAAM;AAAA,gBACzC;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAMA,iBAAS,eAAgB,IAAI,MAAMyC,aAAa;AAG/C,cAAK,CAACA,aAAa;AAClB,gBAAK,SAAS,IAAK,IAAI,IAAK,MAAM,QAAY;AAC7C,qBAAO,MAAM,IAAK,IAAI,MAAM,UAAW;AAAA,YACxC;AACA;AAAA,UACD;AAGA,mBAAS,IAAK,IAAI,MAAM,KAAM;AAC9B,iBAAO,MAAM,IAAK,IAAI,MAAM;AAAA,YAC3B,WAAW;AAAA,YACX,SAAS,SAAU,OAAQ;AAC1B,kBAAI,UAAU,QACb,QAAQ,SAAS,IAAK,MAAM,IAAK;AAElC,kBAAO,MAAM,YAAY,KAAO,KAAM,IAAK,GAAI;AAK9C,oBAAK,CAAC,MAAM,QAAS;AAKpB,0BAAQ/C,OAAM,KAAM,SAAU;AAC9B,2BAAS,IAAK,MAAM,MAAM,KAAM;AAKhC,6BAAW+C,YAAY,MAAM,IAAK;AAClC,uBAAM,IAAK,EAAE;AACb,2BAAS,SAAS,IAAK,MAAM,IAAK;AAClC,sBAAK,UAAU,UAAU,UAAW;AACnC,6BAAS,IAAK,MAAM,MAAM,KAAM;AAAA,kBACjC,OAAO;AACN,6BAAS,CAAC;AAAA,kBACX;AACA,sBAAK,UAAU,QAAS;AAGvB,0BAAM,yBAAyB;AAC/B,0BAAM,eAAe;AAOrB,2BAAO,UAAU,OAAO;AAAA,kBACzB;AAAA,gBAQD,YAAc,OAAO,MAAM,QAAS,IAAK,KAAK,CAAC,GAAI,cAAe;AACjE,wBAAM,gBAAgB;AAAA,gBACvB;AAAA,cAID,WAAY,MAAM,QAAS;AAG1B,yBAAS,IAAK,MAAM,MAAM;AAAA,kBACzB,OAAO,OAAO,MAAM;AAAA;AAAA;AAAA,oBAInB,OAAO,OAAQ,MAAO,CAAE,GAAG,OAAO,MAAM,SAAU;AAAA,oBAClD,MAAM,MAAO,CAAE;AAAA,oBACf;AAAA,kBACD;AAAA,gBACD,CAAE;AAGF,sBAAM,yBAAyB;AAAA,cAChC;AAAA,YACD;AAAA,UACD,CAAE;AAAA,QACH;AAEA,eAAO,cAAc,SAAU,MAAM,MAAM,QAAS;AAGnD,cAAK,KAAK,qBAAsB;AAC/B,iBAAK,oBAAqB,MAAM,MAAO;AAAA,UACxC;AAAA,QACD;AAEA,eAAO,QAAQ,SAAU,KAAK,OAAQ;AAGrC,cAAK,EAAG,gBAAgB,OAAO,QAAU;AACxC,mBAAO,IAAI,OAAO,MAAO,KAAK,KAAM;AAAA,UACrC;AAGA,cAAK,OAAO,IAAI,MAAO;AACtB,iBAAK,gBAAgB;AACrB,iBAAK,OAAO,IAAI;AAIhB,iBAAK,qBAAqB,IAAI,oBAC5B,IAAI,qBAAqB;AAAA,YAGzB,IAAI,gBAAgB,QACrB,aACA;AAKD,iBAAK,SAAW,IAAI,UAAU,IAAI,OAAO,aAAa,IACrD,IAAI,OAAO,aACX,IAAI;AAEL,iBAAK,gBAAgB,IAAI;AACzB,iBAAK,gBAAgB,IAAI;AAAA,UAG1B,OAAO;AACN,iBAAK,OAAO;AAAA,UACb;AAGA,cAAK,OAAQ;AACZ,mBAAO,OAAQ,MAAM,KAAM;AAAA,UAC5B;AAGA,eAAK,YAAY,OAAO,IAAI,aAAa,KAAK,IAAI;AAGlD,eAAM,OAAO,OAAQ,IAAI;AAAA,QAC1B;AAIA,eAAO,MAAM,YAAY;AAAA,UACxB,aAAa,OAAO;AAAA,UACpB,oBAAoB;AAAA,UACpB,sBAAsB;AAAA,UACtB,+BAA+B;AAAA,UAC/B,aAAa;AAAA,UAEb,gBAAgB,WAAW;AAC1B,gBAAI3B,KAAI,KAAK;AAEb,iBAAK,qBAAqB;AAE1B,gBAAKA,MAAK,CAAC,KAAK,aAAc;AAC7B,cAAAA,GAAE,eAAe;AAAA,YAClB;AAAA,UACD;AAAA,UACA,iBAAiB,WAAW;AAC3B,gBAAIA,KAAI,KAAK;AAEb,iBAAK,uBAAuB;AAE5B,gBAAKA,MAAK,CAAC,KAAK,aAAc;AAC7B,cAAAA,GAAE,gBAAgB;AAAA,YACnB;AAAA,UACD;AAAA,UACA,0BAA0B,WAAW;AACpC,gBAAIA,KAAI,KAAK;AAEb,iBAAK,gCAAgC;AAErC,gBAAKA,MAAK,CAAC,KAAK,aAAc;AAC7B,cAAAA,GAAE,yBAAyB;AAAA,YAC5B;AAEA,iBAAK,gBAAgB;AAAA,UACtB;AAAA,QACD;AAGA,eAAO,KAAM;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,OAAO;AAAA,UACP,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,UAAU;AAAA,UACV,KAAK;AAAA,UACL,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,SAAS;AAAA,UACT,SAAS;AAAA,UACT,SAAS;AAAA,UACT,SAAS;AAAA,UACT,WAAW;AAAA,UACX,aAAa;AAAA,UACb,SAAS;AAAA,UACT,SAAS;AAAA,UACT,eAAe;AAAA,UACf,WAAW;AAAA,UACX,SAAS;AAAA,UACT,OAAO;AAAA,QACR,GAAG,OAAO,MAAM,OAAQ;AAExB,eAAO,KAAM,EAAE,OAAO,WAAW,MAAM,WAAW,GAAG,SAAU,MAAM,cAAe;AACnF,iBAAO,MAAM,QAAS,IAAK,IAAI;AAAA;AAAA,YAG9B,OAAO,WAAW;AAKjB,6BAAgB,MAAM,MAAM,UAAW;AAGvC,qBAAO;AAAA,YACR;AAAA,YACA,SAAS,WAAW;AAGnB,6BAAgB,MAAM,IAAK;AAG3B,qBAAO;AAAA,YACR;AAAA;AAAA;AAAA,YAIA,UAAU,WAAW;AACpB,qBAAO;AAAA,YACR;AAAA,YAEA;AAAA,UACD;AAAA,QACD,CAAE;AAUF,eAAO,KAAM;AAAA,UACZ,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,cAAc;AAAA,QACf,GAAG,SAAU,MAAM,KAAM;AACxB,iBAAO,MAAM,QAAS,IAAK,IAAI;AAAA,YAC9B,cAAc;AAAA,YACd,UAAU;AAAA,YAEV,QAAQ,SAAU,OAAQ;AACzB,kBAAI,KACH,SAAS,MACT,UAAU,MAAM,eAChB,YAAY,MAAM;AAInB,kBAAK,CAAC,WAAa,YAAY,UAAU,CAAC,OAAO,SAAU,QAAQ,OAAQ,GAAM;AAChF,sBAAM,OAAO,UAAU;AACvB,sBAAM,UAAU,QAAQ,MAAO,MAAM,SAAU;AAC/C,sBAAM,OAAO;AAAA,cACd;AACA,qBAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD,CAAE;AAEF,eAAO,GAAG,OAAQ;AAAA,UAEjB,IAAI,SAAU,OAAO,UAAU,MAAMI,KAAK;AACzC,mBAAO,GAAI,MAAM,OAAO,UAAU,MAAMA,GAAG;AAAA,UAC5C;AAAA,UACA,KAAK,SAAU,OAAO,UAAU,MAAMA,KAAK;AAC1C,mBAAO,GAAI,MAAM,OAAO,UAAU,MAAMA,KAAI,CAAE;AAAA,UAC/C;AAAA,UACA,KAAK,SAAU,OAAO,UAAUA,KAAK;AACpC,gBAAI,WAAW;AACf,gBAAK,SAAS,MAAM,kBAAkB,MAAM,WAAY;AAGvD,0BAAY,MAAM;AAClB,qBAAQ,MAAM,cAAe,EAAE;AAAA,gBAC9B,UAAU,YACT,UAAU,WAAW,MAAM,UAAU,YACrC,UAAU;AAAA,gBACX,UAAU;AAAA,gBACV,UAAU;AAAA,cACX;AACA,qBAAO;AAAA,YACR;AACA,gBAAK,OAAO,UAAU,UAAW;AAGhC,mBAAM,QAAQ,OAAQ;AACrB,qBAAK,IAAK,MAAM,UAAU,MAAO,IAAK,CAAE;AAAA,cACzC;AACA,qBAAO;AAAA,YACR;AACA,gBAAK,aAAa,SAAS,OAAO,aAAa,YAAa;AAG3D,cAAAA,MAAK;AACL,yBAAW;AAAA,YACZ;AACA,gBAAKA,QAAO,OAAQ;AACnB,cAAAA,MAAK;AAAA,YACN;AACA,mBAAO,KAAK,KAAM,WAAW;AAC5B,qBAAO,MAAM,OAAQ,MAAM,OAAOA,KAAI,QAAS;AAAA,YAChD,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAGF,YAKC,eAAe,yBAGf,WAAW,qCACX,eAAe;AAGhB,iBAAS,mBAAoB,MAAM,SAAU;AAC5C,cAAK,SAAU,MAAM,OAAQ,KAC5B,SAAU,QAAQ,aAAa,KAAK,UAAU,QAAQ,YAAY,IAAK,GAAI;AAE3E,mBAAO,OAAQ,IAAK,EAAE,SAAU,OAAQ,EAAG,CAAE,KAAK;AAAA,UACnD;AAEA,iBAAO;AAAA,QACR;AAGA,iBAAS,cAAe,MAAO;AAC9B,eAAK,QAAS,KAAK,aAAc,MAAO,MAAM,QAAS,MAAM,KAAK;AAClE,iBAAO;AAAA,QACR;AACA,iBAAS,cAAe,MAAO;AAC9B,eAAO,KAAK,QAAQ,IAAK,MAAO,GAAG,CAAE,MAAM,SAAU;AACpD,iBAAK,OAAO,KAAK,KAAK,MAAO,CAAE;AAAA,UAChC,OAAO;AACN,iBAAK,gBAAiB,MAAO;AAAA,UAC9B;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,eAAgB,KAAK,MAAO;AACpC,cAAIlB,IAAG+B,IAAG,MAAM,UAAU,UAAU,UAAU;AAE9C,cAAK,KAAK,aAAa,GAAI;AAC1B;AAAA,UACD;AAGA,cAAK,SAAS,QAAS,GAAI,GAAI;AAC9B,uBAAW,SAAS,IAAK,GAAI;AAC7B,qBAAS,SAAS;AAElB,gBAAK,QAAS;AACb,uBAAS,OAAQ,MAAM,eAAgB;AAEvC,mBAAM,QAAQ,QAAS;AACtB,qBAAM/B,KAAI,GAAG+B,KAAI,OAAQ,IAAK,EAAE,QAAQ/B,KAAI+B,IAAG/B,MAAM;AACpD,yBAAO,MAAM,IAAK,MAAM,MAAM,OAAQ,IAAK,EAAGA,EAAE,CAAE;AAAA,gBACnD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAGA,cAAK,SAAS,QAAS,GAAI,GAAI;AAC9B,uBAAW,SAAS,OAAQ,GAAI;AAChC,uBAAW,OAAO,OAAQ,CAAC,GAAG,QAAS;AAEvC,qBAAS,IAAK,MAAM,QAAS;AAAA,UAC9B;AAAA,QACD;AAGA,iBAAS,SAAU,KAAK,MAAO;AAC9B,cAAIuB,YAAW,KAAK,SAAS,YAAY;AAGzC,cAAKA,cAAa,WAAW,eAAe,KAAM,IAAI,IAAK,GAAI;AAC9D,iBAAK,UAAU,IAAI;AAAA,UAGpB,WAAYA,cAAa,WAAWA,cAAa,YAAa;AAC7D,iBAAK,eAAe,IAAI;AAAA,UACzB;AAAA,QACD;AAEA,iBAAS,SAAU,YAAY,MAAM,UAAU,SAAU;AAGxD,iBAAO,KAAM,IAAK;AAElB,cAAI,UAAU,OAAO,SAAS,YAAY,MAAM,KAC/CvB,KAAI,GACJ+B,KAAI,WAAW,QACf,WAAWA,KAAI,GACf,QAAQ,KAAM,CAAE,GAChB,kBAAkB,WAAY,KAAM;AAGrC,cAAK,mBACDA,KAAI,KAAK,OAAO,UAAU,YAC3B,CAAC,QAAQ,cAAc,SAAS,KAAM,KAAM,GAAM;AACpD,mBAAO,WAAW,KAAM,SAAU,OAAQ;AACzC,kBAAID,QAAO,WAAW,GAAI,KAAM;AAChC,kBAAK,iBAAkB;AACtB,qBAAM,CAAE,IAAI,MAAM,KAAM,MAAM,OAAOA,MAAK,KAAK,CAAE;AAAA,cAClD;AACA,uBAAUA,OAAM,MAAM,UAAU,OAAQ;AAAA,YACzC,CAAE;AAAA,UACH;AAEA,cAAKC,IAAI;AACR,uBAAW,cAAe,MAAM,WAAY,CAAE,EAAE,eAAe,OAAO,YAAY,OAAQ;AAC1F,oBAAQ,SAAS;AAEjB,gBAAK,SAAS,WAAW,WAAW,GAAI;AACvC,yBAAW;AAAA,YACZ;AAGA,gBAAK,SAAS,SAAU;AACvB,wBAAU,OAAO,IAAK,OAAQ,UAAU,QAAS,GAAG,aAAc;AAClE,2BAAa,QAAQ;AAKrB,qBAAQ/B,KAAI+B,IAAG/B,MAAM;AACpB,uBAAO;AAEP,oBAAKA,OAAM,UAAW;AACrB,yBAAO,OAAO,MAAO,MAAM,MAAM,IAAK;AAGtC,sBAAK,YAAa;AAIjB,2BAAO,MAAO,SAAS,OAAQ,MAAM,QAAS,CAAE;AAAA,kBACjD;AAAA,gBACD;AAEA,yBAAS,KAAM,WAAYA,EAAE,GAAG,MAAMA,EAAE;AAAA,cACzC;AAEA,kBAAK,YAAa;AACjB,sBAAM,QAAS,QAAQ,SAAS,CAAE,EAAE;AAGpC,uBAAO,IAAK,SAAS,aAAc;AAGnC,qBAAMA,KAAI,GAAGA,KAAI,YAAYA,MAAM;AAClC,yBAAO,QAASA,EAAE;AAClB,sBAAK,YAAY,KAAM,KAAK,QAAQ,EAAG,KACtC,CAAC,SAAS,OAAQ,MAAM,YAAa,KACrC,OAAO,SAAU,KAAK,IAAK,GAAI;AAE/B,wBAAK,KAAK,QAAS,KAAK,QAAQ,IAAK,YAAY,MAAO,UAAW;AAGlE,0BAAK,OAAO,YAAY,CAAC,KAAK,UAAW;AACxC,+BAAO,SAAU,KAAK,KAAK;AAAA,0BAC1B,OAAO,KAAK,SAAS,KAAK,aAAc,OAAQ;AAAA,wBACjD,GAAG,GAAI;AAAA,sBACR;AAAA,oBACD,OAAO;AACN,8BAAS,KAAK,YAAY,QAAS,cAAc,EAAG,GAAG,MAAM,GAAI;AAAA,oBAClE;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,OAAQ,MAAM,UAAU,UAAW;AAC3C,cAAI,MACH,QAAQ,WAAW,OAAO,OAAQ,UAAU,IAAK,IAAI,MACrDA,KAAI;AAEL,kBAAU,OAAO,MAAOA,EAAE,MAAO,MAAMA,MAAM;AAC5C,gBAAK,CAAC,YAAY,KAAK,aAAa,GAAI;AACvC,qBAAO,UAAW,OAAQ,IAAK,CAAE;AAAA,YAClC;AAEA,gBAAK,KAAK,YAAa;AACtB,kBAAK,YAAY,WAAY,IAAK,GAAI;AACrC,8BAAe,OAAQ,MAAM,QAAS,CAAE;AAAA,cACzC;AACA,mBAAK,WAAW,YAAa,IAAK;AAAA,YACnC;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAEA,eAAO,OAAQ;AAAA,UACd,eAAe,SAAU,MAAO;AAC/B,mBAAO;AAAA,UACR;AAAA,UAEA,OAAO,SAAU,MAAM,eAAe,mBAAoB;AACzD,gBAAIA,IAAG+B,IAAG,aAAa,cACtB,QAAQ,KAAK,UAAW,IAAK,GAC7B,SAAS,WAAY,IAAK;AAG3B,gBAAK,CAAC,QAAQ,mBAAoB,KAAK,aAAa,KAAK,KAAK,aAAa,OACzE,CAAC,OAAO,SAAU,IAAK,GAAI;AAG5B,6BAAe,OAAQ,KAAM;AAC7B,4BAAc,OAAQ,IAAK;AAE3B,mBAAM/B,KAAI,GAAG+B,KAAI,YAAY,QAAQ/B,KAAI+B,IAAG/B,MAAM;AACjD,yBAAU,YAAaA,EAAE,GAAG,aAAcA,EAAE,CAAE;AAAA,cAC/C;AAAA,YACD;AAGA,gBAAK,eAAgB;AACpB,kBAAK,mBAAoB;AACxB,8BAAc,eAAe,OAAQ,IAAK;AAC1C,+BAAe,gBAAgB,OAAQ,KAAM;AAE7C,qBAAMA,KAAI,GAAG+B,KAAI,YAAY,QAAQ/B,KAAI+B,IAAG/B,MAAM;AACjD,iCAAgB,YAAaA,EAAE,GAAG,aAAcA,EAAE,CAAE;AAAA,gBACrD;AAAA,cACD,OAAO;AACN,+BAAgB,MAAM,KAAM;AAAA,cAC7B;AAAA,YACD;AAGA,2BAAe,OAAQ,OAAO,QAAS;AACvC,gBAAK,aAAa,SAAS,GAAI;AAC9B,4BAAe,cAAc,CAAC,UAAU,OAAQ,MAAM,QAAS,CAAE;AAAA,YAClE;AAGA,mBAAO;AAAA,UACR;AAAA,UAEA,WAAW,SAAU,OAAQ;AAC5B,gBAAI,MAAM,MAAM,MACf,UAAU,OAAO,MAAM,SACvBA,KAAI;AAEL,oBAAU,OAAO,MAAOA,EAAE,OAAQ,QAAWA,MAAM;AAClD,kBAAK,WAAY,IAAK,GAAI;AACzB,oBAAO,OAAO,KAAM,SAAS,OAAQ,GAAM;AAC1C,sBAAK,KAAK,QAAS;AAClB,yBAAM,QAAQ,KAAK,QAAS;AAC3B,0BAAK,QAAS,IAAK,GAAI;AACtB,+BAAO,MAAM,OAAQ,MAAM,IAAK;AAAA,sBAGjC,OAAO;AACN,+BAAO,YAAa,MAAM,MAAM,KAAK,MAAO;AAAA,sBAC7C;AAAA,oBACD;AAAA,kBACD;AAIA,uBAAM,SAAS,OAAQ,IAAI;AAAA,gBAC5B;AACA,oBAAK,KAAM,SAAS,OAAQ,GAAI;AAI/B,uBAAM,SAAS,OAAQ,IAAI;AAAA,gBAC5B;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAE;AAEF,eAAO,GAAG,OAAQ;AAAA,UACjB,QAAQ,SAAU,UAAW;AAC5B,mBAAO,OAAQ,MAAM,UAAU,IAAK;AAAA,UACrC;AAAA,UAEA,QAAQ,SAAU,UAAW;AAC5B,mBAAO,OAAQ,MAAM,QAAS;AAAA,UAC/B;AAAA,UAEA,MAAM,SAAU,OAAQ;AACvB,mBAAO,OAAQ,MAAM,SAAUmC,QAAQ;AACtC,qBAAOA,WAAU,SAChB,OAAO,KAAM,IAAK,IAClB,KAAK,MAAM,EAAE,KAAM,WAAW;AAC7B,oBAAK,KAAK,aAAa,KAAK,KAAK,aAAa,MAAM,KAAK,aAAa,GAAI;AACzE,uBAAK,cAAcA;AAAA,gBACpB;AAAA,cACD,CAAE;AAAA,YACJ,GAAG,MAAM,OAAO,UAAU,MAAO;AAAA,UAClC;AAAA,UAEA,QAAQ,WAAW;AAClB,mBAAO,SAAU,MAAM,WAAW,SAAU,MAAO;AAClD,kBAAK,KAAK,aAAa,KAAK,KAAK,aAAa,MAAM,KAAK,aAAa,GAAI;AACzE,oBAAI,SAAS,mBAAoB,MAAM,IAAK;AAC5C,uBAAO,YAAa,IAAK;AAAA,cAC1B;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,SAAS,WAAW;AACnB,mBAAO,SAAU,MAAM,WAAW,SAAU,MAAO;AAClD,kBAAK,KAAK,aAAa,KAAK,KAAK,aAAa,MAAM,KAAK,aAAa,GAAI;AACzE,oBAAI,SAAS,mBAAoB,MAAM,IAAK;AAC5C,uBAAO,aAAc,MAAM,OAAO,UAAW;AAAA,cAC9C;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,QAAQ,WAAW;AAClB,mBAAO,SAAU,MAAM,WAAW,SAAU,MAAO;AAClD,kBAAK,KAAK,YAAa;AACtB,qBAAK,WAAW,aAAc,MAAM,IAAK;AAAA,cAC1C;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,OAAO,WAAW;AACjB,mBAAO,SAAU,MAAM,WAAW,SAAU,MAAO;AAClD,kBAAK,KAAK,YAAa;AACtB,qBAAK,WAAW,aAAc,MAAM,KAAK,WAAY;AAAA,cACtD;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,OAAO,WAAW;AACjB,gBAAI,MACHnC,KAAI;AAEL,oBAAU,OAAO,KAAMA,EAAE,MAAO,MAAMA,MAAM;AAC3C,kBAAK,KAAK,aAAa,GAAI;AAG1B,uBAAO,UAAW,OAAQ,MAAM,KAAM,CAAE;AAGxC,qBAAK,cAAc;AAAA,cACpB;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,OAAO,SAAU,eAAe,mBAAoB;AACnD,4BAAgB,iBAAiB,OAAO,QAAQ;AAChD,gCAAoB,qBAAqB,OAAO,gBAAgB;AAEhE,mBAAO,KAAK,IAAK,WAAW;AAC3B,qBAAO,OAAO,MAAO,MAAM,eAAe,iBAAkB;AAAA,YAC7D,CAAE;AAAA,UACH;AAAA,UAEA,MAAM,SAAU,OAAQ;AACvB,mBAAO,OAAQ,MAAM,SAAUmC,QAAQ;AACtC,kBAAI,OAAO,KAAM,CAAE,KAAK,CAAC,GACxBnC,KAAI,GACJ+B,KAAI,KAAK;AAEV,kBAAKI,WAAU,UAAa,KAAK,aAAa,GAAI;AACjD,uBAAO,KAAK;AAAA,cACb;AAGA,kBAAK,OAAOA,WAAU,YAAY,CAAC,aAAa,KAAMA,MAAM,KAC3D,CAAC,SAAW,SAAS,KAAMA,MAAM,KAAK,CAAE,IAAI,EAAG,GAAK,CAAE,EAAE,YAAY,CAAE,GAAI;AAE1E,gBAAAA,SAAQ,OAAO,cAAeA,MAAM;AAEpC,oBAAI;AACH,yBAAQnC,KAAI+B,IAAG/B,MAAM;AACpB,2BAAO,KAAMA,EAAE,KAAK,CAAC;AAGrB,wBAAK,KAAK,aAAa,GAAI;AAC1B,6BAAO,UAAW,OAAQ,MAAM,KAAM,CAAE;AACxC,2BAAK,YAAYmC;AAAA,oBAClB;AAAA,kBACD;AAEA,yBAAO;AAAA,gBAGR,SAAUrB,IAAI;AAAA,gBAAC;AAAA,cAChB;AAEA,kBAAK,MAAO;AACX,qBAAK,MAAM,EAAE,OAAQqB,MAAM;AAAA,cAC5B;AAAA,YACD,GAAG,MAAM,OAAO,UAAU,MAAO;AAAA,UAClC;AAAA,UAEA,aAAa,WAAW;AACvB,gBAAI,UAAU,CAAC;AAGf,mBAAO,SAAU,MAAM,WAAW,SAAU,MAAO;AAClD,kBAAI,SAAS,KAAK;AAElB,kBAAK,OAAO,QAAS,MAAM,OAAQ,IAAI,GAAI;AAC1C,uBAAO,UAAW,OAAQ,IAAK,CAAE;AACjC,oBAAK,QAAS;AACb,yBAAO,aAAc,MAAM,IAAK;AAAA,gBACjC;AAAA,cACD;AAAA,YAGD,GAAG,OAAQ;AAAA,UACZ;AAAA,QACD,CAAE;AAEF,eAAO,KAAM;AAAA,UACZ,UAAU;AAAA,UACV,WAAW;AAAA,UACX,cAAc;AAAA,UACd,aAAa;AAAA,UACb,YAAY;AAAA,QACb,GAAG,SAAU,MAAM,UAAW;AAC7B,iBAAO,GAAI,IAAK,IAAI,SAAU,UAAW;AACxC,gBAAI,OACH,MAAM,CAAC,GACP,SAAS,OAAQ,QAAS,GAC1B,OAAO,OAAO,SAAS,GACvBnC,KAAI;AAEL,mBAAQA,MAAK,MAAMA,MAAM;AACxB,sBAAQA,OAAM,OAAO,OAAO,KAAK,MAAO,IAAK;AAC7C,qBAAQ,OAAQA,EAAE,CAAE,EAAG,QAAS,EAAG,KAAM;AAIzC,mBAAK,MAAO,KAAK,MAAM,IAAI,CAAE;AAAA,YAC9B;AAEA,mBAAO,KAAK,UAAW,GAAI;AAAA,UAC5B;AAAA,QACD,CAAE;AACF,YAAI,YAAY,IAAI,OAAQ,OAAO,OAAO,mBAAmB,GAAI;AAEjE,YAAI,YAAY,SAAU,MAAO;AAK/B,cAAI,OAAO,KAAK,cAAc;AAE9B,cAAK,CAAC,QAAQ,CAAC,KAAK,QAAS;AAC5B,mBAAOP;AAAA,UACR;AAEA,iBAAO,KAAK,iBAAkB,IAAK;AAAA,QACpC;AAED,YAAI,OAAO,SAAU,MAAM,SAAS,UAAW;AAC9C,cAAI,KAAK,MACR,MAAM,CAAC;AAGR,eAAM,QAAQ,SAAU;AACvB,gBAAK,IAAK,IAAI,KAAK,MAAO,IAAK;AAC/B,iBAAK,MAAO,IAAK,IAAI,QAAS,IAAK;AAAA,UACpC;AAEA,gBAAM,SAAS,KAAM,IAAK;AAG1B,eAAM,QAAQ,SAAU;AACvB,iBAAK,MAAO,IAAK,IAAI,IAAK,IAAK;AAAA,UAChC;AAEA,iBAAO;AAAA,QACR;AAGA,YAAI,YAAY,IAAI,OAAQ,UAAU,KAAM,GAAI,GAAG,GAAI;AAIvD,SAAE,WAAW;AAIZ,mBAAS,oBAAoB;AAG5B,gBAAK,CAAC,KAAM;AACX;AAAA,YACD;AAEA,sBAAU,MAAM,UAAU;AAE1B,gBAAI,MAAM,UACT;AAGD,4BAAgB,YAAa,SAAU,EAAE,YAAa,GAAI;AAE1D,gBAAI,WAAWA,QAAO,iBAAkB,GAAI;AAC5C,+BAAmB,SAAS,QAAQ;AAGpC,oCAAwB,mBAAoB,SAAS,UAAW,MAAM;AAItE,gBAAI,MAAM,QAAQ;AAClB,gCAAoB,mBAAoB,SAAS,KAAM,MAAM;AAI7D,mCAAuB,mBAAoB,SAAS,KAAM,MAAM;AAMhE,gBAAI,MAAM,WAAW;AACrB,+BAAmB,mBAAoB,IAAI,cAAc,CAAE,MAAM;AAEjE,4BAAgB,YAAa,SAAU;AAIvC,kBAAM;AAAA,UACP;AAEA,mBAAS,mBAAoB,SAAU;AACtC,mBAAO,KAAK,MAAO,WAAY,OAAQ,CAAE;AAAA,UAC1C;AAEA,cAAI,kBAAkB,sBAAsB,kBAAkB,mBAC7D,yBAAyB,uBACzB,YAAYM,UAAS,cAAe,KAAM,GAC1C,MAAMA,UAAS,cAAe,KAAM;AAGrC,cAAK,CAAC,IAAI,OAAQ;AACjB;AAAA,UACD;AAIA,cAAI,MAAM,iBAAiB;AAC3B,cAAI,UAAW,IAAK,EAAE,MAAM,iBAAiB;AAC7C,kBAAQ,kBAAkB,IAAI,MAAM,mBAAmB;AAEvD,iBAAO,OAAQ,SAAS;AAAA,YACvB,mBAAmB,WAAW;AAC7B,gCAAkB;AAClB,qBAAO;AAAA,YACR;AAAA,YACA,gBAAgB,WAAW;AAC1B,gCAAkB;AAClB,qBAAO;AAAA,YACR;AAAA,YACA,eAAe,WAAW;AACzB,gCAAkB;AAClB,qBAAO;AAAA,YACR;AAAA,YACA,oBAAoB,WAAW;AAC9B,gCAAkB;AAClB,qBAAO;AAAA,YACR;AAAA,YACA,eAAe,WAAW;AACzB,gCAAkB;AAClB,qBAAO;AAAA,YACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWA,sBAAsB,WAAW;AAChC,kBAAI,OAAO,IAAI,SAAS;AACxB,kBAAK,2BAA2B,MAAO;AACtC,wBAAQA,UAAS,cAAe,OAAQ;AACxC,qBAAKA,UAAS,cAAe,IAAK;AAClC,0BAAUA,UAAS,cAAe,KAAM;AAExC,sBAAM,MAAM,UAAU;AACtB,mBAAG,MAAM,UAAU;AAKnB,mBAAG,MAAM,SAAS;AAClB,wBAAQ,MAAM,SAAS;AAQvB,wBAAQ,MAAM,UAAU;AAExB,gCACE,YAAa,KAAM,EACnB,YAAa,EAAG,EAChB,YAAa,OAAQ;AAEvB,0BAAUN,QAAO,iBAAkB,EAAG;AACtC,0CAA4B,SAAU,QAAQ,QAAQ,EAAG,IACxD,SAAU,QAAQ,gBAAgB,EAAG,IACrC,SAAU,QAAQ,mBAAmB,EAAG,MAAQ,GAAG;AAEpD,gCAAgB,YAAa,KAAM;AAAA,cACpC;AACA,qBAAO;AAAA,YACR;AAAA,UACD,CAAE;AAAA,QACH,GAAI;AAGJ,iBAAS,OAAQ,MAAM,MAAM,UAAW;AACvC,cAAI,OAAO,UAAU,UAAU,KAM9B,QAAQ,KAAK;AAEd,qBAAW,YAAY,UAAW,IAAK;AAKvC,cAAK,UAAW;AACf,kBAAM,SAAS,iBAAkB,IAAK,KAAK,SAAU,IAAK;AAE1D,gBAAK,QAAQ,MAAM,CAAC,WAAY,IAAK,GAAI;AACxC,oBAAM,OAAO,MAAO,MAAM,IAAK;AAAA,YAChC;AAOA,gBAAK,CAAC,QAAQ,eAAe,KAAK,UAAU,KAAM,GAAI,KAAK,UAAU,KAAM,IAAK,GAAI;AAGnF,sBAAQ,MAAM;AACd,yBAAW,MAAM;AACjB,yBAAW,MAAM;AAGjB,oBAAM,WAAW,MAAM,WAAW,MAAM,QAAQ;AAChD,oBAAM,SAAS;AAGf,oBAAM,QAAQ;AACd,oBAAM,WAAW;AACjB,oBAAM,WAAW;AAAA,YAClB;AAAA,UACD;AAEA,iBAAO,QAAQ;AAAA;AAAA;AAAA,YAId,MAAM;AAAA,cACN;AAAA,QACF;AAGA,iBAAS,aAAc,aAAa,QAAS;AAG5C,iBAAO;AAAA,YACN,KAAK,WAAW;AACf,kBAAK,YAAY,GAAI;AAIpB,uBAAO,KAAK;AACZ;AAAA,cACD;AAGA,sBAAS,KAAK,MAAM,QAAS,MAAO,MAAM,SAAU;AAAA,YACrD;AAAA,UACD;AAAA,QACD;AAGA,YAAI,cAAc,CAAE,UAAU,OAAO,IAAK,GACzC,aAAaM,UAAS,cAAe,KAAM,EAAE,OAC7C,cAAc,CAAC;AAGhB,iBAAS,eAAgB,MAAO;AAG/B,cAAI,UAAU,KAAM,CAAE,EAAE,YAAY,IAAI,KAAK,MAAO,CAAE,GACrDC,KAAI,YAAY;AAEjB,iBAAQA,MAAM;AACb,mBAAO,YAAaA,EAAE,IAAI;AAC1B,gBAAK,QAAQ,YAAa;AACzB,qBAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD;AAGA,iBAAS,cAAe,MAAO;AAC9B,cAAI,QAAQ,OAAO,SAAU,IAAK,KAAK,YAAa,IAAK;AAEzD,cAAK,OAAQ;AACZ,mBAAO;AAAA,UACR;AACA,cAAK,QAAQ,YAAa;AACzB,mBAAO;AAAA,UACR;AACA,iBAAO,YAAa,IAAK,IAAI,eAAgB,IAAK,KAAK;AAAA,QACxD;AAGA,YAKC,eAAe,6BACf,cAAc,OACd,UAAU,EAAE,UAAU,YAAY,YAAY,UAAU,SAAS,QAAQ,GACzE,qBAAqB;AAAA,UACpB,eAAe;AAAA,UACf,YAAY;AAAA,QACb;AAED,iBAAS,kBAAmB,OAAO,OAAO,UAAW;AAIpD,cAAI,UAAU,QAAQ,KAAM,KAAM;AAClC,iBAAO;AAAA;AAAA,YAGN,KAAK,IAAK,GAAG,QAAS,CAAE,KAAM,YAAY,EAAI,KAAM,QAAS,CAAE,KAAK;AAAA,cACpE;AAAA,QACF;AAEA,iBAAS,mBAAoB,MAAM,WAAW,KAAK,aAAa,QAAQ,aAAc;AACrF,cAAIA,KAAI,cAAc,UAAU,IAAI,GACnC,QAAQ,GACR,QAAQ;AAGT,cAAK,SAAU,cAAc,WAAW,YAAc;AACrD,mBAAO;AAAA,UACR;AAEA,iBAAQA,KAAI,GAAGA,MAAK,GAAI;AAGvB,gBAAK,QAAQ,UAAW;AACvB,uBAAS,OAAO,IAAK,MAAM,MAAM,UAAWA,EAAE,GAAG,MAAM,MAAO;AAAA,YAC/D;AAGA,gBAAK,CAAC,aAAc;AAGnB,uBAAS,OAAO,IAAK,MAAM,YAAY,UAAWA,EAAE,GAAG,MAAM,MAAO;AAGpE,kBAAK,QAAQ,WAAY;AACxB,yBAAS,OAAO,IAAK,MAAM,WAAW,UAAWA,EAAE,IAAI,SAAS,MAAM,MAAO;AAAA,cAG9E,OAAO;AACN,yBAAS,OAAO,IAAK,MAAM,WAAW,UAAWA,EAAE,IAAI,SAAS,MAAM,MAAO;AAAA,cAC9E;AAAA,YAID,OAAO;AAGN,kBAAK,QAAQ,WAAY;AACxB,yBAAS,OAAO,IAAK,MAAM,YAAY,UAAWA,EAAE,GAAG,MAAM,MAAO;AAAA,cACrE;AAGA,kBAAK,QAAQ,UAAW;AACvB,yBAAS,OAAO,IAAK,MAAM,WAAW,UAAWA,EAAE,IAAI,SAAS,MAAM,MAAO;AAAA,cAC9E;AAAA,YACD;AAAA,UACD;AAGA,cAAK,CAAC,eAAe,eAAe,GAAI;AAIvC,qBAAS,KAAK,IAAK,GAAG,KAAK;AAAA,cAC1B,KAAM,WAAW,UAAW,CAAE,EAAE,YAAY,IAAI,UAAU,MAAO,CAAE,CAAE,IACrE,cACA,QACA,QACA;AAAA;AAAA;AAAA,YAID,CAAE,KAAK;AAAA,UACR;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,iBAAkB,MAAM,WAAW,OAAQ;AAGnD,cAAI,SAAS,UAAW,IAAK,GAI5B,kBAAkB,CAAC,QAAQ,kBAAkB,KAAK,OAClD,cAAc,mBACb,OAAO,IAAK,MAAM,aAAa,OAAO,MAAO,MAAM,cACpD,mBAAmB,aAEnB,MAAM,OAAQ,MAAM,WAAW,MAAO,GACtC,aAAa,WAAW,UAAW,CAAE,EAAE,YAAY,IAAI,UAAU,MAAO,CAAE;AAI3E,cAAK,UAAU,KAAM,GAAI,GAAI;AAC5B,gBAAK,CAAC,OAAQ;AACb,qBAAO;AAAA,YACR;AACA,kBAAM;AAAA,UACP;AAMA,eAAO,CAAC,QAAQ,kBAAkB,KAAK;AAAA;AAAA;AAAA;AAAA,UAMtC,CAAC,QAAQ,qBAAqB,KAAK,SAAU,MAAM,IAAK;AAAA;AAAA,UAIxD,QAAQ;AAAA;AAAA,UAIR,CAAC,WAAY,GAAI,KAAK,OAAO,IAAK,MAAM,WAAW,OAAO,MAAO,MAAM;AAAA,UAGvE,KAAK,eAAe,EAAE,QAAS;AAE/B,0BAAc,OAAO,IAAK,MAAM,aAAa,OAAO,MAAO,MAAM;AAKjE,+BAAmB,cAAc;AACjC,gBAAK,kBAAmB;AACvB,oBAAM,KAAM,UAAW;AAAA,YACxB;AAAA,UACD;AAGA,gBAAM,WAAY,GAAI,KAAK;AAG3B,iBAAS,MACR;AAAA,YACC;AAAA,YACA;AAAA,YACA,UAAW,cAAc,WAAW;AAAA,YACpC;AAAA,YACA;AAAA;AAAA,YAGA;AAAA,UACD,IACG;AAAA,QACL;AAEA,eAAO,OAAQ;AAAA;AAAA;AAAA,UAId,UAAU;AAAA,YACT,SAAS;AAAA,cACR,KAAK,SAAU,MAAM,UAAW;AAC/B,oBAAK,UAAW;AAGf,sBAAI,MAAM,OAAQ,MAAM,SAAU;AAClC,yBAAO,QAAQ,KAAK,MAAM;AAAA,gBAC3B;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA;AAAA,UAGA,WAAW;AAAA,YACV,2BAA2B;AAAA,YAC3B,eAAe;AAAA,YACf,eAAe;AAAA,YACf,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,iBAAiB;AAAA,YACjB,mBAAmB;AAAA,YACnB,WAAW;AAAA,YACX,cAAc;AAAA,YACd,gBAAgB;AAAA,YAChB,cAAc;AAAA,YACd,WAAW;AAAA,YACX,SAAS;AAAA,YACT,WAAW;AAAA,YACX,UAAU;AAAA,YACV,UAAU;AAAA,YACV,QAAQ;AAAA,UACT;AAAA;AAAA;AAAA,UAIA,UAAU,CAAC;AAAA;AAAA,UAGX,OAAO,SAAU,MAAM,MAAM,OAAO,OAAQ;AAG3C,gBAAK,CAAC,QAAQ,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,CAAC,KAAK,OAAQ;AACzE;AAAA,YACD;AAGA,gBAAI,KAAK,MAAM,OACd,WAAW,UAAW,IAAK,GAC3B,eAAe,YAAY,KAAM,IAAK,GACtC,QAAQ,KAAK;AAKd,gBAAK,CAAC,cAAe;AACpB,qBAAO,cAAe,QAAS;AAAA,YAChC;AAGA,oBAAQ,OAAO,SAAU,IAAK,KAAK,OAAO,SAAU,QAAS;AAG7D,gBAAK,UAAU,QAAY;AAC1B,qBAAO,OAAO;AAGd,kBAAK,SAAS,aAAc,MAAM,QAAQ,KAAM,KAAM,MAAO,IAAK,CAAE,GAAI;AACvE,wBAAQ,UAAW,MAAM,MAAM,GAAI;AAGnC,uBAAO;AAAA,cACR;AAGA,kBAAK,SAAS,QAAQ,UAAU,OAAQ;AACvC;AAAA,cACD;AAKA,kBAAK,SAAS,YAAY,CAAC,cAAe;AACzC,yBAAS,OAAO,IAAK,CAAE,MAAO,OAAO,UAAW,QAAS,IAAI,KAAK;AAAA,cACnE;AAGA,kBAAK,CAAC,QAAQ,mBAAmB,UAAU,MAAM,KAAK,QAAS,YAAa,MAAM,GAAI;AACrF,sBAAO,IAAK,IAAI;AAAA,cACjB;AAGA,kBAAK,CAAC,SAAS,EAAG,SAAS,WACxB,QAAQ,MAAM,IAAK,MAAM,OAAO,KAAM,OAAQ,QAAY;AAE5D,oBAAK,cAAe;AACnB,wBAAM,YAAa,MAAM,KAAM;AAAA,gBAChC,OAAO;AACN,wBAAO,IAAK,IAAI;AAAA,gBACjB;AAAA,cACD;AAAA,YAED,OAAO;AAGN,kBAAK,SAAS,SAAS,UACpB,MAAM,MAAM,IAAK,MAAM,OAAO,KAAM,OAAQ,QAAY;AAE1D,uBAAO;AAAA,cACR;AAGA,qBAAO,MAAO,IAAK;AAAA,YACpB;AAAA,UACD;AAAA,UAEA,KAAK,SAAU,MAAM,MAAM,OAAO,QAAS;AAC1C,gBAAI,KAAK,KAAK,OACb,WAAW,UAAW,IAAK,GAC3B,eAAe,YAAY,KAAM,IAAK;AAKvC,gBAAK,CAAC,cAAe;AACpB,qBAAO,cAAe,QAAS;AAAA,YAChC;AAGA,oBAAQ,OAAO,SAAU,IAAK,KAAK,OAAO,SAAU,QAAS;AAG7D,gBAAK,SAAS,SAAS,OAAQ;AAC9B,oBAAM,MAAM,IAAK,MAAM,MAAM,KAAM;AAAA,YACpC;AAGA,gBAAK,QAAQ,QAAY;AACxB,oBAAM,OAAQ,MAAM,MAAM,MAAO;AAAA,YAClC;AAGA,gBAAK,QAAQ,YAAY,QAAQ,oBAAqB;AACrD,oBAAM,mBAAoB,IAAK;AAAA,YAChC;AAGA,gBAAK,UAAU,MAAM,OAAQ;AAC5B,oBAAM,WAAY,GAAI;AACtB,qBAAO,UAAU,QAAQ,SAAU,GAAI,IAAI,OAAO,IAAI;AAAA,YACvD;AAEA,mBAAO;AAAA,UACR;AAAA,QACD,CAAE;AAEF,eAAO,KAAM,CAAE,UAAU,OAAQ,GAAG,SAAU,IAAI,WAAY;AAC7D,iBAAO,SAAU,SAAU,IAAI;AAAA,YAC9B,KAAK,SAAU,MAAM,UAAU,OAAQ;AACtC,kBAAK,UAAW;AAIf,uBAAO,aAAa,KAAM,OAAO,IAAK,MAAM,SAAU,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAQrD,CAAC,KAAK,eAAe,EAAE,UAAU,CAAC,KAAK,sBAAsB,EAAE,SACjE,KAAM,MAAM,SAAS,WAAW;AAC/B,yBAAO,iBAAkB,MAAM,WAAW,KAAM;AAAA,gBACjD,CAAE,IACF,iBAAkB,MAAM,WAAW,KAAM;AAAA,cAC3C;AAAA,YACD;AAAA,YAEA,KAAK,SAAU,MAAM,OAAO,OAAQ;AACnC,kBAAI,SACH,SAAS,UAAW,IAAK,GAIzB,qBAAqB,CAAC,QAAQ,cAAc,KAC3C,OAAO,aAAa,YAGrB,kBAAkB,sBAAsB,OACxC,cAAc,mBACb,OAAO,IAAK,MAAM,aAAa,OAAO,MAAO,MAAM,cACpD,WAAW,QACV;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACD,IACA;AAIF,kBAAK,eAAe,oBAAqB;AACxC,4BAAY,KAAK;AAAA,kBAChB,KAAM,WAAW,UAAW,CAAE,EAAE,YAAY,IAAI,UAAU,MAAO,CAAE,CAAE,IACrE,WAAY,OAAQ,SAAU,CAAE,IAChC,mBAAoB,MAAM,WAAW,UAAU,OAAO,MAAO,IAC7D;AAAA,gBACD;AAAA,cACD;AAGA,kBAAK,aAAc,UAAU,QAAQ,KAAM,KAAM,OAC9C,QAAS,CAAE,KAAK,UAAW,MAAO;AAEpC,qBAAK,MAAO,SAAU,IAAI;AAC1B,wBAAQ,OAAO,IAAK,MAAM,SAAU;AAAA,cACrC;AAEA,qBAAO,kBAAmB,MAAM,OAAO,QAAS;AAAA,YACjD;AAAA,UACD;AAAA,QACD,CAAE;AAEF,eAAO,SAAS,aAAa;AAAA,UAAc,QAAQ;AAAA,UAClD,SAAU,MAAM,UAAW;AAC1B,gBAAK,UAAW;AACf,sBAAS,WAAY,OAAQ,MAAM,YAAa,CAAE,KACjD,KAAK,sBAAsB,EAAE,OAC5B,KAAM,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW;AACzC,uBAAO,KAAK,sBAAsB,EAAE;AAAA,cACrC,CAAE,KACA;AAAA,YACL;AAAA,UACD;AAAA,QACD;AAGA,eAAO,KAAM;AAAA,UACZ,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,QACT,GAAG,SAAU,QAAQ,QAAS;AAC7B,iBAAO,SAAU,SAAS,MAAO,IAAI;AAAA,YACpC,QAAQ,SAAU,OAAQ;AACzB,kBAAIA,KAAI,GACP,WAAW,CAAC,GAGZ,QAAQ,OAAO,UAAU,WAAW,MAAM,MAAO,GAAI,IAAI,CAAE,KAAM;AAElE,qBAAQA,KAAI,GAAGA,MAAM;AACpB,yBAAU,SAAS,UAAWA,EAAE,IAAI,MAAO,IAC1C,MAAOA,EAAE,KAAK,MAAOA,KAAI,CAAE,KAAK,MAAO,CAAE;AAAA,cAC3C;AAEA,qBAAO;AAAA,YACR;AAAA,UACD;AAEA,cAAK,WAAW,UAAW;AAC1B,mBAAO,SAAU,SAAS,MAAO,EAAE,MAAM;AAAA,UAC1C;AAAA,QACD,CAAE;AAEF,eAAO,GAAG,OAAQ;AAAA,UACjB,KAAK,SAAU,MAAM,OAAQ;AAC5B,mBAAO,OAAQ,MAAM,SAAU,MAAM0C,OAAMP,QAAQ;AAClD,kBAAI,QAAQ,KACX,MAAM,CAAC,GACPnC,KAAI;AAEL,kBAAK,MAAM,QAAS0C,KAAK,GAAI;AAC5B,yBAAS,UAAW,IAAK;AACzB,sBAAMA,MAAK;AAEX,uBAAQ1C,KAAI,KAAKA,MAAM;AACtB,sBAAK0C,MAAM1C,EAAE,CAAE,IAAI,OAAO,IAAK,MAAM0C,MAAM1C,EAAE,GAAG,OAAO,MAAO;AAAA,gBAC/D;AAEA,uBAAO;AAAA,cACR;AAEA,qBAAOmC,WAAU,SAChB,OAAO,MAAO,MAAMO,OAAMP,MAAM,IAChC,OAAO,IAAK,MAAMO,KAAK;AAAA,YACzB,GAAG,MAAM,OAAO,UAAU,SAAS,CAAE;AAAA,UACtC;AAAA,QACD,CAAE;AAGF,iBAAS,MAAO,MAAM,SAAS,MAAMC,MAAK,QAAS;AAClD,iBAAO,IAAI,MAAM,UAAU,KAAM,MAAM,SAAS,MAAMA,MAAK,MAAO;AAAA,QACnE;AACA,eAAO,QAAQ;AAEf,cAAM,YAAY;AAAA,UACjB,aAAa;AAAA,UACb,MAAM,SAAU,MAAM,SAAS,MAAMA,MAAK,QAAQ,MAAO;AACxD,iBAAK,OAAO;AACZ,iBAAK,OAAO;AACZ,iBAAK,SAAS,UAAU,OAAO,OAAO;AACtC,iBAAK,UAAU;AACf,iBAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,iBAAK,MAAMA;AACX,iBAAK,OAAO,SAAU,OAAO,UAAW,IAAK,IAAI,KAAK;AAAA,UACvD;AAAA,UACA,KAAK,WAAW;AACf,gBAAI,QAAQ,MAAM,UAAW,KAAK,IAAK;AAEvC,mBAAO,SAAS,MAAM,MACrB,MAAM,IAAK,IAAK,IAChB,MAAM,UAAU,SAAS,IAAK,IAAK;AAAA,UACrC;AAAA,UACA,KAAK,SAAU,SAAU;AACxB,gBAAI,OACH,QAAQ,MAAM,UAAW,KAAK,IAAK;AAEpC,gBAAK,KAAK,QAAQ,UAAW;AAC5B,mBAAK,MAAM,QAAQ,OAAO,OAAQ,KAAK,MAAO;AAAA,gBAC7C;AAAA,gBAAS,KAAK,QAAQ,WAAW;AAAA,gBAAS;AAAA,gBAAG;AAAA,gBAAG,KAAK,QAAQ;AAAA,cAC9D;AAAA,YACD,OAAO;AACN,mBAAK,MAAM,QAAQ;AAAA,YACpB;AACA,iBAAK,OAAQ,KAAK,MAAM,KAAK,SAAU,QAAQ,KAAK;AAEpD,gBAAK,KAAK,QAAQ,MAAO;AACxB,mBAAK,QAAQ,KAAK,KAAM,KAAK,MAAM,KAAK,KAAK,IAAK;AAAA,YACnD;AAEA,gBAAK,SAAS,MAAM,KAAM;AACzB,oBAAM,IAAK,IAAK;AAAA,YACjB,OAAO;AACN,oBAAM,UAAU,SAAS,IAAK,IAAK;AAAA,YACpC;AACA,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,cAAM,UAAU,KAAK,YAAY,MAAM;AAEvC,cAAM,YAAY;AAAA,UACjB,UAAU;AAAA,YACT,KAAK,SAAU,OAAQ;AACtB,kBAAI;AAIJ,kBAAK,MAAM,KAAK,aAAa,KAC5B,MAAM,KAAM,MAAM,IAAK,KAAK,QAAQ,MAAM,KAAK,MAAO,MAAM,IAAK,KAAK,MAAO;AAC7E,uBAAO,MAAM,KAAM,MAAM,IAAK;AAAA,cAC/B;AAMA,uBAAS,OAAO,IAAK,MAAM,MAAM,MAAM,MAAM,EAAG;AAGhD,qBAAO,CAAC,UAAU,WAAW,SAAS,IAAI;AAAA,YAC3C;AAAA,YACA,KAAK,SAAU,OAAQ;AAKtB,kBAAK,OAAO,GAAG,KAAM,MAAM,IAAK,GAAI;AACnC,uBAAO,GAAG,KAAM,MAAM,IAAK,EAAG,KAAM;AAAA,cACrC,WAAY,MAAM,KAAK,aAAa,MACnC,OAAO,SAAU,MAAM,IAAK,KAC3B,MAAM,KAAK,MAAO,cAAe,MAAM,IAAK,CAAE,KAAK,OAAS;AAC7D,uBAAO,MAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAK;AAAA,cAC9D,OAAO;AACN,sBAAM,KAAM,MAAM,IAAK,IAAI,MAAM;AAAA,cAClC;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAIA,cAAM,UAAU,YAAY,MAAM,UAAU,aAAa;AAAA,UACxD,KAAK,SAAU,OAAQ;AACtB,gBAAK,MAAM,KAAK,YAAY,MAAM,KAAK,YAAa;AACnD,oBAAM,KAAM,MAAM,IAAK,IAAI,MAAM;AAAA,YAClC;AAAA,UACD;AAAA,QACD;AAEA,eAAO,SAAS;AAAA,UACf,QAAQ,SAAUC,IAAI;AACrB,mBAAOA;AAAA,UACR;AAAA,UACA,OAAO,SAAUA,IAAI;AACpB,mBAAO,MAAM,KAAK,IAAKA,KAAI,KAAK,EAAG,IAAI;AAAA,UACxC;AAAA,UACA,UAAU;AAAA,QACX;AAEA,eAAO,KAAK,MAAM,UAAU;AAG5B,eAAO,GAAG,OAAO,CAAC;AAKlB,YACC,OAAO,YACP,WAAW,0BACX,OAAO;AAER,iBAAS,WAAW;AACnB,cAAK,YAAa;AACjB,gBAAK7C,UAAS,WAAW,SAASN,QAAO,uBAAwB;AAChE,cAAAA,QAAO,sBAAuB,QAAS;AAAA,YACxC,OAAO;AACN,cAAAA,QAAO,WAAY,UAAU,OAAO,GAAG,QAAS;AAAA,YACjD;AAEA,mBAAO,GAAG,KAAK;AAAA,UAChB;AAAA,QACD;AAGA,iBAAS,cAAc;AACtB,UAAAA,QAAO,WAAY,WAAW;AAC7B,oBAAQ;AAAA,UACT,CAAE;AACF,iBAAS,QAAQ,KAAK,IAAI;AAAA,QAC3B;AAGA,iBAAS,MAAO,MAAM,cAAe;AACpC,cAAI,OACHO,KAAI,GACJ,QAAQ,EAAE,QAAQ,KAAK;AAIxB,yBAAe,eAAe,IAAI;AAClC,iBAAQA,KAAI,GAAGA,MAAK,IAAI,cAAe;AACtC,oBAAQ,UAAWA,EAAE;AACrB,kBAAO,WAAW,KAAM,IAAI,MAAO,YAAY,KAAM,IAAI;AAAA,UAC1D;AAEA,cAAK,cAAe;AACnB,kBAAM,UAAU,MAAM,QAAQ;AAAA,UAC/B;AAEA,iBAAO;AAAA,QACR;AAEA,iBAAS,YAAa,OAAO,MAAM,WAAY;AAC9C,cAAI,OACH,cAAe,UAAU,SAAU,IAAK,KAAK,CAAC,GAAI,OAAQ,UAAU,SAAU,GAAI,CAAE,GACpF,QAAQ,GACR,SAAS,WAAW;AACrB,iBAAQ,QAAQ,QAAQ,SAAU;AACjC,gBAAO,QAAQ,WAAY,KAAM,EAAE,KAAM,WAAW,MAAM,KAAM,GAAM;AAGrE,qBAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD;AAEA,iBAAS,iBAAkB,MAAM,OAAO,MAAO;AAC9C,cAAI,MAAM,OAAO,QAAQ,OAAO,SAAS,WAAW,gBAAgB,SACnE,QAAQ,WAAW,SAAS,YAAY,OACxC,OAAO,MACP,OAAO,CAAC,GACR,QAAQ,KAAK,OACb,SAAS,KAAK,YAAY,mBAAoB,IAAK,GACnD,WAAW,SAAS,IAAK,MAAM,QAAS;AAGzC,cAAK,CAAC,KAAK,OAAQ;AAClB,oBAAQ,OAAO,YAAa,MAAM,IAAK;AACvC,gBAAK,MAAM,YAAY,MAAO;AAC7B,oBAAM,WAAW;AACjB,wBAAU,MAAM,MAAM;AACtB,oBAAM,MAAM,OAAO,WAAW;AAC7B,oBAAK,CAAC,MAAM,UAAW;AACtB,0BAAQ;AAAA,gBACT;AAAA,cACD;AAAA,YACD;AACA,kBAAM;AAEN,iBAAK,OAAQ,WAAW;AAGvB,mBAAK,OAAQ,WAAW;AACvB,sBAAM;AACN,oBAAK,CAAC,OAAO,MAAO,MAAM,IAAK,EAAE,QAAS;AACzC,wBAAM,MAAM,KAAK;AAAA,gBAClB;AAAA,cACD,CAAE;AAAA,YACH,CAAE;AAAA,UACH;AAGA,eAAM,QAAQ,OAAQ;AACrB,oBAAQ,MAAO,IAAK;AACpB,gBAAK,SAAS,KAAM,KAAM,GAAI;AAC7B,qBAAO,MAAO,IAAK;AACnB,uBAAS,UAAU,UAAU;AAC7B,kBAAK,WAAY,SAAS,SAAS,SAAW;AAI7C,oBAAK,UAAU,UAAU,YAAY,SAAU,IAAK,MAAM,QAAY;AACrE,2BAAS;AAAA,gBAGV,OAAO;AACN;AAAA,gBACD;AAAA,cACD;AACA,mBAAM,IAAK,IAAI,YAAY,SAAU,IAAK,KAAK,OAAO,MAAO,MAAM,IAAK;AAAA,YACzE;AAAA,UACD;AAGA,sBAAY,CAAC,OAAO,cAAe,KAAM;AACzC,cAAK,CAAC,aAAa,OAAO,cAAe,IAAK,GAAI;AACjD;AAAA,UACD;AAGA,cAAK,SAAS,KAAK,aAAa,GAAI;AAMnC,iBAAK,WAAW,CAAE,MAAM,UAAU,MAAM,WAAW,MAAM,SAAU;AAGnE,6BAAiB,YAAY,SAAS;AACtC,gBAAK,kBAAkB,MAAO;AAC7B,+BAAiB,SAAS,IAAK,MAAM,SAAU;AAAA,YAChD;AACA,sBAAU,OAAO,IAAK,MAAM,SAAU;AACtC,gBAAK,YAAY,QAAS;AACzB,kBAAK,gBAAiB;AACrB,0BAAU;AAAA,cACX,OAAO;AAGN,yBAAU,CAAE,IAAK,GAAG,IAAK;AACzB,iCAAiB,KAAK,MAAM,WAAW;AACvC,0BAAU,OAAO,IAAK,MAAM,SAAU;AACtC,yBAAU,CAAE,IAAK,CAAE;AAAA,cACpB;AAAA,YACD;AAGA,gBAAK,YAAY,YAAY,YAAY,kBAAkB,kBAAkB,MAAO;AACnF,kBAAK,OAAO,IAAK,MAAM,OAAQ,MAAM,QAAS;AAG7C,oBAAK,CAAC,WAAY;AACjB,uBAAK,KAAM,WAAW;AACrB,0BAAM,UAAU;AAAA,kBACjB,CAAE;AACF,sBAAK,kBAAkB,MAAO;AAC7B,8BAAU,MAAM;AAChB,qCAAiB,YAAY,SAAS,KAAK;AAAA,kBAC5C;AAAA,gBACD;AACA,sBAAM,UAAU;AAAA,cACjB;AAAA,YACD;AAAA,UACD;AAEA,cAAK,KAAK,UAAW;AACpB,kBAAM,WAAW;AACjB,iBAAK,OAAQ,WAAW;AACvB,oBAAM,WAAW,KAAK,SAAU,CAAE;AAClC,oBAAM,YAAY,KAAK,SAAU,CAAE;AACnC,oBAAM,YAAY,KAAK,SAAU,CAAE;AAAA,YACpC,CAAE;AAAA,UACH;AAGA,sBAAY;AACZ,eAAM,QAAQ,MAAO;AAGpB,gBAAK,CAAC,WAAY;AACjB,kBAAK,UAAW;AACf,oBAAK,YAAY,UAAW;AAC3B,2BAAS,SAAS;AAAA,gBACnB;AAAA,cACD,OAAO;AACN,2BAAW,SAAS,OAAQ,MAAM,UAAU,EAAE,SAAS,eAAe,CAAE;AAAA,cACzE;AAGA,kBAAK,QAAS;AACb,yBAAS,SAAS,CAAC;AAAA,cACpB;AAGA,kBAAK,QAAS;AACb,yBAAU,CAAE,IAAK,GAAG,IAAK;AAAA,cAC1B;AAIA,mBAAK,KAAM,WAAW;AAKrB,oBAAK,CAAC,QAAS;AACd,2BAAU,CAAE,IAAK,CAAE;AAAA,gBACpB;AACA,yBAAS,OAAQ,MAAM,QAAS;AAChC,qBAAM,QAAQ,MAAO;AACpB,yBAAO,MAAO,MAAM,MAAM,KAAM,IAAK,CAAE;AAAA,gBACxC;AAAA,cACD,CAAE;AAAA,YACH;AAGA,wBAAY,YAAa,SAAS,SAAU,IAAK,IAAI,GAAG,MAAM,IAAK;AACnE,gBAAK,EAAG,QAAQ,WAAa;AAC5B,uBAAU,IAAK,IAAI,UAAU;AAC7B,kBAAK,QAAS;AACb,0BAAU,MAAM,UAAU;AAC1B,0BAAU,QAAQ;AAAA,cACnB;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAEA,iBAAS,WAAY,OAAO,eAAgB;AAC3C,cAAI,OAAO,MAAM,QAAQ,OAAO;AAGhC,eAAM,SAAS,OAAQ;AACtB,mBAAO,UAAW,KAAM;AACxB,qBAAS,cAAe,IAAK;AAC7B,oBAAQ,MAAO,KAAM;AACrB,gBAAK,MAAM,QAAS,KAAM,GAAI;AAC7B,uBAAS,MAAO,CAAE;AAClB,sBAAQ,MAAO,KAAM,IAAI,MAAO,CAAE;AAAA,YACnC;AAEA,gBAAK,UAAU,MAAO;AACrB,oBAAO,IAAK,IAAI;AAChB,qBAAO,MAAO,KAAM;AAAA,YACrB;AAEA,oBAAQ,OAAO,SAAU,IAAK;AAC9B,gBAAK,SAAS,YAAY,OAAQ;AACjC,sBAAQ,MAAM,OAAQ,KAAM;AAC5B,qBAAO,MAAO,IAAK;AAInB,mBAAM,SAAS,OAAQ;AACtB,oBAAK,EAAG,SAAS,QAAU;AAC1B,wBAAO,KAAM,IAAI,MAAO,KAAM;AAC9B,gCAAe,KAAM,IAAI;AAAA,gBAC1B;AAAA,cACD;AAAA,YACD,OAAO;AACN,4BAAe,IAAK,IAAI;AAAA,YACzB;AAAA,UACD;AAAA,QACD;AAEA,iBAAS,UAAW,MAAM,YAAY,SAAU;AAC/C,cAAI,QACH,SACA,QAAQ,GACR,SAAS,UAAU,WAAW,QAC9B,WAAW,OAAO,SAAS,EAAE,OAAQ,WAAW;AAG/C,mBAAO,KAAK;AAAA,UACb,CAAE,GACF,OAAO,WAAW;AACjB,gBAAK,SAAU;AACd,qBAAO;AAAA,YACR;AACA,gBAAI,cAAc,SAAS,YAAY,GACtC,YAAY,KAAK,IAAK,GAAG,UAAU,YAAY,UAAU,WAAW,WAAY,GAIhF,OAAO,YAAY,UAAU,YAAY,GACzC,UAAU,IAAI,MACd6C,SAAQ,GACRC,UAAS,UAAU,OAAO;AAE3B,mBAAQD,SAAQC,SAAQD,UAAU;AACjC,wBAAU,OAAQA,MAAM,EAAE,IAAK,OAAQ;AAAA,YACxC;AAEA,qBAAS,WAAY,MAAM,CAAE,WAAW,SAAS,SAAU,CAAE;AAG7D,gBAAK,UAAU,KAAKC,SAAS;AAC5B,qBAAO;AAAA,YACR;AAGA,gBAAK,CAACA,SAAS;AACd,uBAAS,WAAY,MAAM,CAAE,WAAW,GAAG,CAAE,CAAE;AAAA,YAChD;AAGA,qBAAS,YAAa,MAAM,CAAE,SAAU,CAAE;AAC1C,mBAAO;AAAA,UACR,GACA,YAAY,SAAS,QAAS;AAAA,YAC7B;AAAA,YACA,OAAO,OAAO,OAAQ,CAAC,GAAG,UAAW;AAAA,YACrC,MAAM,OAAO,OAAQ,MAAM;AAAA,cAC1B,eAAe,CAAC;AAAA,cAChB,QAAQ,OAAO,OAAO;AAAA,YACvB,GAAG,OAAQ;AAAA,YACX,oBAAoB;AAAA,YACpB,iBAAiB;AAAA,YACjB,WAAW,SAAS,YAAY;AAAA,YAChC,UAAU,QAAQ;AAAA,YAClB,QAAQ,CAAC;AAAA,YACT,aAAa,SAAU,MAAMH,MAAM;AAClC,kBAAI,QAAQ,OAAO;AAAA,gBAAO;AAAA,gBAAM,UAAU;AAAA,gBAAM;AAAA,gBAAMA;AAAA,gBACrD,UAAU,KAAK,cAAe,IAAK,KAAK,UAAU,KAAK;AAAA,cAAO;AAC/D,wBAAU,OAAO,KAAM,KAAM;AAC7B,qBAAO;AAAA,YACR;AAAA,YACA,MAAM,SAAU,SAAU;AACzB,kBAAIE,SAAQ,GAIXC,UAAS,UAAU,UAAU,OAAO,SAAS;AAC9C,kBAAK,SAAU;AACd,uBAAO;AAAA,cACR;AACA,wBAAU;AACV,qBAAQD,SAAQC,SAAQD,UAAU;AACjC,0BAAU,OAAQA,MAAM,EAAE,IAAK,CAAE;AAAA,cAClC;AAGA,kBAAK,SAAU;AACd,yBAAS,WAAY,MAAM,CAAE,WAAW,GAAG,CAAE,CAAE;AAC/C,yBAAS,YAAa,MAAM,CAAE,WAAW,OAAQ,CAAE;AAAA,cACpD,OAAO;AACN,yBAAS,WAAY,MAAM,CAAE,WAAW,OAAQ,CAAE;AAAA,cACnD;AACA,qBAAO;AAAA,YACR;AAAA,UACD,CAAE,GACF,QAAQ,UAAU;AAEnB,qBAAY,OAAO,UAAU,KAAK,aAAc;AAEhD,iBAAQ,QAAQ,QAAQ,SAAU;AACjC,qBAAS,UAAU,WAAY,KAAM,EAAE,KAAM,WAAW,MAAM,OAAO,UAAU,IAAK;AACpF,gBAAK,QAAS;AACb,kBAAK,WAAY,OAAO,IAAK,GAAI;AAChC,uBAAO,YAAa,UAAU,MAAM,UAAU,KAAK,KAAM,EAAE,OAC1D,OAAO,KAAK,KAAM,MAAO;AAAA,cAC3B;AACA,qBAAO;AAAA,YACR;AAAA,UACD;AAEA,iBAAO,IAAK,OAAO,aAAa,SAAU;AAE1C,cAAK,WAAY,UAAU,KAAK,KAAM,GAAI;AACzC,sBAAU,KAAK,MAAM,KAAM,MAAM,SAAU;AAAA,UAC5C;AAGA,oBACE,SAAU,UAAU,KAAK,QAAS,EAClC,KAAM,UAAU,KAAK,MAAM,UAAU,KAAK,QAAS,EACnD,KAAM,UAAU,KAAK,IAAK,EAC1B,OAAQ,UAAU,KAAK,MAAO;AAEhC,iBAAO,GAAG;AAAA,YACT,OAAO,OAAQ,MAAM;AAAA,cACpB;AAAA,cACA,MAAM;AAAA,cACN,OAAO,UAAU,KAAK;AAAA,YACvB,CAAE;AAAA,UACH;AAEA,iBAAO;AAAA,QACR;AAEA,eAAO,YAAY,OAAO,OAAQ,WAAW;AAAA,UAE5C,UAAU;AAAA,YACT,KAAK,CAAE,SAAU,MAAM,OAAQ;AAC9B,kBAAI,QAAQ,KAAK,YAAa,MAAM,KAAM;AAC1C,wBAAW,MAAM,MAAM,MAAM,QAAQ,KAAM,KAAM,GAAG,KAAM;AAC1D,qBAAO;AAAA,YACR,CAAE;AAAA,UACH;AAAA,UAEA,SAAS,SAAU,OAAO,UAAW;AACpC,gBAAK,WAAY,KAAM,GAAI;AAC1B,yBAAW;AACX,sBAAQ,CAAE,GAAI;AAAA,YACf,OAAO;AACN,sBAAQ,MAAM,MAAO,aAAc;AAAA,YACpC;AAEA,gBAAI,MACH,QAAQ,GACR,SAAS,MAAM;AAEhB,mBAAQ,QAAQ,QAAQ,SAAU;AACjC,qBAAO,MAAO,KAAM;AACpB,wBAAU,SAAU,IAAK,IAAI,UAAU,SAAU,IAAK,KAAK,CAAC;AAC5D,wBAAU,SAAU,IAAK,EAAE,QAAS,QAAS;AAAA,YAC9C;AAAA,UACD;AAAA,UAEA,YAAY,CAAE,gBAAiB;AAAA,UAE/B,WAAW,SAAU,UAAU,SAAU;AACxC,gBAAK,SAAU;AACd,wBAAU,WAAW,QAAS,QAAS;AAAA,YACxC,OAAO;AACN,wBAAU,WAAW,KAAM,QAAS;AAAA,YACrC;AAAA,UACD;AAAA,QACD,CAAE;AAEF,eAAO,QAAQ,SAAU,OAAO,QAAQ3B,KAAK;AAC5C,cAAI,MAAM,SAAS,OAAO,UAAU,WAAW,OAAO,OAAQ,CAAC,GAAG,KAAM,IAAI;AAAA,YAC3E,UAAUA,OAAM,CAACA,OAAM,UACtB,WAAY,KAAM,KAAK;AAAA,YACxB,UAAU;AAAA,YACV,QAAQA,OAAM,UAAU,UAAU,CAAC,WAAY,MAAO,KAAK;AAAA,UAC5D;AAGA,cAAK,OAAO,GAAG,KAAM;AACpB,gBAAI,WAAW;AAAA,UAEhB,OAAO;AACN,gBAAK,OAAO,IAAI,aAAa,UAAW;AACvC,kBAAK,IAAI,YAAY,OAAO,GAAG,QAAS;AACvC,oBAAI,WAAW,OAAO,GAAG,OAAQ,IAAI,QAAS;AAAA,cAE/C,OAAO;AACN,oBAAI,WAAW,OAAO,GAAG,OAAO;AAAA,cACjC;AAAA,YACD;AAAA,UACD;AAGA,cAAK,IAAI,SAAS,QAAQ,IAAI,UAAU,MAAO;AAC9C,gBAAI,QAAQ;AAAA,UACb;AAGA,cAAI,MAAM,IAAI;AAEd,cAAI,WAAW,WAAW;AACzB,gBAAK,WAAY,IAAI,GAAI,GAAI;AAC5B,kBAAI,IAAI,KAAM,IAAK;AAAA,YACpB;AAEA,gBAAK,IAAI,OAAQ;AAChB,qBAAO,QAAS,MAAM,IAAI,KAAM;AAAA,YACjC;AAAA,UACD;AAEA,iBAAO;AAAA,QACR;AAEA,eAAO,GAAG,OAAQ;AAAA,UACjB,QAAQ,SAAU,OAAO,IAAI,QAAQ,UAAW;AAG/C,mBAAO,KAAK,OAAQ,kBAAmB,EAAE,IAAK,WAAW,CAAE,EAAE,KAAK,EAGhE,IAAI,EAAE,QAAS,EAAE,SAAS,GAAG,GAAG,OAAO,QAAQ,QAAS;AAAA,UAC3D;AAAA,UACA,SAAS,SAAU,MAAM,OAAO,QAAQ,UAAW;AAClD,gBAAI,QAAQ,OAAO,cAAe,IAAK,GACtC,SAAS,OAAO,MAAO,OAAO,QAAQ,QAAS,GAC/C,cAAc,WAAW;AAGxB,kBAAI,OAAO,UAAW,MAAM,OAAO,OAAQ,CAAC,GAAG,IAAK,GAAG,MAAO;AAG9D,kBAAK,SAAS,SAAS,IAAK,MAAM,QAAS,GAAI;AAC9C,qBAAK,KAAM,IAAK;AAAA,cACjB;AAAA,YACD;AAED,wBAAY,SAAS;AAErB,mBAAO,SAAS,OAAO,UAAU,QAChC,KAAK,KAAM,WAAY,IACvB,KAAK,MAAO,OAAO,OAAO,WAAY;AAAA,UACxC;AAAA,UACA,MAAM,SAAU,MAAM,YAAY,SAAU;AAC3C,gBAAI,YAAY,SAAU,OAAQ;AACjC,kBAAI,OAAO,MAAM;AACjB,qBAAO,MAAM;AACb,mBAAM,OAAQ;AAAA,YACf;AAEA,gBAAK,OAAO,SAAS,UAAW;AAC/B,wBAAU;AACV,2BAAa;AACb,qBAAO;AAAA,YACR;AACA,gBAAK,YAAa;AACjB,mBAAK,MAAO,QAAQ,MAAM,CAAC,CAAE;AAAA,YAC9B;AAEA,mBAAO,KAAK,KAAM,WAAW;AAC5B,kBAAI,UAAU,MACb,QAAQ,QAAQ,QAAQ,OAAO,cAC/B,SAAS,OAAO,QAChB,OAAO,SAAS,IAAK,IAAK;AAE3B,kBAAK,OAAQ;AACZ,oBAAK,KAAM,KAAM,KAAK,KAAM,KAAM,EAAE,MAAO;AAC1C,4BAAW,KAAM,KAAM,CAAE;AAAA,gBAC1B;AAAA,cACD,OAAO;AACN,qBAAM,SAAS,MAAO;AACrB,sBAAK,KAAM,KAAM,KAAK,KAAM,KAAM,EAAE,QAAQ,KAAK,KAAM,KAAM,GAAI;AAChE,8BAAW,KAAM,KAAM,CAAE;AAAA,kBAC1B;AAAA,gBACD;AAAA,cACD;AAEA,mBAAM,QAAQ,OAAO,QAAQ,WAAW;AACvC,oBAAK,OAAQ,KAAM,EAAE,SAAS,SAC3B,QAAQ,QAAQ,OAAQ,KAAM,EAAE,UAAU,OAAS;AAErD,yBAAQ,KAAM,EAAE,KAAK,KAAM,OAAQ;AACnC,4BAAU;AACV,yBAAO,OAAQ,OAAO,CAAE;AAAA,gBACzB;AAAA,cACD;AAKA,kBAAK,WAAW,CAAC,SAAU;AAC1B,uBAAO,QAAS,MAAM,IAAK;AAAA,cAC5B;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UACA,QAAQ,SAAU,MAAO;AACxB,gBAAK,SAAS,OAAQ;AACrB,qBAAO,QAAQ;AAAA,YAChB;AACA,mBAAO,KAAK,KAAM,WAAW;AAC5B,kBAAI,OACH,OAAO,SAAS,IAAK,IAAK,GAC1B,QAAQ,KAAM,OAAO,OAAQ,GAC7B,QAAQ,KAAM,OAAO,YAAa,GAClC,SAAS,OAAO,QAChB,SAAS,QAAQ,MAAM,SAAS;AAGjC,mBAAK,SAAS;AAGd,qBAAO,MAAO,MAAM,MAAM,CAAC,CAAE;AAE7B,kBAAK,SAAS,MAAM,MAAO;AAC1B,sBAAM,KAAK,KAAM,MAAM,IAAK;AAAA,cAC7B;AAGA,mBAAM,QAAQ,OAAO,QAAQ,WAAW;AACvC,oBAAK,OAAQ,KAAM,EAAE,SAAS,QAAQ,OAAQ,KAAM,EAAE,UAAU,MAAO;AACtE,yBAAQ,KAAM,EAAE,KAAK,KAAM,IAAK;AAChC,yBAAO,OAAQ,OAAO,CAAE;AAAA,gBACzB;AAAA,cACD;AAGA,mBAAM,QAAQ,GAAG,QAAQ,QAAQ,SAAU;AAC1C,oBAAK,MAAO,KAAM,KAAK,MAAO,KAAM,EAAE,QAAS;AAC9C,wBAAO,KAAM,EAAE,OAAO,KAAM,IAAK;AAAA,gBAClC;AAAA,cACD;AAGA,qBAAO,KAAK;AAAA,YACb,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,eAAO,KAAM,CAAE,UAAU,QAAQ,MAAO,GAAG,SAAU,IAAI,MAAO;AAC/D,cAAI,QAAQ,OAAO,GAAI,IAAK;AAC5B,iBAAO,GAAI,IAAK,IAAI,SAAU,OAAO,QAAQ,UAAW;AACvD,mBAAO,SAAS,QAAQ,OAAO,UAAU,YACxC,MAAM,MAAO,MAAM,SAAU,IAC7B,KAAK,QAAS,MAAO,MAAM,IAAK,GAAG,OAAO,QAAQ,QAAS;AAAA,UAC7D;AAAA,QACD,CAAE;AAGF,eAAO,KAAM;AAAA,UACZ,WAAW,MAAO,MAAO;AAAA,UACzB,SAAS,MAAO,MAAO;AAAA,UACvB,aAAa,MAAO,QAAS;AAAA,UAC7B,QAAQ,EAAE,SAAS,OAAO;AAAA,UAC1B,SAAS,EAAE,SAAS,OAAO;AAAA,UAC3B,YAAY,EAAE,SAAS,SAAS;AAAA,QACjC,GAAG,SAAU,MAAM,OAAQ;AAC1B,iBAAO,GAAI,IAAK,IAAI,SAAU,OAAO,QAAQ,UAAW;AACvD,mBAAO,KAAK,QAAS,OAAO,OAAO,QAAQ,QAAS;AAAA,UACrD;AAAA,QACD,CAAE;AAEF,eAAO,SAAS,CAAC;AACjB,eAAO,GAAG,OAAO,WAAW;AAC3B,cAAI,OACHlB,KAAI,GACJ,SAAS,OAAO;AAEjB,kBAAQ,KAAK,IAAI;AAEjB,iBAAQA,KAAI,OAAO,QAAQA,MAAM;AAChC,oBAAQ,OAAQA,EAAE;AAGlB,gBAAK,CAAC,MAAM,KAAK,OAAQA,EAAE,MAAM,OAAQ;AACxC,qBAAO,OAAQA,MAAK,CAAE;AAAA,YACvB;AAAA,UACD;AAEA,cAAK,CAAC,OAAO,QAAS;AACrB,mBAAO,GAAG,KAAK;AAAA,UAChB;AACA,kBAAQ;AAAA,QACT;AAEA,eAAO,GAAG,QAAQ,SAAU,OAAQ;AACnC,iBAAO,OAAO,KAAM,KAAM;AAC1B,iBAAO,GAAG,MAAM;AAAA,QACjB;AAEA,eAAO,GAAG,WAAW;AACrB,eAAO,GAAG,QAAQ,WAAW;AAC5B,cAAK,YAAa;AACjB;AAAA,UACD;AAEA,uBAAa;AACb,mBAAS;AAAA,QACV;AAEA,eAAO,GAAG,OAAO,WAAW;AAC3B,uBAAa;AAAA,QACd;AAEA,eAAO,GAAG,SAAS;AAAA,UAClB,MAAM;AAAA,UACN,MAAM;AAAA;AAAA,UAGN,UAAU;AAAA,QACX;AAKA,eAAO,GAAG,QAAQ,SAAU,MAAM,MAAO;AACxC,iBAAO,OAAO,KAAK,OAAO,GAAG,OAAQ,IAAK,KAAK,OAAO;AACtD,iBAAO,QAAQ;AAEf,iBAAO,KAAK,MAAO,MAAM,SAAU,MAAM,OAAQ;AAChD,gBAAI,UAAUP,QAAO,WAAY,MAAM,IAAK;AAC5C,kBAAM,OAAO,WAAW;AACvB,cAAAA,QAAO,aAAc,OAAQ;AAAA,YAC9B;AAAA,UACD,CAAE;AAAA,QACH;AAGA,SAAE,WAAW;AACZ,cAAI,QAAQM,UAAS,cAAe,OAAQ,GAC3C,SAASA,UAAS,cAAe,QAAS,GAC1C,MAAM,OAAO,YAAaA,UAAS,cAAe,QAAS,CAAE;AAE9D,gBAAM,OAAO;AAIb,kBAAQ,UAAU,MAAM,UAAU;AAIlC,kBAAQ,cAAc,IAAI;AAI1B,kBAAQA,UAAS,cAAe,OAAQ;AACxC,gBAAM,QAAQ;AACd,gBAAM,OAAO;AACb,kBAAQ,aAAa,MAAM,UAAU;AAAA,QACtC,GAAI;AAGJ,YAAI,UACH,aAAa,OAAO,KAAK;AAE1B,eAAO,GAAG,OAAQ;AAAA,UACjB,MAAM,SAAU,MAAM,OAAQ;AAC7B,mBAAO,OAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,UAAU,SAAS,CAAE;AAAA,UACrE;AAAA,UAEA,YAAY,SAAU,MAAO;AAC5B,mBAAO,KAAK,KAAM,WAAW;AAC5B,qBAAO,WAAY,MAAM,IAAK;AAAA,YAC/B,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,eAAO,OAAQ;AAAA,UACd,MAAM,SAAU,MAAM,MAAM,OAAQ;AACnC,gBAAI,KAAK,OACR,QAAQ,KAAK;AAGd,gBAAK,UAAU,KAAK,UAAU,KAAK,UAAU,GAAI;AAChD;AAAA,YACD;AAGA,gBAAK,OAAO,KAAK,iBAAiB,aAAc;AAC/C,qBAAO,OAAO,KAAM,MAAM,MAAM,KAAM;AAAA,YACvC;AAIA,gBAAK,UAAU,KAAK,CAAC,OAAO,SAAU,IAAK,GAAI;AAC9C,sBAAQ,OAAO,UAAW,KAAK,YAAY,CAAE,MAC1C,OAAO,KAAK,MAAM,KAAK,KAAM,IAAK,IAAI,WAAW;AAAA,YACrD;AAEA,gBAAK,UAAU,QAAY;AAC1B,kBAAK,UAAU,MAAO;AACrB,uBAAO,WAAY,MAAM,IAAK;AAC9B;AAAA,cACD;AAEA,kBAAK,SAAS,SAAS,UACpB,MAAM,MAAM,IAAK,MAAM,OAAO,IAAK,OAAQ,QAAY;AACzD,uBAAO;AAAA,cACR;AAEA,mBAAK,aAAc,MAAM,QAAQ,EAAG;AACpC,qBAAO;AAAA,YACR;AAEA,gBAAK,SAAS,SAAS,UAAW,MAAM,MAAM,IAAK,MAAM,IAAK,OAAQ,MAAO;AAC5E,qBAAO;AAAA,YACR;AAEA,kBAAM,OAAO,KAAK,KAAM,MAAM,IAAK;AAGnC,mBAAO,OAAO,OAAO,SAAY;AAAA,UAClC;AAAA,UAEA,WAAW;AAAA,YACV,MAAM;AAAA,cACL,KAAK,SAAU,MAAM,OAAQ;AAC5B,oBAAK,CAAC,QAAQ,cAAc,UAAU,WACrC,SAAU,MAAM,OAAQ,GAAI;AAC5B,sBAAI,MAAM,KAAK;AACf,uBAAK,aAAc,QAAQ,KAAM;AACjC,sBAAK,KAAM;AACV,yBAAK,QAAQ;AAAA,kBACd;AACA,yBAAO;AAAA,gBACR;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,UAEA,YAAY,SAAU,MAAM,OAAQ;AACnC,gBAAI,MACHC,KAAI,GAIJ,YAAY,SAAS,MAAM,MAAO,aAAc;AAEjD,gBAAK,aAAa,KAAK,aAAa,GAAI;AACvC,qBAAU,OAAO,UAAWA,IAAI,GAAM;AACrC,qBAAK,gBAAiB,IAAK;AAAA,cAC5B;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAE;AAGF,mBAAW;AAAA,UACV,KAAK,SAAU,MAAM,OAAO,MAAO;AAClC,gBAAK,UAAU,OAAQ;AAGtB,qBAAO,WAAY,MAAM,IAAK;AAAA,YAC/B,OAAO;AACN,mBAAK,aAAc,MAAM,IAAK;AAAA,YAC/B;AACA,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,eAAO,KAAM,OAAO,KAAK,MAAM,KAAK,OAAO,MAAO,MAAO,GAAG,SAAU,IAAI,MAAO;AAChF,cAAI,SAAS,WAAY,IAAK,KAAK,OAAO,KAAK;AAE/C,qBAAY,IAAK,IAAI,SAAU,MAAM0C,OAAM,OAAQ;AAClD,gBAAI,KAAK,QACR,gBAAgBA,MAAK,YAAY;AAElC,gBAAK,CAAC,OAAQ;AAGb,uBAAS,WAAY,aAAc;AACnC,yBAAY,aAAc,IAAI;AAC9B,oBAAM,OAAQ,MAAMA,OAAM,KAAM,KAAK,OACpC,gBACA;AACD,yBAAY,aAAc,IAAI;AAAA,YAC/B;AACA,mBAAO;AAAA,UACR;AAAA,QACD,CAAE;AAKF,YAAI,aAAa,uCAChB,aAAa;AAEd,eAAO,GAAG,OAAQ;AAAA,UACjB,MAAM,SAAU,MAAM,OAAQ;AAC7B,mBAAO,OAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,UAAU,SAAS,CAAE;AAAA,UACrE;AAAA,UAEA,YAAY,SAAU,MAAO;AAC5B,mBAAO,KAAK,KAAM,WAAW;AAC5B,qBAAO,KAAM,OAAO,QAAS,IAAK,KAAK,IAAK;AAAA,YAC7C,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,eAAO,OAAQ;AAAA,UACd,MAAM,SAAU,MAAM,MAAM,OAAQ;AACnC,gBAAI,KAAK,OACR,QAAQ,KAAK;AAGd,gBAAK,UAAU,KAAK,UAAU,KAAK,UAAU,GAAI;AAChD;AAAA,YACD;AAEA,gBAAK,UAAU,KAAK,CAAC,OAAO,SAAU,IAAK,GAAI;AAG9C,qBAAO,OAAO,QAAS,IAAK,KAAK;AACjC,sBAAQ,OAAO,UAAW,IAAK;AAAA,YAChC;AAEA,gBAAK,UAAU,QAAY;AAC1B,kBAAK,SAAS,SAAS,UACpB,MAAM,MAAM,IAAK,MAAM,OAAO,IAAK,OAAQ,QAAY;AACzD,uBAAO;AAAA,cACR;AAEA,qBAAS,KAAM,IAAK,IAAI;AAAA,YACzB;AAEA,gBAAK,SAAS,SAAS,UAAW,MAAM,MAAM,IAAK,MAAM,IAAK,OAAQ,MAAO;AAC5E,qBAAO;AAAA,YACR;AAEA,mBAAO,KAAM,IAAK;AAAA,UACnB;AAAA,UAEA,WAAW;AAAA,YACV,UAAU;AAAA,cACT,KAAK,SAAU,MAAO;AAOrB,oBAAI,WAAW,OAAO,KAAK,KAAM,MAAM,UAAW;AAElD,oBAAK,UAAW;AACf,yBAAO,SAAU,UAAU,EAAG;AAAA,gBAC/B;AAEA,oBACC,WAAW,KAAM,KAAK,QAAS,KAC/B,WAAW,KAAM,KAAK,QAAS,KAC/B,KAAK,MACJ;AACD,yBAAO;AAAA,gBACR;AAEA,uBAAO;AAAA,cACR;AAAA,YACD;AAAA,UACD;AAAA,UAEA,SAAS;AAAA,YACR,OAAO;AAAA,YACP,SAAS;AAAA,UACV;AAAA,QACD,CAAE;AAUF,YAAK,CAAC,QAAQ,aAAc;AAC3B,iBAAO,UAAU,WAAW;AAAA,YAC3B,KAAK,SAAU,MAAO;AAIrB,kBAAI,SAAS,KAAK;AAClB,kBAAK,UAAU,OAAO,YAAa;AAClC,uBAAO,WAAW;AAAA,cACnB;AACA,qBAAO;AAAA,YACR;AAAA,YACA,KAAK,SAAU,MAAO;AAIrB,kBAAI,SAAS,KAAK;AAClB,kBAAK,QAAS;AACb,uBAAO;AAEP,oBAAK,OAAO,YAAa;AACxB,yBAAO,WAAW;AAAA,gBACnB;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAEA,eAAO,KAAM;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD,GAAG,WAAW;AACb,iBAAO,QAAS,KAAK,YAAY,CAAE,IAAI;AAAA,QACxC,CAAE;AAOD,iBAAS,iBAAkB,OAAQ;AAClC,cAAI,SAAS,MAAM,MAAO,aAAc,KAAK,CAAC;AAC9C,iBAAO,OAAO,KAAM,GAAI;AAAA,QACzB;AAGD,iBAAS,SAAU,MAAO;AACzB,iBAAO,KAAK,gBAAgB,KAAK,aAAc,OAAQ,KAAK;AAAA,QAC7D;AAEA,iBAAS,eAAgB,OAAQ;AAChC,cAAK,MAAM,QAAS,KAAM,GAAI;AAC7B,mBAAO;AAAA,UACR;AACA,cAAK,OAAO,UAAU,UAAW;AAChC,mBAAO,MAAM,MAAO,aAAc,KAAK,CAAC;AAAA,UACzC;AACA,iBAAO,CAAC;AAAA,QACT;AAEA,eAAO,GAAG,OAAQ;AAAA,UACjB,UAAU,SAAU,OAAQ;AAC3B,gBAAI,SAAS,MAAM,KAAK,UAAU,OAAOzC,IAAG,YAC3CD,KAAI;AAEL,gBAAK,WAAY,KAAM,GAAI;AAC1B,qBAAO,KAAK,KAAM,SAAUC,IAAI;AAC/B,uBAAQ,IAAK,EAAE,SAAU,MAAM,KAAM,MAAMA,IAAG,SAAU,IAAK,CAAE,CAAE;AAAA,cAClE,CAAE;AAAA,YACH;AAEA,sBAAU,eAAgB,KAAM;AAEhC,gBAAK,QAAQ,QAAS;AACrB,qBAAU,OAAO,KAAMD,IAAI,GAAM;AAChC,2BAAW,SAAU,IAAK;AAC1B,sBAAM,KAAK,aAAa,KAAO,MAAM,iBAAkB,QAAS,IAAI;AAEpE,oBAAK,KAAM;AACV,kBAAAC,KAAI;AACJ,yBAAU,QAAQ,QAASA,IAAI,GAAM;AACpC,wBAAK,IAAI,QAAS,MAAM,QAAQ,GAAI,IAAI,GAAI;AAC3C,6BAAO,QAAQ;AAAA,oBAChB;AAAA,kBACD;AAGA,+BAAa,iBAAkB,GAAI;AACnC,sBAAK,aAAa,YAAa;AAC9B,yBAAK,aAAc,SAAS,UAAW;AAAA,kBACxC;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,aAAa,SAAU,OAAQ;AAC9B,gBAAI,SAAS,MAAM,KAAK,UAAU,OAAOA,IAAG,YAC3CD,KAAI;AAEL,gBAAK,WAAY,KAAM,GAAI;AAC1B,qBAAO,KAAK,KAAM,SAAUC,IAAI;AAC/B,uBAAQ,IAAK,EAAE,YAAa,MAAM,KAAM,MAAMA,IAAG,SAAU,IAAK,CAAE,CAAE;AAAA,cACrE,CAAE;AAAA,YACH;AAEA,gBAAK,CAAC,UAAU,QAAS;AACxB,qBAAO,KAAK,KAAM,SAAS,EAAG;AAAA,YAC/B;AAEA,sBAAU,eAAgB,KAAM;AAEhC,gBAAK,QAAQ,QAAS;AACrB,qBAAU,OAAO,KAAMD,IAAI,GAAM;AAChC,2BAAW,SAAU,IAAK;AAG1B,sBAAM,KAAK,aAAa,KAAO,MAAM,iBAAkB,QAAS,IAAI;AAEpE,oBAAK,KAAM;AACV,kBAAAC,KAAI;AACJ,yBAAU,QAAQ,QAASA,IAAI,GAAM;AAGpC,2BAAQ,IAAI,QAAS,MAAM,QAAQ,GAAI,IAAI,IAAK;AAC/C,4BAAM,IAAI,QAAS,MAAM,QAAQ,KAAK,GAAI;AAAA,oBAC3C;AAAA,kBACD;AAGA,+BAAa,iBAAkB,GAAI;AACnC,sBAAK,aAAa,YAAa;AAC9B,yBAAK,aAAc,SAAS,UAAW;AAAA,kBACxC;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,aAAa,SAAU,OAAO,UAAW;AACxC,gBAAI,OAAO,OAAO,OACjB,eAAe,SAAS,YAAY,MAAM,QAAS,KAAM;AAE1D,gBAAK,OAAO,aAAa,aAAa,cAAe;AACpD,qBAAO,WAAW,KAAK,SAAU,KAAM,IAAI,KAAK,YAAa,KAAM;AAAA,YACpE;AAEA,gBAAK,WAAY,KAAM,GAAI;AAC1B,qBAAO,KAAK,KAAM,SAAUD,IAAI;AAC/B,uBAAQ,IAAK,EAAE;AAAA,kBACd,MAAM,KAAM,MAAMA,IAAG,SAAU,IAAK,GAAG,QAAS;AAAA,kBAChD;AAAA,gBACD;AAAA,cACD,CAAE;AAAA,YACH;AAEA,mBAAO,KAAK,KAAM,WAAW;AAC5B,kBAAI,WAAWA,IAAG8B,OAAMiB;AAExB,kBAAK,cAAe;AAGnB,gBAAA/C,KAAI;AACJ,gBAAA8B,QAAO,OAAQ,IAAK;AACpB,gBAAAiB,eAAa,eAAgB,KAAM;AAEnC,uBAAU,YAAYA,aAAY/C,IAAI,GAAM;AAG3C,sBAAK8B,MAAK,SAAU,SAAU,GAAI;AACjC,oBAAAA,MAAK,YAAa,SAAU;AAAA,kBAC7B,OAAO;AACN,oBAAAA,MAAK,SAAU,SAAU;AAAA,kBAC1B;AAAA,gBACD;AAAA,cAGD,WAAY,UAAU,UAAa,SAAS,WAAY;AACvD,4BAAY,SAAU,IAAK;AAC3B,oBAAK,WAAY;AAGhB,2BAAS,IAAK,MAAM,iBAAiB,SAAU;AAAA,gBAChD;AAMA,oBAAK,KAAK,cAAe;AACxB,uBAAK;AAAA,oBAAc;AAAA,oBAClB,aAAa,UAAU,QACtB,KACA,SAAS,IAAK,MAAM,eAAgB,KAAK;AAAA,kBAC3C;AAAA,gBACD;AAAA,cACD;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,UAAU,SAAU,UAAW;AAC9B,gBAAI,WAAW,MACd9B,KAAI;AAEL,wBAAY,MAAM,WAAW;AAC7B,mBAAU,OAAO,KAAMA,IAAI,GAAM;AAChC,kBAAK,KAAK,aAAa,MACpB,MAAM,iBAAkB,SAAU,IAAK,CAAE,IAAI,KAAM,QAAS,SAAU,IAAI,IAAK;AACjF,uBAAO;AAAA,cACR;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,QACD,CAAE;AAKF,YAAI,UAAU;AAEd,eAAO,GAAG,OAAQ;AAAA,UACjB,KAAK,SAAU,OAAQ;AACtB,gBAAI,OAAO,KAAK,iBACf,OAAO,KAAM,CAAE;AAEhB,gBAAK,CAAC,UAAU,QAAS;AACxB,kBAAK,MAAO;AACX,wBAAQ,OAAO,SAAU,KAAK,IAAK,KAClC,OAAO,SAAU,KAAK,SAAS,YAAY,CAAE;AAE9C,oBAAK,SACJ,SAAS,UACP,MAAM,MAAM,IAAK,MAAM,OAAQ,OAAQ,QACxC;AACD,yBAAO;AAAA,gBACR;AAEA,sBAAM,KAAK;AAGX,oBAAK,OAAO,QAAQ,UAAW;AAC9B,yBAAO,IAAI,QAAS,SAAS,EAAG;AAAA,gBACjC;AAGA,uBAAO,OAAO,OAAO,KAAK;AAAA,cAC3B;AAEA;AAAA,YACD;AAEA,8BAAkB,WAAY,KAAM;AAEpC,mBAAO,KAAK,KAAM,SAAUA,IAAI;AAC/B,kBAAI;AAEJ,kBAAK,KAAK,aAAa,GAAI;AAC1B;AAAA,cACD;AAEA,kBAAK,iBAAkB;AACtB,sBAAM,MAAM,KAAM,MAAMA,IAAG,OAAQ,IAAK,EAAE,IAAI,CAAE;AAAA,cACjD,OAAO;AACN,sBAAM;AAAA,cACP;AAGA,kBAAK,OAAO,MAAO;AAClB,sBAAM;AAAA,cAEP,WAAY,OAAO,QAAQ,UAAW;AACrC,uBAAO;AAAA,cAER,WAAY,MAAM,QAAS,GAAI,GAAI;AAClC,sBAAM,OAAO,IAAK,KAAK,SAAUmC,QAAQ;AACxC,yBAAOA,UAAS,OAAO,KAAKA,SAAQ;AAAA,gBACrC,CAAE;AAAA,cACH;AAEA,sBAAQ,OAAO,SAAU,KAAK,IAAK,KAAK,OAAO,SAAU,KAAK,SAAS,YAAY,CAAE;AAGrF,kBAAK,CAAC,SAAS,EAAG,SAAS,UAAW,MAAM,IAAK,MAAM,KAAK,OAAQ,MAAM,QAAY;AACrF,qBAAK,QAAQ;AAAA,cACd;AAAA,YACD,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,eAAO,OAAQ;AAAA,UACd,UAAU;AAAA,YACT,QAAQ;AAAA,cACP,KAAK,SAAU,MAAO;AAErB,oBAAI,MAAM,OAAO,KAAK,KAAM,MAAM,OAAQ;AAC1C,uBAAO,OAAO,OACb;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMA,iBAAkB,OAAO,KAAM,IAAK,CAAE;AAAA;AAAA,cACxC;AAAA,YACD;AAAA,YACA,QAAQ;AAAA,cACP,KAAK,SAAU,MAAO;AACrB,oBAAI,OAAO,QAAQnC,IAClB,UAAU,KAAK,SACf,QAAQ,KAAK,eACb,MAAM,KAAK,SAAS,cACpB,SAAS,MAAM,OAAO,CAAC,GACvBgD,OAAM,MAAM,QAAQ,IAAI,QAAQ;AAEjC,oBAAK,QAAQ,GAAI;AAChB,kBAAAhD,KAAIgD;AAAA,gBAEL,OAAO;AACN,kBAAAhD,KAAI,MAAM,QAAQ;AAAA,gBACnB;AAGA,uBAAQA,KAAIgD,MAAKhD,MAAM;AACtB,2BAAS,QAASA,EAAE;AAIpB,uBAAO,OAAO,YAAYA,OAAM;AAAA,kBAG9B,CAAC,OAAO,aACN,CAAC,OAAO,WAAW,YACpB,CAAC,SAAU,OAAO,YAAY,UAAW,IAAM;AAGjD,4BAAQ,OAAQ,MAAO,EAAE,IAAI;AAG7B,wBAAK,KAAM;AACV,6BAAO;AAAA,oBACR;AAGA,2BAAO,KAAM,KAAM;AAAA,kBACpB;AAAA,gBACD;AAEA,uBAAO;AAAA,cACR;AAAA,cAEA,KAAK,SAAU,MAAM,OAAQ;AAC5B,oBAAI,WAAW,QACd,UAAU,KAAK,SACf,SAAS,OAAO,UAAW,KAAM,GACjCA,KAAI,QAAQ;AAEb,uBAAQA,MAAM;AACb,2BAAS,QAASA,EAAE;AAIpB,sBAAK,OAAO,WACX,OAAO,QAAS,OAAO,SAAS,OAAO,IAAK,MAAO,GAAG,MAAO,IAAI,IAChE;AACD,gCAAY;AAAA,kBACb;AAAA,gBAGD;AAGA,oBAAK,CAAC,WAAY;AACjB,uBAAK,gBAAgB;AAAA,gBACtB;AACA,uBAAO;AAAA,cACR;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAE;AAGF,eAAO,KAAM,CAAE,SAAS,UAAW,GAAG,WAAW;AAChD,iBAAO,SAAU,IAAK,IAAI;AAAA,YACzB,KAAK,SAAU,MAAM,OAAQ;AAC5B,kBAAK,MAAM,QAAS,KAAM,GAAI;AAC7B,uBAAS,KAAK,UAAU,OAAO,QAAS,OAAQ,IAAK,EAAE,IAAI,GAAG,KAAM,IAAI;AAAA,cACzE;AAAA,YACD;AAAA,UACD;AACA,cAAK,CAAC,QAAQ,SAAU;AACvB,mBAAO,SAAU,IAAK,EAAE,MAAM,SAAU,MAAO;AAC9C,qBAAO,KAAK,aAAc,OAAQ,MAAM,OAAO,OAAO,KAAK;AAAA,YAC5D;AAAA,UACD;AAAA,QACD,CAAE;AAQF,gBAAQ,UAAU,eAAeP;AAGjC,YAAI,cAAc,mCACjB,0BAA0B,SAAUqB,IAAI;AACvC,UAAAA,GAAE,gBAAgB;AAAA,QACnB;AAED,eAAO,OAAQ,OAAO,OAAO;AAAA,UAE5B,SAAS,SAAU,OAAO,MAAM,MAAM,cAAe;AAEpD,gBAAId,IAAG,KAAK,KAAK,YAAY,QAAQ,QAAQ,SAAS,aACrD,YAAY,CAAE,QAAQD,SAAS,GAC/B,OAAO,OAAO,KAAM,OAAO,MAAO,IAAI,MAAM,OAAO,OACnD,aAAa,OAAO,KAAM,OAAO,WAAY,IAAI,MAAM,UAAU,MAAO,GAAI,IAAI,CAAC;AAElF,kBAAM,cAAc,MAAM,OAAO,QAAQA;AAGzC,gBAAK,KAAK,aAAa,KAAK,KAAK,aAAa,GAAI;AACjD;AAAA,YACD;AAGA,gBAAK,YAAY,KAAM,OAAO,OAAO,MAAM,SAAU,GAAI;AACxD;AAAA,YACD;AAEA,gBAAK,KAAK,QAAS,GAAI,IAAI,IAAK;AAG/B,2BAAa,KAAK,MAAO,GAAI;AAC7B,qBAAO,WAAW,MAAM;AACxB,yBAAW,KAAK;AAAA,YACjB;AACA,qBAAS,KAAK,QAAS,GAAI,IAAI,KAAK,OAAO;AAG3C,oBAAQ,MAAO,OAAO,OAAQ,IAC7B,QACA,IAAI,OAAO,MAAO,MAAM,OAAO,UAAU,YAAY,KAAM;AAG5D,kBAAM,YAAY,eAAe,IAAI;AACrC,kBAAM,YAAY,WAAW,KAAM,GAAI;AACvC,kBAAM,aAAa,MAAM,YACxB,IAAI,OAAQ,YAAY,WAAW,KAAM,eAAgB,IAAI,SAAU,IACvE;AAGD,kBAAM,SAAS;AACf,gBAAK,CAAC,MAAM,QAAS;AACpB,oBAAM,SAAS;AAAA,YAChB;AAGA,mBAAO,QAAQ,OACd,CAAE,KAAM,IACR,OAAO,UAAW,MAAM,CAAE,KAAM,CAAE;AAGnC,sBAAU,OAAO,MAAM,QAAS,IAAK,KAAK,CAAC;AAC3C,gBAAK,CAAC,gBAAgB,QAAQ,WAAW,QAAQ,QAAQ,MAAO,MAAM,IAAK,MAAM,OAAQ;AACxF;AAAA,YACD;AAIA,gBAAK,CAAC,gBAAgB,CAAC,QAAQ,YAAY,CAAC,SAAU,IAAK,GAAI;AAE9D,2BAAa,QAAQ,gBAAgB;AACrC,kBAAK,CAAC,YAAY,KAAM,aAAa,IAAK,GAAI;AAC7C,sBAAM,IAAI;AAAA,cACX;AACA,qBAAQ,KAAK,MAAM,IAAI,YAAa;AACnC,0BAAU,KAAM,GAAI;AACpB,sBAAM;AAAA,cACP;AAGA,kBAAK,SAAU,KAAK,iBAAiBA,YAAa;AACjD,0BAAU,KAAM,IAAI,eAAe,IAAI,gBAAgBN,OAAO;AAAA,cAC/D;AAAA,YACD;AAGA,YAAAO,KAAI;AACJ,oBAAU,MAAM,UAAWA,IAAI,MAAO,CAAC,MAAM,qBAAqB,GAAI;AACrE,4BAAc;AACd,oBAAM,OAAOA,KAAI,IAChB,aACA,QAAQ,YAAY;AAGrB,wBAAW,SAAS,IAAK,KAAK,QAAS,KAAK,uBAAO,OAAQ,IAAK,GAAK,MAAM,IAAK,KAC/E,SAAS,IAAK,KAAK,QAAS;AAC7B,kBAAK,QAAS;AACb,uBAAO,MAAO,KAAK,IAAK;AAAA,cACzB;AAGA,uBAAS,UAAU,IAAK,MAAO;AAC/B,kBAAK,UAAU,OAAO,SAAS,WAAY,GAAI,GAAI;AAClD,sBAAM,SAAS,OAAO,MAAO,KAAK,IAAK;AACvC,oBAAK,MAAM,WAAW,OAAQ;AAC7B,wBAAM,eAAe;AAAA,gBACtB;AAAA,cACD;AAAA,YACD;AACA,kBAAM,OAAO;AAGb,gBAAK,CAAC,gBAAgB,CAAC,MAAM,mBAAmB,GAAI;AAEnD,mBAAO,CAAC,QAAQ,YACf,QAAQ,SAAS,MAAO,UAAU,IAAI,GAAG,IAAK,MAAM,UACpD,WAAY,IAAK,GAAI;AAIrB,oBAAK,UAAU,WAAY,KAAM,IAAK,CAAE,KAAK,CAAC,SAAU,IAAK,GAAI;AAGhE,wBAAM,KAAM,MAAO;AAEnB,sBAAK,KAAM;AACV,yBAAM,MAAO,IAAI;AAAA,kBAClB;AAGA,yBAAO,MAAM,YAAY;AAEzB,sBAAK,MAAM,qBAAqB,GAAI;AACnC,gCAAY,iBAAkB,MAAM,uBAAwB;AAAA,kBAC7D;AAEA,uBAAM,IAAK,EAAE;AAEb,sBAAK,MAAM,qBAAqB,GAAI;AACnC,gCAAY,oBAAqB,MAAM,uBAAwB;AAAA,kBAChE;AAEA,yBAAO,MAAM,YAAY;AAEzB,sBAAK,KAAM;AACV,yBAAM,MAAO,IAAI;AAAA,kBAClB;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAEA,mBAAO,MAAM;AAAA,UACd;AAAA;AAAA;AAAA,UAIA,UAAU,SAAU,MAAM,MAAM,OAAQ;AACvC,gBAAIc,KAAI,OAAO;AAAA,cACd,IAAI,OAAO,MAAM;AAAA,cACjB;AAAA,cACA;AAAA,gBACC;AAAA,gBACA,aAAa;AAAA,cACd;AAAA,YACD;AAEA,mBAAO,MAAM,QAASA,IAAG,MAAM,IAAK;AAAA,UACrC;AAAA,QAED,CAAE;AAEF,eAAO,GAAG,OAAQ;AAAA,UAEjB,SAAS,SAAU,MAAM,MAAO;AAC/B,mBAAO,KAAK,KAAM,WAAW;AAC5B,qBAAO,MAAM,QAAS,MAAM,MAAM,IAAK;AAAA,YACxC,CAAE;AAAA,UACH;AAAA,UACA,gBAAgB,SAAU,MAAM,MAAO;AACtC,gBAAI,OAAO,KAAM,CAAE;AACnB,gBAAK,MAAO;AACX,qBAAO,OAAO,MAAM,QAAS,MAAM,MAAM,MAAM,IAAK;AAAA,YACrD;AAAA,UACD;AAAA,QACD,CAAE;AAWF,YAAK,CAAC,QAAQ,SAAU;AACvB,iBAAO,KAAM,EAAE,OAAO,WAAW,MAAM,WAAW,GAAG,SAAU,MAAM,KAAM;AAG1E,gBAAI,UAAU,SAAU,OAAQ;AAC/B,qBAAO,MAAM,SAAU,KAAK,MAAM,QAAQ,OAAO,MAAM,IAAK,KAAM,CAAE;AAAA,YACrE;AAEA,mBAAO,MAAM,QAAS,GAAI,IAAI;AAAA,cAC7B,OAAO,WAAW;AAIjB,oBAAI,MAAM,KAAK,iBAAiB,KAAK,YAAY,MAChD,WAAW,SAAS,OAAQ,KAAK,GAAI;AAEtC,oBAAK,CAAC,UAAW;AAChB,sBAAI,iBAAkB,MAAM,SAAS,IAAK;AAAA,gBAC3C;AACA,yBAAS,OAAQ,KAAK,MAAO,YAAY,KAAM,CAAE;AAAA,cAClD;AAAA,cACA,UAAU,WAAW;AACpB,oBAAI,MAAM,KAAK,iBAAiB,KAAK,YAAY,MAChD,WAAW,SAAS,OAAQ,KAAK,GAAI,IAAI;AAE1C,oBAAK,CAAC,UAAW;AAChB,sBAAI,oBAAqB,MAAM,SAAS,IAAK;AAC7C,2BAAS,OAAQ,KAAK,GAAI;AAAA,gBAE3B,OAAO;AACN,2BAAS,OAAQ,KAAK,KAAK,QAAS;AAAA,gBACrC;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,QACH;AACA,YAAImC,YAAWxD,QAAO;AAEtB,YAAI,QAAQ,EAAE,MAAM,KAAK,IAAI,EAAE;AAE/B,YAAI,SAAW;AAKf,eAAO,WAAW,SAAU,MAAO;AAClC,cAAI,KAAK;AACT,cAAK,CAAC,QAAQ,OAAO,SAAS,UAAW;AACxC,mBAAO;AAAA,UACR;AAIA,cAAI;AACH,kBAAQ,IAAIA,QAAO,UAAU,EAAI,gBAAiB,MAAM,UAAW;AAAA,UACpE,SAAUqB,IAAI;AAAA,UAAC;AAEf,4BAAkB,OAAO,IAAI,qBAAsB,aAAc,EAAG,CAAE;AACtE,cAAK,CAAC,OAAO,iBAAkB;AAC9B,mBAAO,MAAO,mBACb,kBACC,OAAO,IAAK,gBAAgB,YAAY,SAAU,IAAK;AACtD,qBAAO,GAAG;AAAA,YACX,CAAE,EAAE,KAAM,IAAK,IACf,KACA;AAAA,UACH;AACA,iBAAO;AAAA,QACR;AAGA,YACC,WAAW,SACX,QAAQ,UACR,kBAAkB,yCAClB,eAAe;AAEhB,iBAAS,YAAa,QAAQ,KAAK,aAAamB,MAAM;AACrD,cAAI;AAEJ,cAAK,MAAM,QAAS,GAAI,GAAI;AAG3B,mBAAO,KAAM,KAAK,SAAUjC,IAAGkC,IAAI;AAClC,kBAAK,eAAe,SAAS,KAAM,MAAO,GAAI;AAG7C,gBAAAD,KAAK,QAAQC,EAAE;AAAA,cAEhB,OAAO;AAGN;AAAA,kBACC,SAAS,OAAQ,OAAOA,OAAM,YAAYA,MAAK,OAAOlC,KAAI,MAAO;AAAA,kBACjEkC;AAAA,kBACA;AAAA,kBACAD;AAAA,gBACD;AAAA,cACD;AAAA,YACD,CAAE;AAAA,UAEH,WAAY,CAAC,eAAe,OAAQ,GAAI,MAAM,UAAW;AAGxD,iBAAM,QAAQ,KAAM;AACnB,0BAAa,SAAS,MAAM,OAAO,KAAK,IAAK,IAAK,GAAG,aAAaA,IAAI;AAAA,YACvE;AAAA,UAED,OAAO;AAGN,YAAAA,KAAK,QAAQ,GAAI;AAAA,UAClB;AAAA,QACD;AAIA,eAAO,QAAQ,SAAU3B,IAAG,aAAc;AACzC,cAAI,QACH4C,KAAI,CAAC,GACLjB,OAAM,SAAU,KAAK,iBAAkB;AAGtC,gBAAI,QAAQ,WAAY,eAAgB,IACvC,gBAAgB,IAChB;AAED,YAAAiB,GAAGA,GAAE,MAAO,IAAI,mBAAoB,GAAI,IAAI,MAC3C,mBAAoB,SAAS,OAAO,KAAK,KAAM;AAAA,UACjD;AAED,cAAK5C,MAAK,MAAO;AAChB,mBAAO;AAAA,UACR;AAGA,cAAK,MAAM,QAASA,EAAE,KAAOA,GAAE,UAAU,CAAC,OAAO,cAAeA,EAAE,GAAM;AAGvE,mBAAO,KAAMA,IAAG,WAAW;AAC1B,cAAA2B,KAAK,KAAK,MAAM,KAAK,KAAM;AAAA,YAC5B,CAAE;AAAA,UAEH,OAAO;AAIN,iBAAM,UAAU3B,IAAI;AACnB,0BAAa,QAAQA,GAAG,MAAO,GAAG,aAAa2B,IAAI;AAAA,YACpD;AAAA,UACD;AAGA,iBAAOiB,GAAE,KAAM,GAAI;AAAA,QACpB;AAEA,eAAO,GAAG,OAAQ;AAAA,UACjB,WAAW,WAAW;AACrB,mBAAO,OAAO,MAAO,KAAK,eAAe,CAAE;AAAA,UAC5C;AAAA,UACA,gBAAgB,WAAW;AAC1B,mBAAO,KAAK,IAAK,WAAW;AAG3B,kBAAI,WAAW,OAAO,KAAM,MAAM,UAAW;AAC7C,qBAAO,WAAW,OAAO,UAAW,QAAS,IAAI;AAAA,YAClD,CAAE,EAAE,OAAQ,WAAW;AACtB,kBAAI,OAAO,KAAK;AAGhB,qBAAO,KAAK,QAAQ,CAAC,OAAQ,IAAK,EAAE,GAAI,WAAY,KACnD,aAAa,KAAM,KAAK,QAAS,KAAK,CAAC,gBAAgB,KAAM,IAAK,MAChE,KAAK,WAAW,CAAC,eAAe,KAAM,IAAK;AAAA,YAC/C,CAAE,EAAE,IAAK,SAAU,IAAI,MAAO;AAC7B,kBAAI,MAAM,OAAQ,IAAK,EAAE,IAAI;AAE7B,kBAAK,OAAO,MAAO;AAClB,uBAAO;AAAA,cACR;AAEA,kBAAK,MAAM,QAAS,GAAI,GAAI;AAC3B,uBAAO,OAAO,IAAK,KAAK,SAAUC,MAAM;AACvC,yBAAO,EAAE,MAAM,KAAK,MAAM,OAAOA,KAAI,QAAS,OAAO,MAAO,EAAE;AAAA,gBAC/D,CAAE;AAAA,cACH;AAEA,qBAAO,EAAE,MAAM,KAAK,MAAM,OAAO,IAAI,QAAS,OAAO,MAAO,EAAE;AAAA,YAC/D,CAAE,EAAE,IAAI;AAAA,UACT;AAAA,QACD,CAAE;AAGF,YACC,MAAM,QACN,QAAQ,QACR,aAAa,iBACb,WAAW,8BAGX,iBAAiB,6DACjB,aAAa,kBACb,YAAY,SAWZ,aAAa,CAAC,GAOd,aAAa,CAAC,GAGd,WAAW,KAAK,OAAQ,GAAI,GAG5B,eAAepD,UAAS,cAAe,GAAI;AAE5C,qBAAa,OAAOkD,UAAS;AAG7B,iBAAS,4BAA6B,WAAY;AAGjD,iBAAO,SAAU,oBAAoB,MAAO;AAE3C,gBAAK,OAAO,uBAAuB,UAAW;AAC7C,qBAAO;AACP,mCAAqB;AAAA,YACtB;AAEA,gBAAI,UACHjD,KAAI,GACJ,YAAY,mBAAmB,YAAY,EAAE,MAAO,aAAc,KAAK,CAAC;AAEzE,gBAAK,WAAY,IAAK,GAAI;AAGzB,qBAAU,WAAW,UAAWA,IAAI,GAAM;AAGzC,oBAAK,SAAU,CAAE,MAAM,KAAM;AAC5B,6BAAW,SAAS,MAAO,CAAE,KAAK;AAClC,mBAAE,UAAW,QAAS,IAAI,UAAW,QAAS,KAAK,CAAC,GAAI,QAAS,IAAK;AAAA,gBAGvE,OAAO;AACN,mBAAE,UAAW,QAAS,IAAI,UAAW,QAAS,KAAK,CAAC,GAAI,KAAM,IAAK;AAAA,gBACpE;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAGA,iBAAS,8BAA+B,WAAW,SAAS,iBAAiB,OAAQ;AAEpF,cAAI,YAAY,CAAC,GAChB,mBAAqB,cAAc;AAEpC,mBAAS,QAAS,UAAW;AAC5B,gBAAI;AACJ,sBAAW,QAAS,IAAI;AACxB,mBAAO,KAAM,UAAW,QAAS,KAAK,CAAC,GAAG,SAAUgC,IAAG,oBAAqB;AAC3E,kBAAI,sBAAsB,mBAAoB,SAAS,iBAAiB,KAAM;AAC9E,kBAAK,OAAO,wBAAwB,YACnC,CAAC,oBAAoB,CAAC,UAAW,mBAAoB,GAAI;AAEzD,wBAAQ,UAAU,QAAS,mBAAoB;AAC/C,wBAAS,mBAAoB;AAC7B,uBAAO;AAAA,cACR,WAAY,kBAAmB;AAC9B,uBAAO,EAAG,WAAW;AAAA,cACtB;AAAA,YACD,CAAE;AACF,mBAAO;AAAA,UACR;AAEA,iBAAO,QAAS,QAAQ,UAAW,CAAE,CAAE,KAAK,CAAC,UAAW,GAAI,KAAK,QAAS,GAAI;AAAA,QAC/E;AAKA,iBAAS,WAAY,QAAQ,KAAM;AAClC,cAAI,KAAK,MACR,cAAc,OAAO,aAAa,eAAe,CAAC;AAEnD,eAAM,OAAO,KAAM;AAClB,gBAAK,IAAK,GAAI,MAAM,QAAY;AAC/B,eAAE,YAAa,GAAI,IAAI,SAAW,SAAU,OAAO,CAAC,IAAS,GAAI,IAAI,IAAK,GAAI;AAAA,YAC/E;AAAA,UACD;AACA,cAAK,MAAO;AACX,mBAAO,OAAQ,MAAM,QAAQ,IAAK;AAAA,UACnC;AAEA,iBAAO;AAAA,QACR;AAMA,iBAAS,oBAAqBkB,IAAG,OAAO,WAAY;AAEnD,cAAI,IAAI,MAAM,eAAe,eAC5B,WAAWA,GAAE,UACb,YAAYA,GAAE;AAGf,iBAAQ,UAAW,CAAE,MAAM,KAAM;AAChC,sBAAU,MAAM;AAChB,gBAAK,OAAO,QAAY;AACvB,mBAAKA,GAAE,YAAY,MAAM,kBAAmB,cAAe;AAAA,YAC5D;AAAA,UACD;AAGA,cAAK,IAAK;AACT,iBAAM,QAAQ,UAAW;AACxB,kBAAK,SAAU,IAAK,KAAK,SAAU,IAAK,EAAE,KAAM,EAAG,GAAI;AACtD,0BAAU,QAAS,IAAK;AACxB;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAGA,cAAK,UAAW,CAAE,KAAK,WAAY;AAClC,4BAAgB,UAAW,CAAE;AAAA,UAC9B,OAAO;AAGN,iBAAM,QAAQ,WAAY;AACzB,kBAAK,CAAC,UAAW,CAAE,KAAKA,GAAE,WAAY,OAAO,MAAM,UAAW,CAAE,CAAE,GAAI;AACrE,gCAAgB;AAChB;AAAA,cACD;AACA,kBAAK,CAAC,eAAgB;AACrB,gCAAgB;AAAA,cACjB;AAAA,YACD;AAGA,4BAAgB,iBAAiB;AAAA,UAClC;AAKA,cAAK,eAAgB;AACpB,gBAAK,kBAAkB,UAAW,CAAE,GAAI;AACvC,wBAAU,QAAS,aAAc;AAAA,YAClC;AACA,mBAAO,UAAW,aAAc;AAAA,UACjC;AAAA,QACD;AAKA,iBAAS,YAAaA,IAAG,UAAU,OAAO,WAAY;AACrD,cAAI,OAAO,SAAS,MAAM,KAAK,MAC9B,aAAa,CAAC,GAGd,YAAYA,GAAE,UAAU,MAAM;AAG/B,cAAK,UAAW,CAAE,GAAI;AACrB,iBAAM,QAAQA,GAAE,YAAa;AAC5B,yBAAY,KAAK,YAAY,CAAE,IAAIA,GAAE,WAAY,IAAK;AAAA,YACvD;AAAA,UACD;AAEA,oBAAU,UAAU,MAAM;AAG1B,iBAAQ,SAAU;AAEjB,gBAAKA,GAAE,eAAgB,OAAQ,GAAI;AAClC,oBAAOA,GAAE,eAAgB,OAAQ,CAAE,IAAI;AAAA,YACxC;AAGA,gBAAK,CAAC,QAAQ,aAAaA,GAAE,YAAa;AACzC,yBAAWA,GAAE,WAAY,UAAUA,GAAE,QAAS;AAAA,YAC/C;AAEA,mBAAO;AACP,sBAAU,UAAU,MAAM;AAE1B,gBAAK,SAAU;AAGd,kBAAK,YAAY,KAAM;AAEtB,0BAAU;AAAA,cAGX,WAAY,SAAS,OAAO,SAAS,SAAU;AAG9C,uBAAO,WAAY,OAAO,MAAM,OAAQ,KAAK,WAAY,OAAO,OAAQ;AAGxE,oBAAK,CAAC,MAAO;AACZ,uBAAM,SAAS,YAAa;AAG3B,0BAAM,MAAM,MAAO,GAAI;AACvB,wBAAK,IAAK,CAAE,MAAM,SAAU;AAG3B,6BAAO,WAAY,OAAO,MAAM,IAAK,CAAE,CAAE,KACxC,WAAY,OAAO,IAAK,CAAE,CAAE;AAC7B,0BAAK,MAAO;AAGX,4BAAK,SAAS,MAAO;AACpB,iCAAO,WAAY,KAAM;AAAA,wBAG1B,WAAY,WAAY,KAAM,MAAM,MAAO;AAC1C,oCAAU,IAAK,CAAE;AACjB,oCAAU,QAAS,IAAK,CAAE,CAAE;AAAA,wBAC7B;AACA;AAAA,sBACD;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAGA,oBAAK,SAAS,MAAO;AAGpB,sBAAK,QAAQA,GAAE,QAAS;AACvB,+BAAW,KAAM,QAAS;AAAA,kBAC3B,OAAO;AACN,wBAAI;AACH,iCAAW,KAAM,QAAS;AAAA,oBAC3B,SAAUpC,IAAI;AACb,6BAAO;AAAA,wBACN,OAAO;AAAA,wBACP,OAAO,OAAOA,KAAI,wBAAwB,OAAO,SAAS;AAAA,sBAC3D;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAEA,iBAAO,EAAE,OAAO,WAAW,MAAM,SAAS;AAAA,QAC3C;AAEA,eAAO,OAAQ;AAAA;AAAA,UAGd,QAAQ;AAAA;AAAA,UAGR,cAAc,CAAC;AAAA,UACf,MAAM,CAAC;AAAA,UAEP,cAAc;AAAA,YACb,KAAKmC,UAAS;AAAA,YACd,MAAM;AAAA,YACN,SAAS,eAAe,KAAMA,UAAS,QAAS;AAAA,YAChD,QAAQ;AAAA,YACR,aAAa;AAAA,YACb,OAAO;AAAA,YACP,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAcb,SAAS;AAAA,cACR,KAAK;AAAA,cACL,MAAM;AAAA,cACN,MAAM;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACP;AAAA,YAEA,UAAU;AAAA,cACT,KAAK;AAAA,cACL,MAAM;AAAA,cACN,MAAM;AAAA,YACP;AAAA,YAEA,gBAAgB;AAAA,cACf,KAAK;AAAA,cACL,MAAM;AAAA,cACN,MAAM;AAAA,YACP;AAAA;AAAA;AAAA,YAIA,YAAY;AAAA;AAAA,cAGX,UAAU;AAAA;AAAA,cAGV,aAAa;AAAA;AAAA,cAGb,aAAa,KAAK;AAAA;AAAA,cAGlB,YAAY,OAAO;AAAA,YACpB;AAAA;AAAA;AAAA;AAAA;AAAA,YAMA,aAAa;AAAA,cACZ,KAAK;AAAA,cACL,SAAS;AAAA,YACV;AAAA,UACD;AAAA;AAAA;AAAA;AAAA,UAKA,WAAW,SAAU,QAAQ,UAAW;AACvC,mBAAO;AAAA;AAAA,cAGN,WAAY,WAAY,QAAQ,OAAO,YAAa,GAAG,QAAS;AAAA;AAAA;AAAA,cAGhE,WAAY,OAAO,cAAc,MAAO;AAAA;AAAA,UAC1C;AAAA,UAEA,eAAe,4BAA6B,UAAW;AAAA,UACvD,eAAe,4BAA6B,UAAW;AAAA;AAAA,UAGvD,MAAM,SAAU,KAAK,SAAU;AAG9B,gBAAK,OAAO,QAAQ,UAAW;AAC9B,wBAAU;AACV,oBAAM;AAAA,YACP;AAGA,sBAAU,WAAW,CAAC;AAEtB,gBAAI,WAGH,UAGA,uBACA,iBAGA,cAGA,WAGAG,YAGA,aAGApD,IAGA,UAGAkD,KAAI,OAAO,UAAW,CAAC,GAAG,OAAQ,GAGlC,kBAAkBA,GAAE,WAAWA,IAG/B,qBAAqBA,GAAE,YACpB,gBAAgB,YAAY,gBAAgB,UAC9C,OAAQ,eAAgB,IACxB,OAAO,OAGR,WAAW,OAAO,SAAS,GAC3B,mBAAmB,OAAO,UAAW,aAAc,GAGnD,aAAaA,GAAE,cAAc,CAAC,GAG9B,iBAAiB,CAAC,GAClB,sBAAsB,CAAC,GAGvB,WAAW,YAGX,QAAQ;AAAA,cACP,YAAY;AAAA;AAAA,cAGZ,mBAAmB,SAAU,KAAM;AAClC,oBAAIjC;AACJ,oBAAKmC,YAAY;AAChB,sBAAK,CAAC,iBAAkB;AACvB,sCAAkB,CAAC;AACnB,2BAAUnC,SAAQ,SAAS,KAAM,qBAAsB,GAAM;AAC5D,sCAAiBA,OAAO,CAAE,EAAE,YAAY,IAAI,GAAI,KAC7C,gBAAiBA,OAAO,CAAE,EAAE,YAAY,IAAI,GAAI,KAAK,CAAC,GACtD,OAAQA,OAAO,CAAE,CAAE;AAAA,oBACvB;AAAA,kBACD;AACA,kBAAAA,SAAQ,gBAAiB,IAAI,YAAY,IAAI,GAAI;AAAA,gBAClD;AACA,uBAAOA,UAAS,OAAO,OAAOA,OAAM,KAAM,IAAK;AAAA,cAChD;AAAA;AAAA,cAGA,uBAAuB,WAAW;AACjC,uBAAOmC,aAAY,wBAAwB;AAAA,cAC5C;AAAA;AAAA,cAGA,kBAAkB,SAAU,MAAM,OAAQ;AACzC,oBAAKA,cAAa,MAAO;AACxB,yBAAO,oBAAqB,KAAK,YAAY,CAAE,IAC9C,oBAAqB,KAAK,YAAY,CAAE,KAAK;AAC9C,iCAAgB,IAAK,IAAI;AAAA,gBAC1B;AACA,uBAAO;AAAA,cACR;AAAA;AAAA,cAGA,kBAAkB,SAAU,MAAO;AAClC,oBAAKA,cAAa,MAAO;AACxB,kBAAAF,GAAE,WAAW;AAAA,gBACd;AACA,uBAAO;AAAA,cACR;AAAA;AAAA,cAGA,YAAY,SAAU,KAAM;AAC3B,oBAAI;AACJ,oBAAK,KAAM;AACV,sBAAKE,YAAY;AAGhB,0BAAM,OAAQ,IAAK,MAAM,MAAO,CAAE;AAAA,kBACnC,OAAO;AAGN,yBAAM,QAAQ,KAAM;AACnB,iCAAY,IAAK,IAAI,CAAE,WAAY,IAAK,GAAG,IAAK,IAAK,CAAE;AAAA,oBACxD;AAAA,kBACD;AAAA,gBACD;AACA,uBAAO;AAAA,cACR;AAAA;AAAA,cAGA,OAAO,SAAU,YAAa;AAC7B,oBAAI,YAAY,cAAc;AAC9B,oBAAK,WAAY;AAChB,4BAAU,MAAO,SAAU;AAAA,gBAC5B;AACA,qBAAM,GAAG,SAAU;AACnB,uBAAO;AAAA,cACR;AAAA,YACD;AAGD,qBAAS,QAAS,KAAM;AAKxB,YAAAF,GAAE,QAAU,OAAOA,GAAE,OAAOD,UAAS,QAAS,IAC5C,QAAS,WAAWA,UAAS,WAAW,IAAK;AAG/C,YAAAC,GAAE,OAAO,QAAQ,UAAU,QAAQ,QAAQA,GAAE,UAAUA,GAAE;AAGzD,YAAAA,GAAE,aAAcA,GAAE,YAAY,KAAM,YAAY,EAAE,MAAO,aAAc,KAAK,CAAE,EAAG;AAGjF,gBAAKA,GAAE,eAAe,MAAO;AAC5B,0BAAYnD,UAAS,cAAe,GAAI;AAKxC,kBAAI;AACH,0BAAU,OAAOmD,GAAE;AAInB,0BAAU,OAAO,UAAU;AAC3B,gBAAAA,GAAE,cAAc,aAAa,WAAW,OAAO,aAAa,SAC3D,UAAU,WAAW,OAAO,UAAU;AAAA,cACxC,SAAUpC,IAAI;AAIb,gBAAAoC,GAAE,cAAc;AAAA,cACjB;AAAA,YACD;AAGA,gBAAKA,GAAE,QAAQA,GAAE,eAAe,OAAOA,GAAE,SAAS,UAAW;AAC5D,cAAAA,GAAE,OAAO,OAAO,MAAOA,GAAE,MAAMA,GAAE,WAAY;AAAA,YAC9C;AAGA,0CAA+B,YAAYA,IAAG,SAAS,KAAM;AAG7D,gBAAKE,YAAY;AAChB,qBAAO;AAAA,YACR;AAIA,0BAAc,OAAO,SAASF,GAAE;AAGhC,gBAAK,eAAe,OAAO,aAAa,GAAI;AAC3C,qBAAO,MAAM,QAAS,WAAY;AAAA,YACnC;AAGA,YAAAA,GAAE,OAAOA,GAAE,KAAK,YAAY;AAG5B,YAAAA,GAAE,aAAa,CAAC,WAAW,KAAMA,GAAE,IAAK;AAKxC,uBAAWA,GAAE,IAAI,QAAS,OAAO,EAAG;AAGpC,gBAAK,CAACA,GAAE,YAAa;AAGpB,yBAAWA,GAAE,IAAI,MAAO,SAAS,MAAO;AAGxC,kBAAKA,GAAE,SAAUA,GAAE,eAAe,OAAOA,GAAE,SAAS,WAAa;AAChE,6BAAc,OAAO,KAAM,QAAS,IAAI,MAAM,OAAQA,GAAE;AAGxD,uBAAOA,GAAE;AAAA,cACV;AAGA,kBAAKA,GAAE,UAAU,OAAQ;AACxB,2BAAW,SAAS,QAAS,YAAY,IAAK;AAC9C,4BAAa,OAAO,KAAM,QAAS,IAAI,MAAM,OAAQ,OAAS,MAAM,SACnE;AAAA,cACF;AAGA,cAAAA,GAAE,MAAM,WAAW;AAAA,YAGpB,WAAYA,GAAE,QAAQA,GAAE,gBACrBA,GAAE,eAAe,IAAK,QAAS,mCAAoC,MAAM,GAAI;AAC/E,cAAAA,GAAE,OAAOA,GAAE,KAAK,QAAS,KAAK,GAAI;AAAA,YACnC;AAGA,gBAAKA,GAAE,YAAa;AACnB,kBAAK,OAAO,aAAc,QAAS,GAAI;AACtC,sBAAM,iBAAkB,qBAAqB,OAAO,aAAc,QAAS,CAAE;AAAA,cAC9E;AACA,kBAAK,OAAO,KAAM,QAAS,GAAI;AAC9B,sBAAM,iBAAkB,iBAAiB,OAAO,KAAM,QAAS,CAAE;AAAA,cAClE;AAAA,YACD;AAGA,gBAAKA,GAAE,QAAQA,GAAE,cAAcA,GAAE,gBAAgB,SAAS,QAAQ,aAAc;AAC/E,oBAAM,iBAAkB,gBAAgBA,GAAE,WAAY;AAAA,YACvD;AAGA,kBAAM;AAAA,cACL;AAAA,cACAA,GAAE,UAAW,CAAE,KAAKA,GAAE,QAASA,GAAE,UAAW,CAAE,CAAE,IAC/CA,GAAE,QAASA,GAAE,UAAW,CAAE,CAAE,KACzBA,GAAE,UAAW,CAAE,MAAM,MAAM,OAAO,WAAW,aAAa,MAC7DA,GAAE,QAAS,GAAI;AAAA,YACjB;AAGA,iBAAMlD,MAAKkD,GAAE,SAAU;AACtB,oBAAM,iBAAkBlD,IAAGkD,GAAE,QAASlD,EAAE,CAAE;AAAA,YAC3C;AAGA,gBAAKkD,GAAE,eACJA,GAAE,WAAW,KAAM,iBAAiB,OAAOA,EAAE,MAAM,SAASE,aAAc;AAG5E,qBAAO,MAAM,MAAM;AAAA,YACpB;AAGA,uBAAW;AAGX,6BAAiB,IAAKF,GAAE,QAAS;AACjC,kBAAM,KAAMA,GAAE,OAAQ;AACtB,kBAAM,KAAMA,GAAE,KAAM;AAGpB,wBAAY,8BAA+B,YAAYA,IAAG,SAAS,KAAM;AAGzE,gBAAK,CAAC,WAAY;AACjB,mBAAM,IAAI,cAAe;AAAA,YAC1B,OAAO;AACN,oBAAM,aAAa;AAGnB,kBAAK,aAAc;AAClB,mCAAmB,QAAS,YAAY,CAAE,OAAOA,EAAE,CAAE;AAAA,cACtD;AAGA,kBAAKE,YAAY;AAChB,uBAAO;AAAA,cACR;AAGA,kBAAKF,GAAE,SAASA,GAAE,UAAU,GAAI;AAC/B,+BAAezD,QAAO,WAAY,WAAW;AAC5C,wBAAM,MAAO,SAAU;AAAA,gBACxB,GAAGyD,GAAE,OAAQ;AAAA,cACd;AAEA,kBAAI;AACH,gBAAAE,aAAY;AACZ,0BAAU,KAAM,gBAAgB,IAAK;AAAA,cACtC,SAAUtC,IAAI;AAGb,oBAAKsC,YAAY;AAChB,wBAAMtC;AAAA,gBACP;AAGA,qBAAM,IAAIA,EAAE;AAAA,cACb;AAAA,YACD;AAGA,qBAAS,KAAM,QAAQ,kBAAkB,WAAW,SAAU;AAC7D,kBAAI,WAAW,SAASwB,QAAO,UAAU,UACxC,aAAa;AAGd,kBAAKc,YAAY;AAChB;AAAA,cACD;AAEA,cAAAA,aAAY;AAGZ,kBAAK,cAAe;AACnB,gBAAA3D,QAAO,aAAc,YAAa;AAAA,cACnC;AAIA,0BAAY;AAGZ,sCAAwB,WAAW;AAGnC,oBAAM,aAAa,SAAS,IAAI,IAAI;AAGpC,0BAAY,UAAU,OAAO,SAAS,OAAO,WAAW;AAGxD,kBAAK,WAAY;AAChB,2BAAW,oBAAqByD,IAAG,OAAO,SAAU;AAAA,cACrD;AAGA,kBAAK,CAAC,aACL,OAAO,QAAS,UAAUA,GAAE,SAAU,IAAI,MAC1C,OAAO,QAAS,QAAQA,GAAE,SAAU,IAAI,GAAI;AAC5C,gBAAAA,GAAE,WAAY,aAAc,IAAI,WAAW;AAAA,gBAAC;AAAA,cAC7C;AAGA,yBAAW,YAAaA,IAAG,UAAU,OAAO,SAAU;AAGtD,kBAAK,WAAY;AAGhB,oBAAKA,GAAE,YAAa;AACnB,6BAAW,MAAM,kBAAmB,eAAgB;AACpD,sBAAK,UAAW;AACf,2BAAO,aAAc,QAAS,IAAI;AAAA,kBACnC;AACA,6BAAW,MAAM,kBAAmB,MAAO;AAC3C,sBAAK,UAAW;AACf,2BAAO,KAAM,QAAS,IAAI;AAAA,kBAC3B;AAAA,gBACD;AAGA,oBAAK,WAAW,OAAOA,GAAE,SAAS,QAAS;AAC1C,+BAAa;AAAA,gBAGd,WAAY,WAAW,KAAM;AAC5B,+BAAa;AAAA,gBAGd,OAAO;AACN,+BAAa,SAAS;AACtB,4BAAU,SAAS;AACnB,kBAAAZ,SAAQ,SAAS;AACjB,8BAAY,CAACA;AAAA,gBACd;AAAA,cACD,OAAO;AAGN,gBAAAA,SAAQ;AACR,oBAAK,UAAU,CAAC,YAAa;AAC5B,+BAAa;AACb,sBAAK,SAAS,GAAI;AACjB,6BAAS;AAAA,kBACV;AAAA,gBACD;AAAA,cACD;AAGA,oBAAM,SAAS;AACf,oBAAM,cAAe,oBAAoB,cAAe;AAGxD,kBAAK,WAAY;AAChB,yBAAS,YAAa,iBAAiB,CAAE,SAAS,YAAY,KAAM,CAAE;AAAA,cACvE,OAAO;AACN,yBAAS,WAAY,iBAAiB,CAAE,OAAO,YAAYA,MAAM,CAAE;AAAA,cACpE;AAGA,oBAAM,WAAY,UAAW;AAC7B,2BAAa;AAEb,kBAAK,aAAc;AAClB,mCAAmB;AAAA,kBAAS,YAAY,gBAAgB;AAAA,kBACvD,CAAE,OAAOY,IAAG,YAAY,UAAUZ,MAAM;AAAA,gBAAE;AAAA,cAC5C;AAGA,+BAAiB,SAAU,iBAAiB,CAAE,OAAO,UAAW,CAAE;AAElE,kBAAK,aAAc;AAClB,mCAAmB,QAAS,gBAAgB,CAAE,OAAOY,EAAE,CAAE;AAGzD,oBAAK,CAAG,EAAE,OAAO,QAAW;AAC3B,yBAAO,MAAM,QAAS,UAAW;AAAA,gBAClC;AAAA,cACD;AAAA,YACD;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,SAAS,SAAU,KAAK,MAAM,UAAW;AACxC,mBAAO,OAAO,IAAK,KAAK,MAAM,UAAU,MAAO;AAAA,UAChD;AAAA,UAEA,WAAW,SAAU,KAAK,UAAW;AACpC,mBAAO,OAAO,IAAK,KAAK,QAAW,UAAU,QAAS;AAAA,UACvD;AAAA,QACD,CAAE;AAEF,eAAO,KAAM,CAAE,OAAO,MAAO,GAAG,SAAU,IAAI,QAAS;AACtD,iBAAQ,MAAO,IAAI,SAAU,KAAK,MAAM,UAAU,MAAO;AAGxD,gBAAK,WAAY,IAAK,GAAI;AACzB,qBAAO,QAAQ;AACf,yBAAW;AACX,qBAAO;AAAA,YACR;AAGA,mBAAO,OAAO,KAAM,OAAO,OAAQ;AAAA,cAClC;AAAA,cACA,MAAM;AAAA,cACN,UAAU;AAAA,cACV;AAAA,cACA,SAAS;AAAA,YACV,GAAG,OAAO,cAAe,GAAI,KAAK,GAAI,CAAE;AAAA,UACzC;AAAA,QACD,CAAE;AAEF,eAAO,cAAe,SAAUA,IAAI;AACnC,cAAIlD;AACJ,eAAMA,MAAKkD,GAAE,SAAU;AACtB,gBAAKlD,GAAE,YAAY,MAAM,gBAAiB;AACzC,cAAAkD,GAAE,cAAcA,GAAE,QAASlD,EAAE,KAAK;AAAA,YACnC;AAAA,UACD;AAAA,QACD,CAAE;AAGF,eAAO,WAAW,SAAU,KAAK,SAAS,KAAM;AAC/C,iBAAO,OAAO,KAAM;AAAA,YACnB;AAAA;AAAA,YAGA,MAAM;AAAA,YACN,UAAU;AAAA,YACV,OAAO;AAAA,YACP,OAAO;AAAA,YACP,QAAQ;AAAA;AAAA;AAAA;AAAA,YAKR,YAAY;AAAA,cACX,eAAe,WAAW;AAAA,cAAC;AAAA,YAC5B;AAAA,YACA,YAAY,SAAU,UAAW;AAChC,qBAAO,WAAY,UAAU,SAAS,GAAI;AAAA,YAC3C;AAAA,UACD,CAAE;AAAA,QACH;AAGA,eAAO,GAAG,OAAQ;AAAA,UACjB,SAAS,SAAU,MAAO;AACzB,gBAAI;AAEJ,gBAAK,KAAM,CAAE,GAAI;AAChB,kBAAK,WAAY,IAAK,GAAI;AACzB,uBAAO,KAAK,KAAM,KAAM,CAAE,CAAE;AAAA,cAC7B;AAGA,qBAAO,OAAQ,MAAM,KAAM,CAAE,EAAE,aAAc,EAAE,GAAI,CAAE,EAAE,MAAO,IAAK;AAEnE,kBAAK,KAAM,CAAE,EAAE,YAAa;AAC3B,qBAAK,aAAc,KAAM,CAAE,CAAE;AAAA,cAC9B;AAEA,mBAAK,IAAK,WAAW;AACpB,oBAAI,OAAO;AAEX,uBAAQ,KAAK,mBAAoB;AAChC,yBAAO,KAAK;AAAA,gBACb;AAEA,uBAAO;AAAA,cACR,CAAE,EAAE,OAAQ,IAAK;AAAA,YAClB;AAEA,mBAAO;AAAA,UACR;AAAA,UAEA,WAAW,SAAU,MAAO;AAC3B,gBAAK,WAAY,IAAK,GAAI;AACzB,qBAAO,KAAK,KAAM,SAAUA,IAAI;AAC/B,uBAAQ,IAAK,EAAE,UAAW,KAAK,KAAM,MAAMA,EAAE,CAAE;AAAA,cAChD,CAAE;AAAA,YACH;AAEA,mBAAO,KAAK,KAAM,WAAW;AAC5B,kBAAI8B,QAAO,OAAQ,IAAK,GACvB,WAAWA,MAAK,SAAS;AAE1B,kBAAK,SAAS,QAAS;AACtB,yBAAS,QAAS,IAAK;AAAA,cAExB,OAAO;AACN,gBAAAA,MAAK,OAAQ,IAAK;AAAA,cACnB;AAAA,YACD,CAAE;AAAA,UACH;AAAA,UAEA,MAAM,SAAU,MAAO;AACtB,gBAAI,iBAAiB,WAAY,IAAK;AAEtC,mBAAO,KAAK,KAAM,SAAU9B,IAAI;AAC/B,qBAAQ,IAAK,EAAE,QAAS,iBAAiB,KAAK,KAAM,MAAMA,EAAE,IAAI,IAAK;AAAA,YACtE,CAAE;AAAA,UACH;AAAA,UAEA,QAAQ,SAAU,UAAW;AAC5B,iBAAK,OAAQ,QAAS,EAAE,IAAK,MAAO,EAAE,KAAM,WAAW;AACtD,qBAAQ,IAAK,EAAE,YAAa,KAAK,UAAW;AAAA,YAC7C,CAAE;AACF,mBAAO;AAAA,UACR;AAAA,QACD,CAAE;AAGF,eAAO,KAAK,QAAQ,SAAS,SAAU,MAAO;AAC7C,iBAAO,CAAC,OAAO,KAAK,QAAQ,QAAS,IAAK;AAAA,QAC3C;AACA,eAAO,KAAK,QAAQ,UAAU,SAAU,MAAO;AAC9C,iBAAO,CAAC,EAAG,KAAK,eAAe,KAAK,gBAAgB,KAAK,eAAe,EAAE;AAAA,QAC3E;AAKA,eAAO,aAAa,MAAM,WAAW;AACpC,cAAI;AACH,mBAAO,IAAIP,QAAO,eAAe;AAAA,UAClC,SAAUqB,IAAI;AAAA,UAAC;AAAA,QAChB;AAEA,YAAI,mBAAmB;AAAA;AAAA,UAGrB,GAAG;AAAA;AAAA;AAAA,UAIH,MAAM;AAAA,QACP,GACA,eAAe,OAAO,aAAa,IAAI;AAExC,gBAAQ,OAAO,CAAC,CAAC,gBAAkB,qBAAqB;AACxD,gBAAQ,OAAO,eAAe,CAAC,CAAC;AAEhC,eAAO,cAAe,SAAU,SAAU;AACzC,cAAI,UAAU;AAGd,cAAK,QAAQ,QAAQ,gBAAgB,CAAC,QAAQ,aAAc;AAC3D,mBAAO;AAAA,cACN,MAAM,SAAU,SAAS,UAAW;AACnC,oBAAId,IACH,MAAM,QAAQ,IAAI;AAEnB,oBAAI;AAAA,kBACH,QAAQ;AAAA,kBACR,QAAQ;AAAA,kBACR,QAAQ;AAAA,kBACR,QAAQ;AAAA,kBACR,QAAQ;AAAA,gBACT;AAGA,oBAAK,QAAQ,WAAY;AACxB,uBAAMA,MAAK,QAAQ,WAAY;AAC9B,wBAAKA,EAAE,IAAI,QAAQ,UAAWA,EAAE;AAAA,kBACjC;AAAA,gBACD;AAGA,oBAAK,QAAQ,YAAY,IAAI,kBAAmB;AAC/C,sBAAI,iBAAkB,QAAQ,QAAS;AAAA,gBACxC;AAOA,oBAAK,CAAC,QAAQ,eAAe,CAAC,QAAS,kBAAmB,GAAI;AAC7D,0BAAS,kBAAmB,IAAI;AAAA,gBACjC;AAGA,qBAAMA,MAAK,SAAU;AACpB,sBAAI,iBAAkBA,IAAG,QAASA,EAAE,CAAE;AAAA,gBACvC;AAGA,2BAAW,SAAU,MAAO;AAC3B,yBAAO,WAAW;AACjB,wBAAK,UAAW;AACf,iCAAW,gBAAgB,IAAI,SAC9B,IAAI,UAAU,IAAI,UAAU,IAAI,YAC/B,IAAI,qBAAqB;AAE3B,0BAAK,SAAS,SAAU;AACvB,4BAAI,MAAM;AAAA,sBACX,WAAY,SAAS,SAAU;AAK9B,4BAAK,OAAO,IAAI,WAAW,UAAW;AACrC,mCAAU,GAAG,OAAQ;AAAA,wBACtB,OAAO;AACN;AAAA;AAAA,4BAGC,IAAI;AAAA,4BACJ,IAAI;AAAA,0BACL;AAAA,wBACD;AAAA,sBACD,OAAO;AACN;AAAA,0BACC,iBAAkB,IAAI,MAAO,KAAK,IAAI;AAAA,0BACtC,IAAI;AAAA;AAAA;AAAA;AAAA,2BAKF,IAAI,gBAAgB,YAAa,UACnC,OAAO,IAAI,iBAAiB,WAC3B,EAAE,QAAQ,IAAI,SAAS,IACvB,EAAE,MAAM,IAAI,aAAa;AAAA,0BAC1B,IAAI,sBAAsB;AAAA,wBAC3B;AAAA,sBACD;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAGA,oBAAI,SAAS,SAAS;AACtB,gCAAgB,IAAI,UAAU,IAAI,YAAY,SAAU,OAAQ;AAKhE,oBAAK,IAAI,YAAY,QAAY;AAChC,sBAAI,UAAU;AAAA,gBACf,OAAO;AACN,sBAAI,qBAAqB,WAAW;AAGnC,wBAAK,IAAI,eAAe,GAAI;AAM3B,sBAAAP,QAAO,WAAY,WAAW;AAC7B,4BAAK,UAAW;AACf,wCAAc;AAAA,wBACf;AAAA,sBACD,CAAE;AAAA,oBACH;AAAA,kBACD;AAAA,gBACD;AAGA,2BAAW,SAAU,OAAQ;AAE7B,oBAAI;AAGH,sBAAI,KAAM,QAAQ,cAAc,QAAQ,QAAQ,IAAK;AAAA,gBACtD,SAAUqB,IAAI;AAGb,sBAAK,UAAW;AACf,0BAAMA;AAAA,kBACP;AAAA,gBACD;AAAA,cACD;AAAA,cAEA,OAAO,WAAW;AACjB,oBAAK,UAAW;AACf,2BAAS;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAE;AAMF,eAAO,cAAe,SAAUoC,IAAI;AACnC,cAAKA,GAAE,aAAc;AACpB,YAAAA,GAAE,SAAS,SAAS;AAAA,UACrB;AAAA,QACD,CAAE;AAGF,eAAO,UAAW;AAAA,UACjB,SAAS;AAAA,YACR,QAAQ;AAAA,UAET;AAAA,UACA,UAAU;AAAA,YACT,QAAQ;AAAA,UACT;AAAA,UACA,YAAY;AAAA,YACX,eAAe,SAAU,MAAO;AAC/B,qBAAO,WAAY,IAAK;AACxB,qBAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD,CAAE;AAGF,eAAO,cAAe,UAAU,SAAUA,IAAI;AAC7C,cAAKA,GAAE,UAAU,QAAY;AAC5B,YAAAA,GAAE,QAAQ;AAAA,UACX;AACA,cAAKA,GAAE,aAAc;AACpB,YAAAA,GAAE,OAAO;AAAA,UACV;AAAA,QACD,CAAE;AAGF,eAAO,cAAe,UAAU,SAAUA,IAAI;AAG7C,cAAKA,GAAE,eAAeA,GAAE,aAAc;AACrC,gBAAI,QAAQ;AACZ,mBAAO;AAAA,cACN,MAAM,SAAUlB,IAAG,UAAW;AAC7B,yBAAS,OAAQ,UAAW,EAC1B,KAAMkB,GAAE,eAAe,CAAC,CAAE,EAC1B,KAAM,EAAE,SAASA,GAAE,eAAe,KAAKA,GAAE,IAAI,CAAE,EAC/C,GAAI,cAAc,WAAW,SAAU,KAAM;AAC7C,yBAAO,OAAO;AACd,6BAAW;AACX,sBAAK,KAAM;AACV,6BAAU,IAAI,SAAS,UAAU,MAAM,KAAK,IAAI,IAAK;AAAA,kBACtD;AAAA,gBACD,CAAE;AAGH,gBAAAnD,UAAS,KAAK,YAAa,OAAQ,CAAE,CAAE;AAAA,cACxC;AAAA,cACA,OAAO,WAAW;AACjB,oBAAK,UAAW;AACf,2BAAS;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAE;AAKF,YAAI,eAAe,CAAC,GACnB,SAAS;AAGV,eAAO,UAAW;AAAA,UACjB,OAAO;AAAA,UACP,eAAe,WAAW;AACzB,gBAAI,WAAW,aAAa,IAAI,KAAO,OAAO,UAAU,MAAQ,MAAM;AACtE,iBAAM,QAAS,IAAI;AACnB,mBAAO;AAAA,UACR;AAAA,QACD,CAAE;AAGF,eAAO,cAAe,cAAc,SAAUmD,IAAG,kBAAkB,OAAQ;AAE1E,cAAI,cAAc,aAAa,mBAC9B,WAAWA,GAAE,UAAU,UAAW,OAAO,KAAMA,GAAE,GAAI,IACpD,QACA,OAAOA,GAAE,SAAS,aACfA,GAAE,eAAe,IACjB,QAAS,mCAAoC,MAAM,KACrD,OAAO,KAAMA,GAAE,IAAK,KAAK;AAI5B,cAAK,YAAYA,GAAE,UAAW,CAAE,MAAM,SAAU;AAG/C,2BAAeA,GAAE,gBAAgB,WAAYA,GAAE,aAAc,IAC5DA,GAAE,cAAc,IAChBA,GAAE;AAGH,gBAAK,UAAW;AACf,cAAAA,GAAG,QAAS,IAAIA,GAAG,QAAS,EAAE,QAAS,QAAQ,OAAO,YAAa;AAAA,YACpE,WAAYA,GAAE,UAAU,OAAQ;AAC/B,cAAAA,GAAE,QAAS,OAAO,KAAMA,GAAE,GAAI,IAAI,MAAM,OAAQA,GAAE,QAAQ,MAAM;AAAA,YACjE;AAGA,YAAAA,GAAE,WAAY,aAAc,IAAI,WAAW;AAC1C,kBAAK,CAAC,mBAAoB;AACzB,uBAAO,MAAO,eAAe,iBAAkB;AAAA,cAChD;AACA,qBAAO,kBAAmB,CAAE;AAAA,YAC7B;AAGA,YAAAA,GAAE,UAAW,CAAE,IAAI;AAGnB,0BAAczD,QAAQ,YAAa;AACnC,YAAAA,QAAQ,YAAa,IAAI,WAAW;AACnC,kCAAoB;AAAA,YACrB;AAGA,kBAAM,OAAQ,WAAW;AAGxB,kBAAK,gBAAgB,QAAY;AAChC,uBAAQA,OAAO,EAAE,WAAY,YAAa;AAAA,cAG3C,OAAO;AACN,gBAAAA,QAAQ,YAAa,IAAI;AAAA,cAC1B;AAGA,kBAAKyD,GAAG,YAAa,GAAI;AAGxB,gBAAAA,GAAE,gBAAgB,iBAAiB;AAGnC,6BAAa,KAAM,YAAa;AAAA,cACjC;AAGA,kBAAK,qBAAqB,WAAY,WAAY,GAAI;AACrD,4BAAa,kBAAmB,CAAE,CAAE;AAAA,cACrC;AAEA,kCAAoB,cAAc;AAAA,YACnC,CAAE;AAGF,mBAAO;AAAA,UACR;AAAA,QACD,CAAE;AAUF,gBAAQ,qBAAuB,WAAW;AACzC,cAAI,OAAOnD,UAAS,eAAe,mBAAoB,EAAG,EAAE;AAC5D,eAAK,YAAY;AACjB,iBAAO,KAAK,WAAW,WAAW;AAAA,QACnC,EAAI;AAOJ,eAAO,YAAY,SAAU,MAAM,SAAS,aAAc;AACzD,cAAK,OAAO,SAAS,UAAW;AAC/B,mBAAO,CAAC;AAAA,UACT;AACA,cAAK,OAAO,YAAY,WAAY;AACnC,0BAAc;AACd,sBAAU;AAAA,UACX;AAEA,cAAI,MAAM,QAAQ;AAElB,cAAK,CAAC,SAAU;AAIf,gBAAK,QAAQ,oBAAqB;AACjC,wBAAUA,UAAS,eAAe,mBAAoB,EAAG;AAKzD,qBAAO,QAAQ,cAAe,MAAO;AACrC,mBAAK,OAAOA,UAAS,SAAS;AAC9B,sBAAQ,KAAK,YAAa,IAAK;AAAA,YAChC,OAAO;AACN,wBAAUA;AAAA,YACX;AAAA,UACD;AAEA,mBAAS,WAAW,KAAM,IAAK;AAC/B,oBAAU,CAAC,eAAe,CAAC;AAG3B,cAAK,QAAS;AACb,mBAAO,CAAE,QAAQ,cAAe,OAAQ,CAAE,CAAE,CAAE;AAAA,UAC/C;AAEA,mBAAS,cAAe,CAAE,IAAK,GAAG,SAAS,OAAQ;AAEnD,cAAK,WAAW,QAAQ,QAAS;AAChC,mBAAQ,OAAQ,EAAE,OAAO;AAAA,UAC1B;AAEA,iBAAO,OAAO,MAAO,CAAC,GAAG,OAAO,UAAW;AAAA,QAC5C;AAMA,eAAO,GAAG,OAAO,SAAU,KAAK,QAAQ,UAAW;AAClD,cAAI,UAAU,MAAM,UACnB+B,QAAO,MACP,MAAM,IAAI,QAAS,GAAI;AAExB,cAAK,MAAM,IAAK;AACf,uBAAW,iBAAkB,IAAI,MAAO,GAAI,CAAE;AAC9C,kBAAM,IAAI,MAAO,GAAG,GAAI;AAAA,UACzB;AAGA,cAAK,WAAY,MAAO,GAAI;AAG3B,uBAAW;AACX,qBAAS;AAAA,UAGV,WAAY,UAAU,OAAO,WAAW,UAAW;AAClD,mBAAO;AAAA,UACR;AAGA,cAAKA,MAAK,SAAS,GAAI;AACtB,mBAAO,KAAM;AAAA,cACZ;AAAA;AAAA;AAAA;AAAA,cAKA,MAAM,QAAQ;AAAA,cACd,UAAU;AAAA,cACV,MAAM;AAAA,YACP,CAAE,EAAE,KAAM,SAAU,cAAe;AAGlC,yBAAW;AAEX,cAAAA,MAAK,KAAM;AAAA;AAAA;AAAA,gBAIV,OAAQ,OAAQ,EAAE,OAAQ,OAAO,UAAW,YAAa,CAAE,EAAE,KAAM,QAAS;AAAA;AAAA;AAAA,gBAG5E;AAAA,eAAa;AAAA,YAKf,CAAE,EAAE,OAAQ,YAAY,SAAU,OAAO,QAAS;AACjD,cAAAA,MAAK,KAAM,WAAW;AACrB,yBAAS,MAAO,MAAM,YAAY,CAAE,MAAM,cAAc,QAAQ,KAAM,CAAE;AAAA,cACzE,CAAE;AAAA,YACH,CAAE;AAAA,UACH;AAEA,iBAAO;AAAA,QACR;AAKA,eAAO,KAAK,QAAQ,WAAW,SAAU,MAAO;AAC/C,iBAAO,OAAO,KAAM,OAAO,QAAQ,SAAUZ,KAAK;AACjD,mBAAO,SAASA,IAAG;AAAA,UACpB,CAAE,EAAE;AAAA,QACL;AAKA,eAAO,SAAS;AAAA,UACf,WAAW,SAAU,MAAM,SAASlB,IAAI;AACvC,gBAAI,aAAa,SAAS,WAAW,QAAQ,WAAW,YAAY,mBACnE,WAAW,OAAO,IAAK,MAAM,UAAW,GACxC,UAAU,OAAQ,IAAK,GACvB,QAAQ,CAAC;AAGV,gBAAK,aAAa,UAAW;AAC5B,mBAAK,MAAM,WAAW;AAAA,YACvB;AAEA,wBAAY,QAAQ,OAAO;AAC3B,wBAAY,OAAO,IAAK,MAAM,KAAM;AACpC,yBAAa,OAAO,IAAK,MAAM,MAAO;AACtC,iCAAsB,aAAa,cAAc,aAAa,aAC3D,YAAY,YAAa,QAAS,MAAO,IAAI;AAIhD,gBAAK,mBAAoB;AACxB,4BAAc,QAAQ,SAAS;AAC/B,uBAAS,YAAY;AACrB,wBAAU,YAAY;AAAA,YAEvB,OAAO;AACN,uBAAS,WAAY,SAAU,KAAK;AACpC,wBAAU,WAAY,UAAW,KAAK;AAAA,YACvC;AAEA,gBAAK,WAAY,OAAQ,GAAI;AAG5B,wBAAU,QAAQ,KAAM,MAAMA,IAAG,OAAO,OAAQ,CAAC,GAAG,SAAU,CAAE;AAAA,YACjE;AAEA,gBAAK,QAAQ,OAAO,MAAO;AAC1B,oBAAM,MAAQ,QAAQ,MAAM,UAAU,MAAQ;AAAA,YAC/C;AACA,gBAAK,QAAQ,QAAQ,MAAO;AAC3B,oBAAM,OAAS,QAAQ,OAAO,UAAU,OAAS;AAAA,YAClD;AAEA,gBAAK,WAAW,SAAU;AACzB,sBAAQ,MAAM,KAAM,MAAM,KAAM;AAAA,YAEjC,OAAO;AACN,sBAAQ,IAAK,KAAM;AAAA,YACpB;AAAA,UACD;AAAA,QACD;AAEA,eAAO,GAAG,OAAQ;AAAA;AAAA,UAGjB,QAAQ,SAAU,SAAU;AAG3B,gBAAK,UAAU,QAAS;AACvB,qBAAO,YAAY,SAClB,OACA,KAAK,KAAM,SAAUA,IAAI;AACxB,uBAAO,OAAO,UAAW,MAAM,SAASA,EAAE;AAAA,cAC3C,CAAE;AAAA,YACJ;AAEA,gBAAI,MAAM,KACT,OAAO,KAAM,CAAE;AAEhB,gBAAK,CAAC,MAAO;AACZ;AAAA,YACD;AAMA,gBAAK,CAAC,KAAK,eAAe,EAAE,QAAS;AACpC,qBAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AAAA,YAC1B;AAGA,mBAAO,KAAK,sBAAsB;AAClC,kBAAM,KAAK,cAAc;AACzB,mBAAO;AAAA,cACN,KAAK,KAAK,MAAM,IAAI;AAAA,cACpB,MAAM,KAAK,OAAO,IAAI;AAAA,YACvB;AAAA,UACD;AAAA;AAAA;AAAA,UAIA,UAAU,WAAW;AACpB,gBAAK,CAAC,KAAM,CAAE,GAAI;AACjB;AAAA,YACD;AAEA,gBAAI,cAAcqD,SAAQ,KACzB,OAAO,KAAM,CAAE,GACf,eAAe,EAAE,KAAK,GAAG,MAAM,EAAE;AAGlC,gBAAK,OAAO,IAAK,MAAM,UAAW,MAAM,SAAU;AAGjD,cAAAA,UAAS,KAAK,sBAAsB;AAAA,YAErC,OAAO;AACN,cAAAA,UAAS,KAAK,OAAO;AAIrB,oBAAM,KAAK;AACX,6BAAe,KAAK,gBAAgB,IAAI;AACxC,qBAAQ,iBACL,iBAAiB,IAAI,QAAQ,iBAAiB,IAAI,oBACpD,OAAO,IAAK,cAAc,UAAW,MAAM,UAAW;AAEtD,+BAAe,aAAa;AAAA,cAC7B;AACA,kBAAK,gBAAgB,iBAAiB,QAAQ,aAAa,aAAa,GAAI;AAG3E,+BAAe,OAAQ,YAAa,EAAE,OAAO;AAC7C,6BAAa,OAAO,OAAO,IAAK,cAAc,kBAAkB,IAAK;AACrE,6BAAa,QAAQ,OAAO,IAAK,cAAc,mBAAmB,IAAK;AAAA,cACxE;AAAA,YACD;AAGA,mBAAO;AAAA,cACN,KAAKA,QAAO,MAAM,aAAa,MAAM,OAAO,IAAK,MAAM,aAAa,IAAK;AAAA,cACzE,MAAMA,QAAO,OAAO,aAAa,OAAO,OAAO,IAAK,MAAM,cAAc,IAAK;AAAA,YAC9E;AAAA,UACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAYA,cAAc,WAAW;AACxB,mBAAO,KAAK,IAAK,WAAW;AAC3B,kBAAI,eAAe,KAAK;AAExB,qBAAQ,gBAAgB,OAAO,IAAK,cAAc,UAAW,MAAM,UAAW;AAC7E,+BAAe,aAAa;AAAA,cAC7B;AAEA,qBAAO,gBAAgB;AAAA,YACxB,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAGF,eAAO,KAAM,EAAE,YAAY,eAAe,WAAW,cAAc,GAAG,SAAU,QAAQ,MAAO;AAC9F,cAAIC,OAAM,kBAAkB;AAE5B,iBAAO,GAAI,MAAO,IAAI,SAAU,KAAM;AACrC,mBAAO,OAAQ,MAAM,SAAU,MAAMC,SAAQJ,MAAM;AAGlD,kBAAI;AACJ,kBAAK,SAAU,IAAK,GAAI;AACvB,sBAAM;AAAA,cACP,WAAY,KAAK,aAAa,GAAI;AACjC,sBAAM,KAAK;AAAA,cACZ;AAEA,kBAAKA,SAAQ,QAAY;AACxB,uBAAO,MAAM,IAAK,IAAK,IAAI,KAAMI,OAAO;AAAA,cACzC;AAEA,kBAAK,KAAM;AACV,oBAAI;AAAA,kBACH,CAACD,OAAMH,OAAM,IAAI;AAAA,kBACjBG,OAAMH,OAAM,IAAI;AAAA,gBACjB;AAAA,cAED,OAAO;AACN,qBAAMI,OAAO,IAAIJ;AAAA,cAClB;AAAA,YACD,GAAG,QAAQ,KAAK,UAAU,MAAO;AAAA,UAClC;AAAA,QACD,CAAE;AAQF,eAAO,KAAM,CAAE,OAAO,MAAO,GAAG,SAAU,IAAI,MAAO;AACpD,iBAAO,SAAU,IAAK,IAAI;AAAA,YAAc,QAAQ;AAAA,YAC/C,SAAU,MAAM,UAAW;AAC1B,kBAAK,UAAW;AACf,2BAAW,OAAQ,MAAM,IAAK;AAG9B,uBAAO,UAAU,KAAM,QAAS,IAC/B,OAAQ,IAAK,EAAE,SAAS,EAAG,IAAK,IAAI,OACpC;AAAA,cACF;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAE;AAIF,eAAO,KAAM,EAAE,QAAQ,UAAU,OAAO,QAAQ,GAAG,SAAU,MAAM,MAAO;AACzE,iBAAO,KAAM;AAAA,YACZ,SAAS,UAAU;AAAA,YACnB,SAAS;AAAA,YACT,IAAI,UAAU;AAAA,UACf,GAAG,SAAU,cAAc,UAAW;AAGrC,mBAAO,GAAI,QAAS,IAAI,SAAU,QAAQ,OAAQ;AACjD,kBAAI,YAAY,UAAU,WAAY,gBAAgB,OAAO,WAAW,YACvE,QAAQ,iBAAkB,WAAW,QAAQ,UAAU,OAAO,WAAW;AAE1E,qBAAO,OAAQ,MAAM,SAAU,MAAMK,OAAMrB,QAAQ;AAClD,oBAAI;AAEJ,oBAAK,SAAU,IAAK,GAAI;AAGvB,yBAAO,SAAS,QAAS,OAAQ,MAAM,IACtC,KAAM,UAAU,IAAK,IACrB,KAAK,SAAS,gBAAiB,WAAW,IAAK;AAAA,gBACjD;AAGA,oBAAK,KAAK,aAAa,GAAI;AAC1B,wBAAM,KAAK;AAIX,yBAAO,KAAK;AAAA,oBACX,KAAK,KAAM,WAAW,IAAK;AAAA,oBAAG,IAAK,WAAW,IAAK;AAAA,oBACnD,KAAK,KAAM,WAAW,IAAK;AAAA,oBAAG,IAAK,WAAW,IAAK;AAAA,oBACnD,IAAK,WAAW,IAAK;AAAA,kBACtB;AAAA,gBACD;AAEA,uBAAOA,WAAU;AAAA;AAAA,kBAGhB,OAAO,IAAK,MAAMqB,OAAM,KAAM;AAAA;AAAA;AAAA,kBAG9B,OAAO,MAAO,MAAMA,OAAMrB,QAAO,KAAM;AAAA;AAAA,cACzC,GAAG,MAAM,YAAY,SAAS,QAAW,SAAU;AAAA,YACpD;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAGF,eAAO,KAAM;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD,GAAG,SAAU,IAAI,MAAO;AACvB,iBAAO,GAAI,IAAK,IAAI,SAAUjB,KAAK;AAClC,mBAAO,KAAK,GAAI,MAAMA,GAAG;AAAA,UAC1B;AAAA,QACD,CAAE;AAKF,eAAO,GAAG,OAAQ;AAAA,UAEjB,MAAM,SAAU,OAAO,MAAMA,KAAK;AACjC,mBAAO,KAAK,GAAI,OAAO,MAAM,MAAMA,GAAG;AAAA,UACvC;AAAA,UACA,QAAQ,SAAU,OAAOA,KAAK;AAC7B,mBAAO,KAAK,IAAK,OAAO,MAAMA,GAAG;AAAA,UAClC;AAAA,UAEA,UAAU,SAAU,UAAU,OAAO,MAAMA,KAAK;AAC/C,mBAAO,KAAK,GAAI,OAAO,UAAU,MAAMA,GAAG;AAAA,UAC3C;AAAA,UACA,YAAY,SAAU,UAAU,OAAOA,KAAK;AAG3C,mBAAO,UAAU,WAAW,IAC3B,KAAK,IAAK,UAAU,IAAK,IACzB,KAAK,IAAK,OAAO,YAAY,MAAMA,GAAG;AAAA,UACxC;AAAA,UAEA,OAAO,SAAU,QAAQ,OAAQ;AAChC,mBAAO,KAAK,WAAY,MAAO,EAAE,WAAY,SAAS,MAAO;AAAA,UAC9D;AAAA,QACD,CAAE;AAEF,eAAO;AAAA,UACJ,wLAE0D,MAAO,GAAI;AAAA,UACvE,SAAU,IAAI,MAAO;AAGpB,mBAAO,GAAI,IAAK,IAAI,SAAU,MAAMA,KAAK;AACxC,qBAAO,UAAU,SAAS,IACzB,KAAK,GAAI,MAAM,MAAM,MAAMA,GAAG,IAC9B,KAAK,QAAS,IAAK;AAAA,YACrB;AAAA,UACD;AAAA,QACD;AAOA,YAAI,QAAQ;AAMZ,eAAO,QAAQ,SAAUA,KAAI,SAAU;AACtC,cAAI,KAAK,MAAM;AAEf,cAAK,OAAO,YAAY,UAAW;AAClC,kBAAMA,IAAI,OAAQ;AAClB,sBAAUA;AACV,YAAAA,MAAK;AAAA,UACN;AAIA,cAAK,CAAC,WAAYA,GAAG,GAAI;AACxB,mBAAO;AAAA,UACR;AAGA,iBAAOxB,OAAM,KAAM,WAAW,CAAE;AAChC,kBAAQ,WAAW;AAClB,mBAAOwB,IAAG,MAAO,WAAW,MAAM,KAAK,OAAQxB,OAAM,KAAM,SAAU,CAAE,CAAE;AAAA,UAC1E;AAGA,gBAAM,OAAOwB,IAAG,OAAOA,IAAG,QAAQ,OAAO;AAEzC,iBAAO;AAAA,QACR;AAEA,eAAO,YAAY,SAAU,MAAO;AACnC,cAAK,MAAO;AACX,mBAAO;AAAA,UACR,OAAO;AACN,mBAAO,MAAO,IAAK;AAAA,UACpB;AAAA,QACD;AACA,eAAO,UAAU,MAAM;AACvB,eAAO,YAAY,KAAK;AACxB,eAAO,WAAW;AAClB,eAAO,aAAa;AACpB,eAAO,WAAW;AAClB,eAAO,YAAY;AACnB,eAAO,OAAO;AAEd,eAAO,MAAM,KAAK;AAElB,eAAO,YAAY,SAAU,KAAM;AAKlC,cAAI,OAAO,OAAO,KAAM,GAAI;AAC5B,kBAAS,SAAS,YAAY,SAAS;AAAA;AAAA;AAAA,UAKtC,CAAC,MAAO,MAAM,WAAY,GAAI,CAAE;AAAA,QAClC;AAEA,eAAO,OAAO,SAAU,MAAO;AAC9B,iBAAO,QAAQ,OACd,MACE,OAAO,IAAK,QAAS,OAAO,EAAG;AAAA,QACnC;AAiBA,YAAK,OAAO,WAAW,cAAc,OAAO,KAAM;AACjD,iBAAQ,UAAU,CAAC,GAAG,WAAW;AAChC,mBAAO;AAAA,UACR,CAAE;AAAA,QACH;AAKA,YAGC,UAAUzB,QAAO,QAGjB,KAAKA,QAAO;AAEb,eAAO,aAAa,SAAU,MAAO;AACpC,cAAKA,QAAO,MAAM,QAAS;AAC1B,YAAAA,QAAO,IAAI;AAAA,UACZ;AAEA,cAAK,QAAQA,QAAO,WAAW,QAAS;AACvC,YAAAA,QAAO,SAAS;AAAA,UACjB;AAEA,iBAAO;AAAA,QACR;AAKA,YAAK,OAAO,aAAa,aAAc;AACtC,UAAAA,QAAO,SAASA,QAAO,IAAI;AAAA,QAC5B;AAKA,eAAO;AAAA,MACP,CAAE;AAAA;AAAA;;;AChoVF;AAAA;AAaA,OAAC,SAAUgE,SAAQ;AACf,QAAAA,QAAO,CAAC,QAAQ,GAAG,SAAUC,IAAG;AAC5B,iBAAQ,2BAAY;AAChB,gBAAI;AACJ,gBAAI;AACJ,gBAAI,UAAU;AACd,gBAAI,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS;AAAA,YACb;AAEA,gBAAIC,UAAS;AAAA,cACT;AAAA,cACA;AAAA,cACA,OAAOC;AAAA,cACP;AAAA,cACA;AAAA,cACA,SAAS,CAAC;AAAA,cACV;AAAA,cACA;AAAA,cACA,SAAS;AAAA,cACT;AAAA,YACJ;AAEA,gBAAI;AAEJ,mBAAOD;AAIP,qBAASC,OAAM,SAAS,OAAO,iBAAiB;AAC5C,qBAAO,OAAO;AAAA,gBACV,MAAM,UAAU;AAAA,gBAChB,WAAW,WAAW,EAAE,YAAY;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ,CAAC;AAAA,YACL;AAEA,qBAAS,aAAa,SAAS,QAAQ;AACnC,kBAAI,CAAC,SAAS;AAAE,0BAAU,WAAW;AAAA,cAAG;AACxC,2BAAaF,GAAE,MAAM,QAAQ,WAAW;AACxC,kBAAI,WAAW,QAAQ;AACnB,uBAAO;AAAA,cACX;AACA,kBAAI,QAAQ;AACR,6BAAa,gBAAgB,OAAO;AAAA,cACxC;AACA,qBAAO;AAAA,YACX;AAEA,qBAAS,KAAK,SAAS,OAAO,iBAAiB;AAC3C,qBAAO,OAAO;AAAA,gBACV,MAAM,UAAU;AAAA,gBAChB,WAAW,WAAW,EAAE,YAAY;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ,CAAC;AAAA,YACL;AAEA,qBAAS,UAAU,UAAU;AACzB,yBAAW;AAAA,YACf;AAEA,qBAAS,QAAQ,SAAS,OAAO,iBAAiB;AAC9C,qBAAO,OAAO;AAAA,gBACV,MAAM,UAAU;AAAA,gBAChB,WAAW,WAAW,EAAE,YAAY;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ,CAAC;AAAA,YACL;AAEA,qBAAS,QAAQ,SAAS,OAAO,iBAAiB;AAC9C,qBAAO,OAAO;AAAA,gBACV,MAAM,UAAU;AAAA,gBAChB,WAAW,WAAW,EAAE,YAAY;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ,CAAC;AAAA,YACL;AAEA,qBAAS,MAAM,eAAe,cAAc;AACxC,kBAAI,UAAU,WAAW;AACzB,kBAAI,CAAC,YAAY;AAAE,6BAAa,OAAO;AAAA,cAAG;AAC1C,kBAAI,CAAC,WAAW,eAAe,SAAS,YAAY,GAAG;AACnD,+BAAe,OAAO;AAAA,cAC1B;AAAA,YACJ;AAEA,qBAAS,OAAO,eAAe;AAC3B,kBAAI,UAAU,WAAW;AACzB,kBAAI,CAAC,YAAY;AAAE,6BAAa,OAAO;AAAA,cAAG;AAC1C,kBAAI,iBAAiBA,GAAE,UAAU,aAAa,EAAE,WAAW,GAAG;AAC1D,4BAAY,aAAa;AACzB;AAAA,cACJ;AACA,kBAAI,WAAW,SAAS,EAAE,QAAQ;AAC9B,2BAAW,OAAO;AAAA,cACtB;AAAA,YACJ;AAIA,qBAAS,eAAgB,SAAS;AAC9B,kBAAI,gBAAgB,WAAW,SAAS;AACxC,uBAASG,KAAI,cAAc,SAAS,GAAGA,MAAK,GAAGA,MAAK;AAChD,2BAAWH,GAAE,cAAcG,EAAC,CAAC,GAAG,OAAO;AAAA,cAC3C;AAAA,YACJ;AAEA,qBAAS,WAAY,eAAe,SAAS,cAAc;AACvD,kBAAI,QAAQ,gBAAgB,aAAa,QAAQ,aAAa,QAAQ;AACtE,kBAAI,kBAAkB,SAASH,GAAE,UAAU,aAAa,EAAE,WAAW,IAAI;AACrE,8BAAc,QAAQ,UAAU,EAAE;AAAA,kBAC9B,UAAU,QAAQ;AAAA,kBAClB,QAAQ,QAAQ;AAAA,kBAChB,UAAU,WAAY;AAAE,gCAAY,aAAa;AAAA,kBAAG;AAAA,gBACxD,CAAC;AACD,uBAAO;AAAA,cACX;AACA,qBAAO;AAAA,YACX;AAEA,qBAAS,gBAAgB,SAAS;AAC9B,2BAAaA,GAAE,QAAQ,EAClB,KAAK,MAAM,QAAQ,WAAW,EAC9B,SAAS,QAAQ,aAAa;AAEnC,yBAAW,SAASA,GAAE,QAAQ,MAAM,CAAC;AACrC,qBAAO;AAAA,YACX;AAEA,qBAAS,cAAc;AACnB,qBAAO;AAAA,gBACH,cAAc;AAAA,gBACd,YAAY;AAAA,gBACZ,aAAa;AAAA,gBACb,OAAO;AAAA,gBAEP,YAAY;AAAA;AAAA,gBACZ,cAAc;AAAA,gBACd,YAAY;AAAA;AAAA,gBACZ,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,cAAc;AAAA,gBACd,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,aAAa;AAAA,gBACb,eAAe;AAAA,gBACf,aAAa;AAAA,gBACb,cAAc;AAAA,gBAEd,iBAAiB;AAAA,gBACjB,aAAa;AAAA,kBACT,OAAO;AAAA,kBACP,MAAM;AAAA,kBACN,SAAS;AAAA,kBACT,SAAS;AAAA,gBACb;AAAA,gBACA,WAAW;AAAA,gBACX,eAAe;AAAA,gBACf,SAAS;AAAA;AAAA,gBACT,YAAY;AAAA,gBACZ,cAAc;AAAA,gBACd,YAAY;AAAA,gBACZ,QAAQ;AAAA,gBACR,WAAW;AAAA,gBACX,YAAY;AAAA,gBACZ,aAAa;AAAA,gBACb,mBAAmB;AAAA,gBACnB,aAAa;AAAA,gBACb,eAAe;AAAA,gBACf,KAAK;AAAA,cACT;AAAA,YACJ;AAEA,qBAAS,QAAQ,MAAM;AACnB,kBAAI,CAAC,UAAU;AAAE;AAAA,cAAQ;AACzB,uBAAS,IAAI;AAAA,YACjB;AAEA,qBAAS,OAAO,KAAK;AACjB,kBAAI,UAAU,WAAW;AACzB,kBAAI,YAAY,IAAI,aAAa,QAAQ;AAEzC,kBAAI,OAAQ,IAAI,oBAAqB,aAAa;AAC9C,0BAAUA,GAAE,OAAO,SAAS,IAAI,eAAe;AAC/C,4BAAY,IAAI,gBAAgB,aAAa;AAAA,cACjD;AAEA,kBAAI,WAAW,SAAS,GAAG,GAAG;AAAE;AAAA,cAAQ;AAExC;AAEA,2BAAa,aAAa,SAAS,IAAI;AAEvC,kBAAI,aAAa;AACjB,kBAAI,gBAAgBA,GAAE,QAAQ;AAC9B,kBAAI,gBAAgBA,GAAE,QAAQ;AAC9B,kBAAI,kBAAkBA,GAAE,QAAQ;AAChC,kBAAI,mBAAmBA,GAAE,QAAQ;AACjC,kBAAI,gBAAgBA,GAAE,QAAQ,SAAS;AACvC,kBAAI,cAAc;AAAA,gBACd,YAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,aAAa;AAAA,cACjB;AACA,kBAAI,WAAW;AAAA,gBACX;AAAA,gBACA,OAAO;AAAA,gBACP,WAAW,oBAAI,KAAK;AAAA,gBACpB;AAAA,gBACA;AAAA,cACJ;AAEA,+BAAiB;AAEjB,2BAAa;AAEb,2BAAa;AAEb,sBAAQ,QAAQ;AAEhB,kBAAI,QAAQ,SAAS,SAAS;AAC1B,wBAAQ,IAAI,QAAQ;AAAA,cACxB;AAEA,qBAAO;AAEP,uBAAS,WAAW,QAAQ;AACxB,oBAAI,UAAU,MAAM;AAChB,2BAAS;AAAA,gBACb;AAEA,uBAAO,OACF,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM;AAAA,cAC7B;AAEA,uBAAS,mBAAmB;AACxB,wBAAQ;AACR,yBAAS;AACT,2BAAW;AACX,+BAAe;AACf,+BAAe;AACf,uBAAO;AACP,4BAAY;AACZ,wBAAQ;AAAA,cACZ;AAEA,uBAAS,UAAU;AACf,oBAAI,YAAY;AAChB,wBAAQ,IAAI,WAAW;AAAA,kBACnB,KAAK;AAAA,kBACL,KAAK;AACD,gCAAa;AACb;AAAA,kBACJ;AACI,gCAAY;AAAA,gBACpB;AACA,8BAAc,KAAK,aAAa,SAAS;AAAA,cAC7C;AAEA,uBAAS,eAAe;AACpB,oBAAI,QAAQ,cAAc;AACtB,gCAAc,MAAM,aAAa,gBAAgB;AAAA,gBACrD;AAEA,oBAAI,CAAC,QAAQ,WAAW,QAAQ,cAAc;AAC1C,gCAAc,MAAM,SAAS;AAAA,gBACjC;AAEA,oBAAI,QAAQ,eAAe,eAAe;AACtC,gCAAc,MAAM,SAAU,OAAO;AACjC,wBAAI,MAAM,iBAAiB;AACvB,4BAAM,gBAAgB;AAAA,oBAC1B,WAAW,MAAM,iBAAiB,UAAa,MAAM,iBAAiB,MAAM;AACxE,4BAAM,eAAe;AAAA,oBACzB;AAEA,wBAAI,QAAQ,cAAc;AACtB,8BAAQ,aAAa,KAAK;AAAA,oBAC9B;AAEA,8BAAU,IAAI;AAAA,kBAClB,CAAC;AAAA,gBACL;AAEA,oBAAI,QAAQ,SAAS;AACjB,gCAAc,MAAM,SAAU,OAAO;AACjC,4BAAQ,QAAQ,KAAK;AACrB,8BAAU;AAAA,kBACd,CAAC;AAAA,gBACL;AAAA,cACJ;AAEA,uBAAS,eAAe;AACpB,8BAAc,KAAK;AAEnB,8BAAc,QAAQ,UAAU;AAAA,kBAC5B,EAAC,UAAU,QAAQ,cAAc,QAAQ,QAAQ,YAAY,UAAU,QAAQ,QAAO;AAAA,gBAC1F;AAEA,oBAAI,QAAQ,UAAU,GAAG;AACrB,+BAAa,WAAW,WAAW,QAAQ,OAAO;AAClD,8BAAY,cAAc,WAAW,QAAQ,OAAO;AACpD,8BAAY,WAAU,oBAAI,KAAK,GAAE,QAAQ,IAAI,YAAY;AACzD,sBAAI,QAAQ,aAAa;AACrB,gCAAY,aAAa,YAAY,gBAAgB,EAAE;AAAA,kBAC3D;AAAA,gBACJ;AAAA,cACJ;AAEA,uBAAS,UAAU;AACf,oBAAI,IAAI,WAAW;AACf,gCAAc,SAAS,QAAQ,UAAU,EAAE,SAAS,SAAS;AAAA,gBACjE;AAAA,cACJ;AAEA,uBAAS,cAAc;AACnB,oBAAI,QAAQ,aAAa;AACrB,6BAAW,QAAQ,aAAa;AAAA,gBACpC,OAAO;AACH,6BAAW,OAAO,aAAa;AAAA,gBACnC;AAAA,cACJ;AAEA,uBAAS,WAAW;AAChB,oBAAI,IAAI,OAAO;AACX,sBAAI,SAAS,IAAI;AACjB,sBAAI,QAAQ,YAAY;AACpB,6BAAS,WAAW,IAAI,KAAK;AAAA,kBACjC;AACA,gCAAc,OAAO,MAAM,EAAE,SAAS,QAAQ,UAAU;AACxD,gCAAc,OAAO,aAAa;AAAA,gBACtC;AAAA,cACJ;AAEA,uBAAS,aAAa;AAClB,oBAAI,IAAI,SAAS;AACb,sBAAI,SAAS,IAAI;AACjB,sBAAI,QAAQ,YAAY;AACpB,6BAAS,WAAW,IAAI,OAAO;AAAA,kBACnC;AACA,kCAAgB,OAAO,MAAM,EAAE,SAAS,QAAQ,YAAY;AAC5D,gCAAc,OAAO,eAAe;AAAA,gBACxC;AAAA,cACJ;AAEA,uBAAS,iBAAiB;AACtB,oBAAI,QAAQ,aAAa;AACrB,gCAAc,SAAS,QAAQ,UAAU,EAAE,KAAK,QAAQ,QAAQ;AAChE,gCAAc,QAAQ,aAAa;AAAA,gBACvC;AAAA,cACJ;AAEA,uBAAS,iBAAiB;AACtB,oBAAI,QAAQ,aAAa;AACrB,mCAAiB,SAAS,QAAQ,aAAa;AAC/C,gCAAc,QAAQ,gBAAgB;AAAA,gBAC1C;AAAA,cACJ;AAEA,uBAAS,SAAS;AACd,oBAAI,QAAQ,KAAK;AACb,gCAAc,SAAS,KAAK;AAAA,gBAChC;AAAA,cACJ;AAEA,uBAAS,WAAWI,UAASC,MAAK;AAC9B,oBAAID,SAAQ,mBAAmB;AAC3B,sBAAIC,KAAI,YAAY,eAAe;AAC/B,2BAAO;AAAA,kBACX,OAAO;AACH,oCAAgBA,KAAI;AAAA,kBACxB;AAAA,gBACJ;AACA,uBAAO;AAAA,cACX;AAEA,uBAAS,UAAU,UAAU;AACzB,oBAAI,SAAS,YAAY,QAAQ,gBAAgB,QAAQ,QAAQ,cAAc,QAAQ;AACvF,oBAAIC,YAAW,YAAY,QAAQ,kBAAkB,QACjD,QAAQ,gBAAgB,QAAQ;AACpC,oBAAI,SAAS,YAAY,QAAQ,gBAAgB,QAAQ,QAAQ,cAAc,QAAQ;AACvF,oBAAIN,GAAE,UAAU,aAAa,EAAE,UAAU,CAAC,UAAU;AAChD;AAAA,gBACJ;AACA,6BAAa,YAAY,UAAU;AACnC,uBAAO,cAAc,MAAM,EAAE;AAAA,kBACzB,UAAUM;AAAA,kBACV;AAAA,kBACA,UAAU,WAAY;AAClB,gCAAY,aAAa;AACzB,iCAAa,UAAU;AACvB,wBAAI,QAAQ,YAAY,SAAS,UAAU,UAAU;AACjD,8BAAQ,SAAS;AAAA,oBACrB;AACA,6BAAS,QAAQ;AACjB,6BAAS,UAAU,oBAAI,KAAK;AAC5B,4BAAQ,QAAQ;AAAA,kBACpB;AAAA,gBACJ,CAAC;AAAA,cACL;AAEA,uBAAS,mBAAmB;AACxB,oBAAI,QAAQ,UAAU,KAAK,QAAQ,kBAAkB,GAAG;AACpD,+BAAa,WAAW,WAAW,QAAQ,eAAe;AAC1D,8BAAY,cAAc,WAAW,QAAQ,eAAe;AAC5D,8BAAY,WAAU,oBAAI,KAAK,GAAE,QAAQ,IAAI,YAAY;AAAA,gBAC7D;AAAA,cACJ;AAEA,uBAAS,cAAc;AACnB,6BAAa,UAAU;AACvB,4BAAY,UAAU;AACtB,8BAAc,KAAK,MAAM,IAAI,EAAE,QAAQ,UAAU;AAAA,kBAC7C,EAAC,UAAU,QAAQ,cAAc,QAAQ,QAAQ,WAAU;AAAA,gBAC/D;AAAA,cACJ;AAEA,uBAAS,iBAAiB;AACtB,oBAAI,cAAe,YAAY,WAAW,oBAAI,KAAK,GAAE,QAAQ,KAAM,YAAY,cAAe;AAC9F,iCAAiB,MAAM,aAAa,GAAG;AAAA,cAC3C;AAAA,YACJ;AAEA,qBAAS,aAAa;AAClB,qBAAON,GAAE,OAAO,CAAC,GAAG,YAAY,GAAGC,QAAO,OAAO;AAAA,YACrD;AAEA,qBAAS,YAAY,eAAe;AAChC,kBAAI,CAAC,YAAY;AAAE,6BAAa,aAAa;AAAA,cAAG;AAChD,kBAAI,cAAc,GAAG,UAAU,GAAG;AAC9B;AAAA,cACJ;AACA,4BAAc,OAAO;AACrB,8BAAgB;AAChB,kBAAI,WAAW,SAAS,EAAE,WAAW,GAAG;AACpC,2BAAW,OAAO;AAClB,gCAAgB;AAAA,cACpB;AAAA,YACJ;AAAA,UAEJ,EAAG;AAAA,QACP,CAAC;AAAA,MACL,GAAE,OAAO,WAAW,cAAc,OAAO,MAAM,SAAS,SAAU,MAAM,SAAS;AAC7E,YAAI,OAAO,WAAW,eAAe,OAAO,SAAS;AACjD,iBAAO,UAAU,QAAQ,gBAAiB;AAAA,QAC9C,OAAO;AACH,iBAAO,SAAS,QAAQ,OAAO,MAAM;AAAA,QACzC;AAAA,MACJ,CAAC;AAAA;AAAA;;;AC3dD;AAAA;AAOA,OAAC,SAAS,SAAS;AACjB,YAAI,OAAO,WAAW,YAAY,OAAO,SAAS;AAChD,iBAAO,UAAU,QAAQ;AAAA,QAC3B,OAAO;AACL,iBAAO,eAAe,QAAQ;AAAA,QAChC;AAAA,MACF,GAAE,MAAM;AAER,YAAI,iBAAiB,MAAM;AACzB,cAAIM,aAAY,OAAO;AACvB,cAAIC,oBAAmB,OAAO;AAC9B,cAAIC,qBAAoB,OAAO;AAC/B,cAAIC,gBAAe,OAAO,UAAU;AACpC,cAAIC,YAAW,CAAC,QAAQ,QAAQ;AAC9B,qBAAS,QAAQ;AACf,cAAAJ,WAAU,QAAQ,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,YAAY,KAAK,CAAC;AAAA,UAChE;AACA,cAAIK,eAAc,CAAC,IAAI,MAAM,QAAQ,SAAS;AAC5C,gBAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;AAClE,uBAAS,OAAOH,mBAAkB,IAAI;AACpC,oBAAI,CAACC,cAAa,KAAK,IAAI,GAAG,KAAK,QAAQ;AACzC,kBAAAH,WAAU,IAAI,KAAK,EAAE,KAAK,MAAM,KAAK,GAAG,GAAG,YAAY,EAAE,OAAOC,kBAAiB,MAAM,GAAG,MAAM,KAAK,WAAW,CAAC;AAAA,YACvH;AACA,mBAAO;AAAA,UACT;AACA,cAAI,eAAe,CAAC,QAAQI,aAAYL,WAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AAGzF,cAAI,yBAAyB,CAAC;AAC9B,UAAAI,UAAS,wBAAwB;AAAA,YAC/B,KAAK,MAAM;AAAA,YACX,SAAS,MAAM;AAAA,UACjB,CAAC;AAGD,cAAI,iBAAiB;AAAA,YACnB;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,MAAM,GAAG;AAAA;AAAA,cAEV;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,GAAG;AAAA;AAAA,cAEJ;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,cAChY;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK,KAAK,GAAG;AAAA,YAChB;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK,OAAO;AAAA;AAAA,cAEb;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK,OAAO;AAAA;AAAA,cAEb;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,OAAO,OAAO,KAAK;AAAA,cACpB;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,GAAG;AAAA;AAAA,cAEJ;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,cAC/B;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,QAAQ,SAAS,QAAQ,QAAQ,MAAM;AAAA,cACxC;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,GAAG;AAAA;AAAA,YAEN;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,OAAO,KAAK;AAAA,cACb;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,cAC/C;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,MAAM,GAAG;AAAA;AAAA,cAEV;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,OAAO,KAAK;AAAA,cACb;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK,GAAG;AAAA;AAAA,cAET;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK,GAAG;AAAA;AAAA,YAEX;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,OAAO,KAAK;AAAA,cACb;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,IAAI;AAAA;AAAA,cAEL;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;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AI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,UACN;AACA,cAAI,oBAAoB;AAGxB,cAAI,wBAAwB;AAAA,YAC1B,0BAA0B;AAAA,YAC1B,mBAAmB;AAAA,YACnB,sBAAsB;AAAA,YACtB,mBAAmB;AAAA,YACnB,sBAAsB;AAAA,YACtB,mBAAmB;AAAA,YACnB,iBAAiB;AAAA,YACjB,uBAAuB;AAAA;AAAA,YAEvB,IAAI;AAAA,YACJ,IAAI;AAAA,UACN;AACA,cAAI,oBAAoB;AAGxB,cAAI,kBAAkB,EAAE,GAAG,mBAAmB,GAAG,kBAAkB;AACnE,cAAI,aAAa;AAGjB,cAAI,SAAS;AAAA,YACX,uBAAuB;AAAA,YACvB,wBAAwB;AAAA,YACxB,gBAAgB;AAAA,YAChB,OAAO;AAAA;AAAA,UAET;AACA,cAAI,UAAU;AAAA,YACZ,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,OAAO;AAAA,YACP,MAAM;AAAA,YACN,cAAc;AAAA,YACd,WAAW;AAAA,UACb;AACA,cAAI,OAAO;AAAA,YACT,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,OAAO;AAAA,YACP,OAAO;AAAA,YACP,KAAK;AAAA,YACL,KAAK;AAAA,UACP;AACA,cAAI,cAAc;AAAA,YAChB,OAAO;AAAA,YACP,YAAY;AAAA,UACd;AACA,cAAI,QAAQ;AAAA,YACV,eAAe;AAAA;AAAA,YAEf,kBAAkB;AAAA;AAAA,YAElB,yBAAyB;AAAA;AAAA,YAEzB,oBAAoB;AAAA;AAAA,UAEtB;AACA,cAAI,UAAU;AAAA,YACZ,oBAAoB;AAAA,YACpB,wBAAwB;AAAA,YACxB,WAAW;AAAA,UACb;AACA,cAAI,YAAY;AAAA,YACd,qBAAqB;AAAA,YACrB,0BAA0B;AAAA,UAC5B;AACA,cAAI,SAAS;AAAA,YACX,+BAA+B;AAAA;AAAA,YAE/B,6BAA6B;AAAA;AAAA,YAE7B,0BAA0B;AAAA;AAAA,UAE5B;AACA,cAAI,OAAO;AAAA,YACT,MAAM;AAAA,YACN,MAAM;AAAA;AAAA,UAER;AACA,cAAI,KAAK;AAAA,YACP,MAAM;AAAA,YACN,WAAW;AAAA;AAAA,YAEX,eAAe;AAAA;AAAA,YAEf,oBAAoB;AAAA;AAAA,UAEtB;AACA,cAAI,KAAK;AAAA,YACP,MAAM;AAAA,YACN,WAAW;AAAA;AAAA,UAEb;AACA,cAAI,oBAAoB;AAAA,YACtB,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,KAAK;AAAA,UACP;AACA,cAAI,kBAAkB;AAAA,YACpB,MAAM;AAAA,UACR;AACA,cAAI,YAAY;AAAA,YACd,cAAc;AAAA,YACd,WAAW;AAAA,UACb;AACA,cAAI,OAAO;AAAA,YACT,UAAU;AAAA,YACV,OAAO;AAAA,YACP,UAAU;AAAA,YACV,mBAAmB;AAAA,YACnB,UAAU;AAAA,YACV,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,cAAc;AAAA,YACd,OAAO;AAAA,UACT;AAGA,cAAI,KAAK,CAACC,OAAM,OAAO,WAAW,eAAe,OAAO,OAAO,eAAe,cAAc,OAAO,WAAWA,EAAC,EAAE;AACjH,cAAI,mCAAmC,MAAM;AAC3C,gBAAI,OAAO,cAAc,eAAe,OAAO,WAAW,aAAa;AACrE,oBAAM,oBAAoB,oEAAoE;AAAA,gBAC5F,UAAU;AAAA,cACZ;AACA,oBAAM,mBAAmB,GAAG,oBAAoB;AAChD,oBAAM,kBAAkB,GAAG,qBAAqB;AAChD,oBAAM,kBAAkB,GAAG,mBAAmB;AAC9C,qBAAO,qBAAqB,oBAAoB,mBAAmB;AAAA,YACrE;AACA,mBAAO;AAAA,UACT;AACA,cAAI,WAAW;AAAA;AAAA,YAEb,iBAAiB;AAAA;AAAA,YAEjB,eAAe;AAAA;AAAA,YAEf,iBAAiB,kBAAkB;AAAA;AAAA,YAEnC,gBAAgB;AAAA;AAAA,YAEhB,cAAc;AAAA;AAAA,YAEd,eAAe;AAAA;AAAA,YAEf,mBAAmB;AAAA;AAAA,YAEnB,mBAAmB;AAAA;AAAA,YAEnB,kBAAkB,CAAC;AAAA;AAAA,YAEnB,kBAAkB;AAAA;AAAA,YAElB,iBAAiB;AAAA;AAAA,YAEjB,iBAAiB;AAAA;AAAA,YAEjB,aAAa;AAAA;AAAA,YAEb,aAAa;AAAA;AAAA,YAEb,MAAM,CAAC;AAAA;AAAA,YAEP,gBAAgB;AAAA;AAAA,YAEhB,WAAW;AAAA;AAAA,YAEX,cAAc;AAAA;AAAA,YAEd,eAAe,CAAC;AAAA;AAAA,YAEhB,uBAAuB;AAAA;AAAA,YAEvB,WAAW;AAAA;AAAA,YAEX,kBAAkB;AAAA;AAAA,YAElB,YAAY;AAAA;AAAA,YAEZ,oBAAoB,iCAAiC;AAAA;AAAA,YAErD,uBAAuB,CAAC,QAAQ;AAAA,UAClC;AACA,cAAI,yBAAyB,CAACC,IAAG,0BAA0B;AACzD,gBAAIA,GAAE,oBAAoB;AACxB,cAAAA,GAAE,mBAAmB;AAAA,YACvB;AACA,gBAAIA,GAAE,cAAc,WAAW,GAAG;AAChC,cAAAA,GAAE,iBAAiBA,GAAE,cAAc,CAAC;AAAA,YACtC;AACA,gBAAIA,GAAE,kBAAkB;AACtB,cAAAA,GAAE,eAAe;AAAA,YACnB;AACA,gBAAIA,GAAE,iBAAiB,CAACA,GAAE,aAAa,CAACA,GAAE,kBAAkB;AAC1D,cAAAA,GAAE,eAAe;AAAA,YACnB;AACA,gBAAIA,GAAE,sBAAsB,CAACA,GAAE,mBAAmB;AAChD,cAAAA,GAAE,oBAAoB,SAAS;AAAA,YACjC;AACA,YAAAA,GAAE,OAAO,EAAE,GAAG,uBAAuB,GAAGA,GAAE,KAAK;AAAA,UACjD;AAGA,cAAI,aAAa,CAACC,OAAMA,GAAE,QAAQ,OAAO,EAAE;AAC3C,cAAI,kBAAkB,CAACA,KAAI,OAAOA,GAAE,UAAU,KAAK,EAAE,QAAQ,oBAAoB,EAAE,EAAE,YAAY;AAGjG,cAAI,sBAAsB,CAAC,WAAW,UAAU;AAC9C,kBAAM,kBAAkB,gBAAgB,KAAK;AAC7C,kBAAM,cAAc,CAAC;AACrB,kBAAM,gBAAgB,CAAC;AACvB,kBAAM,eAAe,CAAC;AACtB,kBAAM,kBAAkB,CAAC;AACzB,kBAAM,mBAAmB,CAAC;AAC1B,kBAAM,kBAAkB,CAAC;AACzB,uBAAWH,MAAK,WAAW;AACzB,kBAAIA,GAAE,SAAS,iBAAiB;AAC9B,4BAAY,KAAKA,EAAC;AAAA,cACpB,WAAWA,GAAE,eAAe,WAAW,eAAe,GAAG;AACvD,8BAAc,KAAKA,EAAC;AAAA,cACtB,WAAWA,GAAE,eAAe,SAAS,eAAe,GAAG;AACrD,6BAAa,KAAKA,EAAC;AAAA,cACrB,WAAW,oBAAoBA,GAAE,YAAY,oBAAoBA,GAAE,cAAc;AAC/E,gCAAgB,KAAKA,EAAC;AAAA,cACxB,WAAWA,GAAE,aAAa,SAAS,eAAe,GAAG;AACnD,iCAAiB,KAAKA,EAAC;AAAA,cACzB,WAAWA,GAAE,SAAS,SAAS,eAAe,GAAG;AAC/C,gCAAgB,KAAKA,EAAC;AAAA,cACxB;AAAA,YACF;AACA,kBAAM,iBAAiB,CAACI,IAAGC,OAAMD,GAAE,WAAWC,GAAE;AAChD,mBAAO;AAAA,cACL,GAAG,YAAY,KAAK,cAAc;AAAA,cAClC,GAAG,cAAc,KAAK,cAAc;AAAA,cACpC,GAAG,aAAa,KAAK,cAAc;AAAA,cACnC,GAAG,gBAAgB,KAAK,cAAc;AAAA,cACtC,GAAG,iBAAiB,KAAK,cAAc;AAAA,cACvC,GAAG,gBAAgB,KAAK,cAAc;AAAA,YACxC;AAAA,UACF;AACA,cAAI,+BAA+B,CAAC,WAAW,UAAU;AACvD,kBAAM,aAAa,MAAM,YAAY;AACrC,uBAAWL,MAAK,WAAW;AACzB,oBAAM,YAAYA,GAAE,KAAK,YAAY;AACrC,kBAAI,UAAU,WAAW,UAAU,GAAG;AACpC,uBAAOA;AAAA,cACT;AAAA,YACF;AACA,mBAAO;AAAA,UACT;AAGA,cAAI,kBAAkB,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,OAAO,CAACM,OAAM,QAAQ,MAAMA,EAAC,CAAC,CAAC,EAAE,KAAK,GAAG;AAC7F,cAAI,WAAW,CAAC,SAAS,OAAO,cAAc;AAC5C,kBAAM,KAAK,SAAS,cAAc,OAAO;AACzC,gBAAI,OAAO;AACT,qBAAO,QAAQ,KAAK,EAAE;AAAA,gBACpB,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,aAAa,KAAK,KAAK;AAAA,cAC9C;AAAA,YACF;AACA,gBAAI,WAAW;AACb,wBAAU,YAAY,EAAE;AAAA,YAC1B;AACA,mBAAO;AAAA,UACT;AAGA,cAAI,kBAAkB,MAAM;AAAA,mGACqE,KAAK,MAAM;AAAA;AAAA;AAAA;AAI5G,cAAI,iBAAiB,CAACC,SAAQ;AAC5B,kBAAM,SAAS,OAAOA,IAAG;AACzB,mBAAO;AAAA,oFACyE,KAAK,MAAM;AAAA,kBAC7E,MAAM;AAAA;AAAA;AAAA;AAAA,4EAIoD,MAAM;AAAA;AAAA,UAEhF;AAGA,cAAI,KAAK,MAAM;AAAA,YACb,YAAY,OAAO,SAASA,MAAK;AAC/B,mBAAK,kBAAkB;AACvB,oBAAM,QAAQ,iBAAiBA,KAAI,SAAS;AAC5C,mBAAK,WAAW;AAChB,mBAAK,UAAU;AACf,mBAAK,KAAKA;AACV,mBAAK,wBAAwB,QAAQ,MAAM,aAAa,aAAa,CAAC;AACtE,mBAAK,QAAQ,CAAC,CAAC,KAAK,SAAS,QAAQ,WAAW;AAChD,kBAAI,KAAK,QAAQ,kBAAkB;AACjC,qBAAK,sBAAsB,KAAK,SAAS,MAAM;AAAA,cACjD;AAAA,YACF;AAAA;AAAA,YAEA,eAAe,WAAW;AACxB,mBAAK,YAAY;AACjB,mBAAK,iBAAiB;AACtB,oBAAM,UAAU,KAAK,wBAAwB;AAC7C,mBAAK,4BAA4B,OAAO;AACxC,sBAAQ,YAAY,KAAK,QAAQ;AACjC,mBAAK,kCAAkC;AACvC,mBAAK,wBAAwB,OAAO;AAAA,YACtC;AAAA,YACA,mBAAmB;AACjB,mBAAK,SAAS,UAAU,IAAI,gBAAgB;AAC5C,kBAAI,CAAC,KAAK,SAAS,aAAa,cAAc,KAAK,CAAC,KAAK,SAAS,MAAM,aAAa,cAAc,GAAG;AACpG,qBAAK,SAAS,aAAa,gBAAgB,KAAK;AAAA,cAClD;AAAA,YACF;AAAA,YACA,0BAA0B;AACxB,oBAAM,EAAE,eAAe,WAAW,gBAAgB,mBAAmB,IAAI,KAAK;AAC9E,oBAAM,gBAAgB,gBAAgB;AAAA,gBACpC,KAAK;AAAA,gBACL,uBAAuB;AAAA,gBACvB,mBAAmB;AAAA,gBACnB,wBAAwB,CAAC;AAAA,gBACzB,CAAC,cAAc,GAAG,QAAQ,cAAc;AAAA,cAC1C,CAAC;AACD,oBAAM,UAAU,SAAS,OAAO,EAAE,OAAO,cAAc,CAAC;AACxD,kBAAI,KAAK,OAAO;AACd,wBAAQ,aAAa,OAAO,KAAK;AAAA,cACnC;AACA,mBAAK,SAAS,OAAO,OAAO;AAC5B,qBAAO;AAAA,YACT;AAAA,YACA,4BAA4B,SAAS;AACnC,oBAAM,EAAE,eAAe,kBAAkB,UAAU,IAAI,KAAK;AAC5D,kBAAI,iBAAiB,aAAa,kBAAkB;AAClD,qBAAK,mBAAmB;AAAA,kBACtB;AAAA;AAAA,kBAEA,EAAE,OAAO,0BAA0B,QAAQ,MAAM,GAAG;AAAA,kBACpD;AAAA,gBACF;AACA,oBAAI,eAAe;AACjB,uBAAK,kBAAkB;AAAA,oBACrB;AAAA,oBACA;AAAA,sBACE,MAAM;AAAA,sBACN,OAAO;AAAA,sBACP,CAAC,KAAK,QAAQ,GAAG;AAAA,sBACjB,CAAC,KAAK,KAAK,GAAG,KAAK,QAAQ,KAAK;AAAA,sBAChC,CAAC,KAAK,QAAQ,GAAG;AAAA,sBACjB,CAAC,KAAK,QAAQ,GAAG,OAAO,KAAK,EAAE;AAAA,oBACjC;AAAA,oBACA,KAAK;AAAA,kBACP;AACA,sBAAI,KAAK,SAAS,UAAU;AAC1B,yBAAK,gBAAgB,aAAa,YAAY,MAAM;AAAA,kBACtD;AAAA,gBACF,OAAO;AACL,uBAAK,kBAAkB;AAAA,oBACrB;AAAA,oBACA,EAAE,OAAO,wBAAwB;AAAA,oBACjC,KAAK;AAAA,kBACP;AAAA,gBACF;AACA,sBAAM,yBAAyB;AAAA,kBAC7B;AAAA,kBACA,EAAE,OAAO,gCAAgC;AAAA,kBACzC,KAAK;AAAA,gBACP;AACA,qBAAK,uBAAuB;AAAA,kBAC1B;AAAA,kBACA,EAAE,OAAO,QAAQ,KAAK;AAAA,kBACtB;AAAA,gBACF;AACA,oBAAI,eAAe;AACjB,uBAAK,gBAAgB;AAAA,oBACnB;AAAA,oBACA,EAAE,OAAO,cAAc,CAAC,KAAK,MAAM,GAAG,OAAO;AAAA,oBAC7C;AAAA,kBACF;AAAA,gBACF;AACA,oBAAI,kBAAkB;AACpB,uBAAK,mBAAmB;AAAA,oBACtB;AAAA,oBACA,EAAE,OAAO,0BAA0B;AAAA,oBACnC,KAAK;AAAA,kBACP;AAAA,gBACF;AACA,oBAAI,eAAe;AACjB,uBAAK,sBAAsB;AAAA,gBAC7B;AAAA,cACF;AAAA,YACF;AAAA,YACA,wBAAwB;AACtB,oBAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,IAAI,KAAK;AACT,oBAAM,eAAe,mBAAmB,KAAK;AAC7C,mBAAK,kBAAkB,SAAS,OAAO;AAAA,gBACrC,IAAI,OAAO,KAAK,EAAE;AAAA,gBAClB,OAAO,yBAAyB,QAAQ,IAAI,IAAI,YAAY;AAAA,gBAC5D,MAAM;AAAA,gBACN,CAAC,KAAK,KAAK,GAAG;AAAA,cAChB,CAAC;AACD,kBAAI,KAAK,OAAO;AACd,qBAAK,gBAAgB,aAAa,OAAO,KAAK;AAAA,cAChD;AACA,kBAAI,eAAe;AACjB,qBAAK,eAAe;AAAA,cACtB;AACA,mBAAK,cAAc;AAAA,gBACjB;AAAA,gBACA;AAAA,kBACE,OAAO;AAAA,kBACP,IAAI,OAAO,KAAK,EAAE;AAAA,kBAClB,MAAM;AAAA,kBACN,CAAC,KAAK,KAAK,GAAG,KAAK;AAAA,gBACrB;AAAA,gBACA,KAAK;AAAA,cACP;AACA,mBAAK,iBAAiB;AACtB,kBAAI,eAAe;AACjB,qBAAK,4BAA4B;AAAA,cACnC;AACA,kBAAI,mBAAmB;AACrB,sBAAM,kBAAkB,gBAAgB;AAAA,kBACtC,KAAK;AAAA,kBACL,kBAAkB;AAAA,kBAClB,yBAAyB;AAAA,kBACzB,wBAAwB,CAAC;AAAA,kBACzB,CAAC,cAAc,GAAG,QAAQ,cAAc;AAAA,gBAC1C,CAAC;AACD,qBAAK,WAAW,SAAS,OAAO,EAAE,OAAO,gBAAgB,CAAC;AAC1D,qBAAK,SAAS,YAAY,KAAK,eAAe;AAAA,cAChD,OAAO;AACL,qBAAK,iBAAiB,YAAY,KAAK,eAAe;AAAA,cACxD;AAAA,YACF;AAAA,YACA,iBAAiB;AACf,oBAAM,EAAE,KAAK,IAAI,KAAK;AACtB,oBAAM,gBAAgB;AAAA,gBACpB;AAAA,gBACA,EAAE,OAAO,4BAA4B;AAAA,gBACrC,KAAK;AAAA,cACP;AACA,mBAAK,aAAa;AAAA,gBAChB;AAAA,gBACA;AAAA,kBACE,OAAO;AAAA,kBACP,CAAC,KAAK,MAAM,GAAG;AAAA,gBACjB;AAAA,gBACA;AAAA,cACF;AACA,mBAAK,WAAW,YAAY,gBAAgB;AAC5C,mBAAK,cAAc;AAAA,gBACjB;AAAA,gBACA;AAAA,kBACE,IAAI,OAAO,KAAK,EAAE;AAAA;AAAA,kBAElB,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,aAAa,KAAK;AAAA;AAAA,kBAElB,MAAM;AAAA,kBACN,CAAC,KAAK,QAAQ,GAAG;AAAA,kBACjB,CAAC,KAAK,KAAK,GAAG,KAAK;AAAA,kBACnB,CAAC,KAAK,QAAQ,GAAG,OAAO,KAAK,EAAE;AAAA,kBAC/B,CAAC,KAAK,YAAY,GAAG;AAAA,kBACrB,cAAc;AAAA,gBAChB;AAAA,gBACA;AAAA,cACF;AACA,mBAAK,oBAAoB;AAAA,gBACvB;AAAA,gBACA;AAAA,kBACE,MAAM;AAAA,kBACN,OAAO,qBAAqB,QAAQ,IAAI;AAAA,kBACxC,CAAC,KAAK,KAAK,GAAG,KAAK;AAAA,kBACnB,UAAU;AAAA,gBACZ;AAAA,gBACA;AAAA,cACF;AACA,mBAAK,kBAAkB,YAAY,eAAe,KAAK,EAAE;AACzD,mBAAK,wBAAwB;AAAA,gBAC3B;AAAA,gBACA,EAAE,OAAO,iBAAiB;AAAA,gBAC1B,KAAK;AAAA,cACP;AACA,mBAAK,kBAAkB;AAAA,gBACrB;AAAA,gBACA;AAAA,kBACE,OAAO,mBAAmB,QAAQ,IAAI;AAAA,kBACtC,CAAC,KAAK,MAAM,GAAG;AAAA;AAAA,gBAEjB;AAAA,gBACA,KAAK;AAAA,cACP;AACA,mBAAK,gBAAgB,cAAc,KAAK;AAAA,YAC1C;AAAA,YACA,oCAAoC;AAClC,kBAAI,KAAK,kBAAkB;AACzB,qBAAK,mBAAmB;AACxB,qBAAK,iBAAiB,UAAU,OAAO,QAAQ,MAAM;AAAA,cACvD;AAAA,YACF;AAAA,YACA,wBAAwB,SAAS;AAC/B,oBAAM,EAAE,YAAY,IAAI,KAAK;AAC7B,kBAAI,aAAa;AACf,sBAAM,eAAe,KAAK,SAAS,aAAa,MAAM,KAAK;AAC3D,sBAAM,QAAQ,YAAY,YAAY;AACtC,oBAAI,MAAM,OAAO;AACf,wBAAM,gBAAgB,KAAK,SAAS,MAAM;AAAA,oBACxC,eAAe,MAAM,KAAK;AAAA,kBAC5B;AACA,sBAAI,eAAe;AACjB,yBAAK,cAAc;AAAA,kBACrB,OAAO;AACL,yBAAK,cAAc,SAAS,SAAS;AAAA,sBACnC,MAAM;AAAA,sBACN,MAAM,MAAM;AAAA,oBACd,CAAC;AACD,4BAAQ,YAAY,KAAK,WAAW;AAAA,kBACtC;AAAA,gBACF;AACA,oBAAI,MAAM,SAAS;AACjB,wBAAM,gBAAgB,KAAK,SAAS,MAAM;AAAA,oBACxC,eAAe,MAAM,OAAO;AAAA,kBAC9B;AACA,sBAAI,eAAe;AACjB,yBAAK,qBAAqB;AAAA,kBAC5B,OAAO;AACL,yBAAK,qBAAqB,SAAS,SAAS;AAAA,sBAC1C,MAAM;AAAA,sBACN,MAAM,MAAM;AAAA,oBACd,CAAC;AACD,4BAAQ,YAAY,KAAK,kBAAkB;AAAA,kBAC7C;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA;AAAA,YAEA,mBAAmB;AACjB,oBAAM,OAAO,SAAS,uBAAuB;AAC7C,uBAASC,KAAI,GAAGA,KAAI,KAAK,UAAU,QAAQA,MAAK;AAC9C,sBAAMR,KAAI,KAAK,UAAUQ,EAAC;AAC1B,sBAAM,UAAU,gBAAgB;AAAA,kBAC9B,CAAC,QAAQ,YAAY,GAAG;AAAA,kBACxB,CAAC,QAAQ,SAAS,GAAGA,OAAM;AAAA,gBAC7B,CAAC;AACD,sBAAM,WAAW,SAAS,MAAM;AAAA,kBAC9B,IAAI,OAAO,KAAK,EAAE,UAAUR,GAAE,IAAI;AAAA,kBAClC,OAAO;AAAA,kBACP,UAAU;AAAA,kBACV,MAAM;AAAA,kBACN,CAAC,KAAK,QAAQ,GAAG;AAAA,gBACnB,CAAC;AACD,yBAAS,QAAQ,WAAWA,GAAE;AAC9B,yBAAS,QAAQ,cAAcA,GAAE;AACjC,gBAAAA,GAAE,SAAS,KAAK,EAAE,IAAI;AACtB,oBAAI,KAAK,QAAQ,WAAW;AAC1B,2BAAS,OAAO,EAAE,OAAO,GAAG,QAAQ,IAAI,SAASA,GAAE,IAAI,GAAG,GAAG,QAAQ;AAAA,gBACvE;AACA,sBAAM,SAAS,SAAS,QAAQ,EAAE,OAAO,oBAAoB,GAAG,QAAQ;AACxE,uBAAO,cAAcA,GAAE;AACvB,sBAAM,SAAS,SAAS,QAAQ,EAAE,OAAO,iBAAiB,GAAG,QAAQ;AACrE,oBAAI,KAAK,OAAO;AACd,yBAAO,aAAa,OAAO,KAAK;AAAA,gBAClC;AACA,uBAAO,cAAc,IAAIA,GAAE,QAAQ;AACnC,qBAAK,YAAY,QAAQ;AAAA,cAC3B;AACA,mBAAK,YAAY,YAAY,IAAI;AAAA,YACnC;AAAA;AAAA,YAEA,qBAAqB;AACnB,kBAAI,KAAK,iBAAiB;AACxB,sBAAM,gBAAgB,KAAK,QAAQ,mBAAmB,OAAO,gCAAgC,OAAO;AACpG,sBAAM,uBAAuB,KAAK,gBAAgB,eAAe,KAAK,+BAA+B,KAAK;AAC1G,sBAAM,eAAe,uBAAuB,OAAO;AACnD,qBAAK,SAAS,MAAM,cAAc,GAAG,YAAY;AAAA,cACnD;AAAA,YACF;AAAA;AAAA;AAAA;AAAA;AAAA,YAKA,iCAAiC;AAC/B,kBAAI,KAAK,SAAS,YAAY;AAC5B,oBAAI;AACJ,oBAAI;AACF,yBAAO,OAAO,IAAI,SAAS;AAAA,gBAC7B,SAASS,IAAG;AACV,yBAAO,SAAS;AAAA,gBAClB;AACA,sBAAM,iBAAiB,KAAK,SAAS,WAAW;AAAA,kBAC9C;AAAA,gBACF;AACA,+BAAe,MAAM,aAAa;AAClC,qBAAK,YAAY,cAAc;AAC/B,sBAAM,wBAAwB,KAAK,iBAAiB,UAAU;AAC9D,+BAAe,YAAY,qBAAqB;AAChD,sBAAM,uBAAuB,KAAK,gBAAgB;AAAA,kBAChD;AAAA,gBACF;AACA,sCAAsB,YAAY,oBAAoB;AACtD,sBAAM,QAAQ,qBAAqB;AACnC,qBAAK,YAAY,cAAc;AAC/B,uBAAO;AAAA,cACT;AACA,qBAAO;AAAA,YACT;AAAA;AAAA,YAEA,8BAA8B;AAC5B,oBAAM,EAAE,KAAK,IAAI,KAAK;AACtB,oBAAM,QAAQ,KAAK,YAAY;AAC/B,kBAAI;AACJ,kBAAI,UAAU,GAAG;AACf,6BAAa,KAAK;AAAA,cACpB,OAAO;AACL,oBAAI,KAAK,mBAAmB;AAC1B,+BAAa,KAAK,kBAAkB,KAAK;AAAA,gBAC3C,WAAW,UAAU,GAAG;AACtB,+BAAa,KAAK;AAAA,gBACpB,OAAO;AACL,+BAAa,KAAK,sBAAsB;AAAA,oBACtC;AAAA,oBACA,MAAM,SAAS;AAAA,kBACjB;AAAA,gBACF;AAAA,cACF;AACA,mBAAK,sBAAsB,cAAc;AAAA,YAC3C;AAAA;AAAA,YAEA,SAAS,SAAS;AAChB,oBAAM,YAAY,KAAK;AACvB,oBAAM,YAAY,SAAS,gBAAgB;AAC3C,oBAAM,kBAAkB,UAAU;AAClC,oBAAM,eAAe,UAAU,sBAAsB,EAAE,MAAM;AAC7D,oBAAM,kBAAkB,eAAe;AACvC,oBAAM,gBAAgB,QAAQ;AAC9B,oBAAM,aAAa,QAAQ,sBAAsB,EAAE,MAAM;AACzD,oBAAM,gBAAgB,aAAa;AACnC,oBAAM,eAAe,aAAa,eAAe,UAAU;AAC3D,kBAAI,aAAa,cAAc;AAC7B,0BAAU,YAAY;AAAA,cACxB,WAAW,gBAAgB,iBAAiB;AAC1C,sBAAM,mBAAmB,kBAAkB;AAC3C,0BAAU,YAAY,eAAe;AAAA,cACvC;AAAA,YACF;AAAA;AAAA,YAEA,kBAAkB,UAAU,aAAa;AACvC,oBAAM,WAAW,KAAK;AACtB,kBAAI,UAAU;AACZ,yBAAS,UAAU,OAAO,QAAQ,SAAS;AAC3C,yBAAS,aAAa,KAAK,UAAU,OAAO;AAAA,cAC9C;AACA,mBAAK,kBAAkB;AACvB,kBAAI,KAAK,iBAAiB;AACxB,qBAAK,gBAAgB,UAAU,IAAI,QAAQ,SAAS;AACpD,qBAAK,gBAAgB,aAAa,KAAK,UAAU,MAAM;AACvD,oBAAI,KAAK,QAAQ,eAAe;AAC9B,wBAAM,mBAAmB,KAAK,gBAAgB,aAAa,IAAI,KAAK;AACpE,uBAAK,YAAY,aAAa,KAAK,mBAAmB,gBAAgB;AAAA,gBACxE;AAAA,cACF;AACA,kBAAI,aAAa;AACf,qBAAK,gBAAgB,MAAM;AAAA,cAC7B;AAAA,YACF;AAAA;AAAA,YAEA,gBAAgB,kBAAkB;AAChC,mBAAK,YAAY,YAAY;AAC7B,kBAAI,sBAAsB;AAC1B,yBAAWT,MAAK,kBAAkB;AAChC,sBAAM,WAAWA,GAAE,SAAS,KAAK,EAAE;AACnC,oBAAI,UAAU;AACZ,uBAAK,YAAY,YAAY,QAAQ;AACrC,sBAAI,qBAAqB;AACvB,yBAAK,kBAAkB,UAAU,KAAK;AACtC,0CAAsB;AAAA,kBACxB;AAAA,gBACF;AAAA,cACF;AACA,kBAAI,qBAAqB;AACvB,qBAAK,kBAAkB,MAAM,KAAK;AAClC,oBAAI,KAAK,iBAAiB;AACxB,uBAAK,gBAAgB,UAAU,OAAO,QAAQ,IAAI;AAAA,gBACpD;AAAA,cACF,WAAW,KAAK,iBAAiB;AAC/B,qBAAK,gBAAgB,UAAU,IAAI,QAAQ,IAAI;AAAA,cACjD;AACA,mBAAK,YAAY,YAAY;AAC7B,mBAAK,4BAA4B;AAAA,YACnC;AAAA,YACA,UAAU;AACR,mBAAK,SAAS,MAAM;AACpB,qBAAO,KAAK,SAAS,QAAQ;AAC7B,kBAAI,KAAK,QAAQ,kBAAkB;AACjC,qBAAK,SAAS,MAAM,cAAc,KAAK;AAAA,cACzC;AACA,oBAAM,UAAU,KAAK,SAAS;AAC9B,sBAAQ,OAAO,KAAK,QAAQ;AAC5B,sBAAQ,OAAO;AACf,mBAAK,WAAW;AAChB,mBAAK,mBAAmB;AACxB,mBAAK,kBAAkB;AACvB,mBAAK,uBAAuB;AAC5B,mBAAK,mBAAmB;AACxB,mBAAK,gBAAgB;AACrB,mBAAK,kBAAkB;AACvB,mBAAK,cAAc;AACnB,mBAAK,aAAa;AAClB,mBAAK,oBAAoB;AACzB,mBAAK,kBAAkB;AACvB,mBAAK,wBAAwB;AAC7B,mBAAK,cAAc;AACnB,mBAAK,WAAW;AAChB,mBAAK,cAAc;AACnB,mBAAK,qBAAqB;AAC1B,mBAAK,kBAAkB;AACvB,yBAAWA,MAAK,KAAK,WAAW;AAC9B,uBAAOA,GAAE,SAAS,KAAK,EAAE;AAAA,cAC3B;AACA,mBAAK,YAAY;AAAA,YACnB;AAAA,UACF;AAGA,cAAI,sBAAsB,CAAC,YAAY;AACrC,kBAAM,EAAE,eAAe,iBAAiB,IAAI;AAC5C,gBAAI,cAAc,QAAQ;AACxB,oBAAM,yBAAyB,cAAc;AAAA,gBAC3C,CAAC,YAAY,QAAQ,YAAY;AAAA,cACnC;AACA,qBAAO,aAAa;AAAA,gBAClB,CAAC,YAAY,uBAAuB,SAAS,QAAQ,IAAI;AAAA,cAC3D;AAAA,YACF,WAAW,iBAAiB,QAAQ;AAClC,oBAAM,4BAA4B,iBAAiB;AAAA,gBACjD,CAAC,YAAY,QAAQ,YAAY;AAAA,cACnC;AACA,qBAAO,aAAa;AAAA,gBAClB,CAAC,YAAY,CAAC,0BAA0B,SAAS,QAAQ,IAAI;AAAA,cAC/D;AAAA,YACF;AACA,mBAAO;AAAA,UACT;AACA,cAAI,wBAAwB,CAAC,WAAW,YAAY;AAClD,uBAAWA,MAAK,WAAW;AACzB,oBAAM,OAAOA,GAAE,KAAK,YAAY;AAChC,kBAAI,QAAQ,KAAK,IAAI,GAAG;AACtB,gBAAAA,GAAE,OAAO,QAAQ,KAAK,IAAI;AAAA,cAC5B;AAAA,YACF;AAAA,UACF;AACA,cAAI,mBAAmB,CAAC,WAAW,YAAY;AAC7C,kBAAM,YAA4B,oBAAI,IAAI;AAC1C,gBAAI,iBAAiB;AACrB,kBAAM,oBAAoB,CAAC;AAC3B,kBAAM,oBAAoB,CAAC,MAAM,UAAU,aAAa;AACtD,kBAAI,CAAC,QAAQ,CAAC,UAAU;AACtB;AAAA,cACF;AACA,kBAAI,SAAS,SAAS,gBAAgB;AACpC,iCAAiB,SAAS;AAAA,cAC5B;AACA,kBAAI,CAAC,kBAAkB,eAAe,QAAQ,GAAG;AAC/C,kCAAkB,QAAQ,IAAI,CAAC;AAAA,cACjC;AACA,oBAAM,WAAW,kBAAkB,QAAQ;AAC3C,kBAAI,SAAS,SAAS,IAAI,GAAG;AAC3B;AAAA,cACF;AACA,oBAAM,QAAQ,aAAa,SAAS,WAAW,SAAS;AACxD,uBAAS,KAAK,IAAI;AAAA,YACpB;AACA,uBAAWA,MAAK,WAAW;AACzB,kBAAI,CAAC,UAAU,IAAIA,GAAE,QAAQ,GAAG;AAC9B,0BAAU,IAAIA,GAAE,QAAQ;AAAA,cAC1B;AACA,uBAASM,KAAI,GAAGA,KAAIN,GAAE,SAAS,QAAQM,MAAK;AAC1C,sBAAM,kBAAkBN,GAAE,SAAS,UAAU,GAAGM,EAAC;AACjD,kCAAkBN,GAAE,MAAM,eAAe;AAAA,cAC3C;AACA,gCAAkBA,GAAE,MAAMA,GAAE,UAAUA,GAAE,QAAQ;AAAA,YAClD;AACA,gBAAI,QAAQ,cAAc,UAAU,QAAQ,iBAAiB,QAAQ;AACnE,wBAAU,QAAQ,CAAC,aAAa;AAC9B,kCAAkB,QAAQ,IAAI,kBAAkB,QAAQ,EAAE,OAAO,OAAO;AAAA,cAC1E,CAAC;AAAA,YACH;AACA,uBAAWA,MAAK,WAAW;AACzB,kBAAIA,GAAE,WAAW;AACf,sBAAM,eAAe,kBAAkBA,GAAE,QAAQ,EAAE,CAAC;AACpD,2BAAW,YAAYA,GAAE,WAAW;AAClC,2BAASM,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,0BAAM,kBAAkB,SAAS,UAAU,GAAGA,EAAC;AAC/C,0BAAM,kBAAkBN,GAAE,WAAW;AACrC,sCAAkB,cAAc,eAAe;AAC/C,sCAAkBA,GAAE,MAAM,eAAe;AAAA,kBAC3C;AACA,oCAAkBA,GAAE,MAAMA,GAAE,WAAW,QAAQ;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AACA,mBAAO,EAAE,WAAW,gBAAgB,kBAAkB;AAAA,UACxD;AACA,cAAI,gBAAgB,CAAC,WAAW,YAAY;AAC1C,gBAAI,QAAQ,cAAc;AACxB,sBAAQ,eAAe,QAAQ,aAAa;AAAA,gBAC1C,CAAC,SAAS,KAAK,YAAY;AAAA,cAC7B;AAAA,YACF;AACA,sBAAU,KAAK,CAACI,IAAGC,OAAM;AACvB,oBAAM,EAAE,aAAa,IAAI;AACzB,kBAAI,cAAc;AAChB,sBAAM,SAAS,aAAa,QAAQD,GAAE,IAAI;AAC1C,sBAAM,SAAS,aAAa,QAAQC,GAAE,IAAI;AAC1C,sBAAM,eAAe,SAAS;AAC9B,sBAAM,eAAe,SAAS;AAC9B,oBAAI,gBAAgB,cAAc;AAChC,sBAAI,gBAAgB,cAAc;AAChC,2BAAO,SAAS;AAAA,kBAClB;AACA,yBAAO,eAAe,KAAK;AAAA,gBAC7B;AAAA,cACF;AACA,qBAAOD,GAAE,KAAK,cAAcC,GAAE,IAAI;AAAA,YACpC,CAAC;AAAA,UACH;AACA,cAAI,oBAAoB,CAAC,cAAc;AACrC,uBAAWL,MAAK,WAAW;AACzB,cAAAA,GAAE,iBAAiB,gBAAgBA,GAAE,IAAI;AACzC,cAAAA,GAAE,WAAWA,GAAE,eAAe,MAAM,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE;AAC5E,cAAAA,GAAE,eAAe,IAAIA,GAAE,QAAQ;AAAA,YACjC;AAAA,UACF;AAGA,cAAI,kBAAkB,CAAC,YAAY,UAAU,kBAAkB,wBAAwB;AACrF,gBAAI,SAAS;AACb,gBAAI,kBAAkB;AACpB,kBAAI,UAAU;AACZ,2BAAW,IAAI,oBAAoB,QAAQ;AAC3C,sBAAMU,SAAQ,OAAO,SAAS,MAAM,MAAM,OAAO,OAAO,SAAS,MAAM,MAAM,MAAM,SAAS,SAAS,IAAI,SAAS;AAClH,yBAAS,OAAO,UAAUA,MAAK;AAAA,cACjC;AAAA,YACF;AACA,mBAAO;AAAA,UACT;AACA,cAAI,wBAAwB,CAAC,YAAY,eAAeC,QAAO,qBAAqB,qBAAqB;AACvG,kBAAM,SAASA,SAAQA,OAAM,sBAAsB,YAAY,oBAAoB,IAAI,IAAI;AAC3F,kBAAM,EAAE,SAAS,IAAI;AACrB,gBAAI,oBAAoB,cAAc,OAAO,CAAC,MAAM,OAAO,OAAO,SAAS,IAAI,QAAQ,EAAE,GAAG;AAC1F,oBAAM,gBAAgB,OAAO,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC,KAAK;AACzD,qBAAO,cAAc,KAAK;AAAA,YAC5B;AACA,mBAAO;AAAA,UACT;AAGA,cAAI,0BAA0B,CAAC,eAAe,gBAAgB,cAAc,qBAAqB;AAC/F,gBAAI,iBAAiB,KAAK,CAAC,kBAAkB;AAC3C,qBAAO;AAAA,YACT;AACA,gBAAI,oBAAoB;AACxB,qBAASH,KAAI,GAAGA,KAAI,eAAe,QAAQA,MAAK;AAC9C,kBAAI,SAAS,KAAK,eAAeA,EAAC,CAAC,GAAG;AACpC;AAAA,cACF;AACA,kBAAI,sBAAsB,iBAAiB,CAAC,kBAAkB;AAC5D,uBAAOA,KAAI;AAAA,cACb;AACA,kBAAI,oBAAoB,sBAAsB,gBAAgB,GAAG;AAC/D,uBAAOA;AAAA,cACT;AAAA,YACF;AACA,mBAAO,eAAe;AAAA,UACxB;AAGA,cAAI,wBAAwB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AACA,cAAI,mBAAmB,CAAC,WAAW;AACjC,kBAAM,UAAU,WAAW,MAAM;AACjC,gBAAI,QAAQ,WAAW,KAAK,IAAI,KAAK,QAAQ,UAAU,GAAG;AACxD,oBAAM,WAAW,QAAQ,UAAU,GAAG,CAAC;AACvC,qBAAO,sBAAsB,SAAS,QAAQ;AAAA,YAChD;AACA,mBAAO;AAAA,UACT;AAGA,qBAAWR,MAAK,cAAc;AAC5B,YAAAA,GAAE,OAAO,WAAWA,GAAE,IAAI;AAAA,UAC5B;AACA,cAAIY,OAAK;AACT,cAAI,UAAU,IAAI,IAAI,aAAa,IAAI,CAACZ,OAAMA,GAAE,IAAI,CAAC;AACrD,cAAI,SAAS,CAAC,QAAQ,QAAQ,IAAI,GAAG;AACrC,cAAI,MAAM,MAAM,KAAK;AAAA,YACnB,YAAY,OAAO,gBAAgB,CAAC,GAAG;AACrC,mBAAK,KAAKY;AACV,mBAAK,UAAU,EAAE,GAAG,UAAU,GAAG,cAAc;AAC/C,qCAAuB,KAAK,SAAS,UAAU;AAC/C,mBAAK,KAAK,IAAI,GAAG,OAAO,KAAK,SAAS,KAAK,EAAE;AAC7C,mBAAK,YAAY,KAAK,cAAc;AACpC,mBAAK,UAAU,KAAK,oBAAoB;AACxC,mBAAK,YAAY,oBAAoB,KAAK,OAAO;AACjD,oBAAM,EAAE,WAAW,gBAAgB,kBAAkB,IAAI;AAAA,gBACvD,KAAK;AAAA,gBACL,KAAK;AAAA,cACP;AACA,mBAAK,YAAY;AACjB,mBAAK,iBAAiB;AACtB,mBAAK,oBAAoB;AACzB,mBAAK,gBAAgB,IAAI,IAAI,KAAK,UAAU,IAAI,CAACZ,OAAM,CAACA,GAAE,MAAMA,EAAC,CAAC,CAAC;AACnE,mBAAK,MAAM;AAAA,YACb;AAAA,YACA,OAAO,gBAAgB;AACrB,qBAAO,OAAO,cAAc,cAAc,WAAW,KAAK,UAAU,SAAS,IAAI;AAAA,YACnF;AAAA,YACA,sBAAsB;AACpB,oBAAM,qBAAqB,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC1D,qBAAK,4BAA4B;AACjC,qBAAK,2BAA2B;AAAA,cAClC,CAAC;AACD,oBAAM,qBAAqB,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC1D,qBAAK,4BAA4B;AACjC,qBAAK,2BAA2B;AAAA,cAClC,CAAC;AACD,qBAAO,QAAQ,IAAI,CAAC,oBAAoB,kBAAkB,CAAC;AAAA,YAC7D;AAAA;AAAA,YAEA,QAAQ;AACN,mBAAK,sBAAsB,CAAC;AAC5B,mBAAK,kBAAkB,IAAI,gBAAgB;AAC3C,mBAAK,oBAAoB;AACzB,mBAAK,GAAG,eAAe,KAAK,SAAS;AACrC,mBAAK,iBAAiB;AACtB,mBAAK,eAAe;AACpB,mBAAK,cAAc;AAAA,YACrB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKA,sBAAsB;AACpB,oCAAsB,KAAK,WAAW,KAAK,OAAO;AAClD,4BAAc,KAAK,WAAW,KAAK,OAAO;AAC1C,gCAAkB,KAAK,SAAS;AAAA,YAClC;AAAA;AAAA;AAAA;AAAA,YAIA,iBAAiB,sBAAsB,OAAO;AAC5C,oBAAM,iBAAiB,KAAK,GAAG,SAAS,aAAa,OAAO;AAC5D,oBAAM,aAAa,KAAK,GAAG,SAAS;AACpC,oBAAM,eAAe,kBAAkB,eAAe,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,WAAW,GAAG;AACnH,oBAAM,MAAM,eAAe,iBAAiB;AAC5C,oBAAM,WAAW,KAAK,aAAa,GAAG;AACtC,oBAAM,yBAAyB,iBAAiB,GAAG;AACnD,oBAAM,EAAE,gBAAgB,YAAY,IAAI,KAAK;AAC7C,oBAAM,gBAAgB,mBAAmB,gBAAgB,QAAQ;AACjE,kBAAI,YAAY,CAAC,wBAAwB;AACvC,qBAAK,yBAAyB,GAAG;AAAA,cACnC,WAAW,CAAC,iBAAiB,qBAAqB;AAChD,sBAAM,sBAAsB,iBAAiB,eAAe,YAAY,IAAI;AAC5E,oBAAI,OAAO,mBAAmB,GAAG;AAC/B,uBAAK,YAAY,mBAAmB;AAAA,gBACtC,OAAO;AACL,sBAAI,YAAY,wBAAwB;AACtC,yBAAK,YAAY,GAAG,IAAI;AAAA,kBAC1B,OAAO;AACL,yBAAK,YAAY,EAAE;AAAA,kBACrB;AAAA,gBACF;AAAA,cACF;AACA,kBAAI,KAAK;AACP,qBAAK,qBAAqB,GAAG;AAAA,cAC/B;AAAA,YACF;AAAA;AAAA,YAEA,iBAAiB;AACf,mBAAK,uBAAuB;AAC5B,kBAAI,KAAK,QAAQ,eAAe;AAC9B,qBAAK,uBAAuB;AAAA,cAC9B;AACA,mBAAK,KAAK,GAAG,eAAe,KAAK,GAAG,uBAAuB,KAAK,GAAG,SAAS,MAAM;AAChF,qBAAK,yBAAyB;AAAA,cAChC;AAAA,YACF;AAAA;AAAA,YAEA,2BAA2B;AACzB,oBAAM,0BAA0B,MAAM;AACpC,oBAAI,KAAK,GAAG,aAAa;AACvB,uBAAK,GAAG,YAAY,QAAQ,KAAK,UAAU;AAAA,gBAC7C;AACA,oBAAI,KAAK,GAAG,oBAAoB;AAC9B,uBAAK,GAAG,mBAAmB,QAAQ,KAAK,oBAAoB,QAAQ;AAAA,gBACtE;AAAA,cACF;AACA,mBAAK,GAAG,SAAS,MAAM,iBAAiB,UAAU,yBAAyB;AAAA,gBACzE,QAAQ,KAAK,gBAAgB;AAAA,cAC/B,CAAC;AAAA,YACH;AAAA;AAAA,YAEA,yBAAyB;AACvB,oBAAM,SAAS,KAAK,gBAAgB;AACpC,oBAAM,mBAAmB,CAACS,OAAM;AAC9B,oBAAI,KAAK,GAAG,gBAAgB,UAAU,SAAS,QAAQ,IAAI,GAAG;AAC5D,uBAAK,GAAG,SAAS,MAAM;AAAA,gBACzB,OAAO;AACL,kBAAAA,GAAE,eAAe;AAAA,gBACnB;AAAA,cACF;AACA,oBAAM,QAAQ,KAAK,GAAG,SAAS,QAAQ,OAAO;AAC9C,kBAAI,OAAO;AACT,sBAAM,iBAAiB,SAAS,kBAAkB,EAAE,OAAO,CAAC;AAAA,cAC9D;AACA,oBAAM,6BAA6B,MAAM;AACvC,sBAAM,iBAAiB,KAAK,GAAG,gBAAgB,UAAU;AAAA,kBACvD,QAAQ;AAAA,gBACV;AACA,oBAAI,kBAAkB,CAAC,KAAK,GAAG,SAAS,YAAY,CAAC,KAAK,GAAG,SAAS,UAAU;AAC9E,uBAAK,cAAc;AAAA,gBACrB;AAAA,cACF;AACA,mBAAK,GAAG,gBAAgB;AAAA,gBACtB;AAAA,gBACA;AAAA,gBACA;AAAA,kBACE;AAAA,gBACF;AAAA,cACF;AACA,oBAAM,gCAAgC,CAACA,OAAM;AAC3C,sBAAM,mBAAmB,KAAK,GAAG,gBAAgB,UAAU;AAAA,kBACzD,QAAQ;AAAA,gBACV;AACA,oBAAI,oBAAoB,CAAC,KAAK,UAAU,KAAK,YAAY,KAAK,OAAO,KAAK,KAAK,EAAE,SAASA,GAAE,GAAG,GAAG;AAChG,kBAAAA,GAAE,eAAe;AACjB,kBAAAA,GAAE,gBAAgB;AAClB,uBAAK,cAAc;AAAA,gBACrB;AACA,oBAAIA,GAAE,QAAQ,KAAK,KAAK;AACtB,uBAAK,eAAe;AAAA,gBACtB;AAAA,cACF;AACA,mBAAK,GAAG,iBAAiB;AAAA,gBACvB;AAAA,gBACA;AAAA,gBACA,EAAE,OAAO;AAAA,cACX;AAAA,YACF;AAAA;AAAA,YAEA,gBAAgB;AACd,oBAAM,EAAE,WAAW,gBAAgB,YAAY,IAAI,KAAK;AACxD,kBAAI,aAAa,CAACI,cAAa,OAAO;AACpC,sBAAM,gBAAgB,MAAM;AAC1B,kBAAAA,cAAa,YAAY,SAAS,GAAG,MAAM,MAAM;AAAA,kBACjD,CAAC;AAAA,gBACH;AACA,oBAAIA,cAAa,cAAc,GAAG;AAChC,gCAAc;AAAA,gBAChB,OAAO;AACL,wBAAM,iBAAiB,MAAM;AAC3B,kCAAc;AAAA,kBAChB;AACA,yBAAO,iBAAiB,QAAQ,gBAAgB;AAAA,oBAC9C,QAAQ,KAAK,gBAAgB;AAAA,kBAC/B,CAAC;AAAA,gBACH;AAAA,cACF,OAAO;AACL,qBAAK,0BAA0B;AAAA,cACjC;AACA,oBAAM,gBAAgB,mBAAmB,gBAAgB,QAAQ;AACjE,kBAAI,iBAAiB,CAAC,KAAK,oBAAoB,MAAM;AACnD,qBAAK,iBAAiB;AAAA,cACxB,OAAO;AACL,qBAAK,0BAA0B;AAAA,cACjC;AAAA,YACF;AAAA;AAAA,YAEA,mBAAmB;AACjB,kBAAIA,cAAa,aAAa;AAC5B,qBAAK,kBAAkB;AAAA,cACzB,WAAW,CAACA,cAAa,2BAA2B;AAClD,gBAAAA,cAAa,4BAA4B;AACzC,oBAAI,OAAO,KAAK,QAAQ,gBAAgB,YAAY;AAClD,uBAAK,QAAQ;AAAA,oBACX,CAAC,OAAO,OAAO;AACb,4BAAM,YAAY,KAAK,YAAY;AACnC,0BAAI,OAAO,SAAS,GAAG;AACrB,wBAAAA,cAAa,cAAc;AAC3B,mCAAW,MAAM,gBAAgB,mBAAmB,CAAC;AAAA,sBACvD,OAAO;AACL,6BAAK,iBAAiB,IAAI;AAC1B,wCAAgB,0BAA0B;AAAA,sBAC5C;AAAA,oBACF;AAAA,oBACA,MAAM;AACJ,2BAAK,iBAAiB,IAAI;AAC1B,sCAAgB,0BAA0B;AAAA,oBAC5C;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,YACA,wBAAwB;AACtB,mBAAK,cAAc;AACnB,mBAAK,GAAG,YAAY,QAAQ;AAC5B,mBAAK,wBAAwB,EAAE;AAAA,YACjC;AAAA;AAAA,YAEA,yBAAyB;AACvB,mBAAK,mBAAmB;AACxB,mBAAK,0BAA0B;AAC/B,mBAAK,wBAAwB;AAAA,YAC/B;AAAA,YACA,qBAAqB;AACnB,oBAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,IAAI,KAAK;AACT,kBAAI,yBAAyB;AAC7B,kBAAI,MAAM,cAAc,KAAK,KAAK,GAAG,SAAS,KAAK,GAAG;AACpD,yCAAyB;AAAA,cAC3B;AACA,oBAAM,mBAAmB,CAACJ,OAAM;AAC9B,oBAAI,KAAK,aAAaA,IAAG,SAAS,OAAO,oBAAoB,iBAAiB,eAAe;AAC3F,wBAAM,kBAAkB,KAAK,GAAG,SAAS,kBAAkB;AAC3D,wBAAM,mBAAmB,KAAK,GAAG,SAAS,MAAM;AAAA,oBAC9C;AAAA,oBACA,kBAAkB;AAAA,kBACpB;AACA,wBAAM,kBAAkB,KAAK,GAAG,SAAS,MAAM,UAAU,eAAe;AACxE,uBAAK,GAAG,SAAS,QAAQ,mBAAmB;AAC5C,uBAAK,sBAAsB;AAC3B;AAAA,gBACF;AACA,oBAAI,KAAK,yBAAyB,KAAK,GAAG,SAAS,KAAK,GAAG;AACzD,uBAAK,sBAAsB;AAAA,gBAC7B;AACA,sBAAM,mBAAmBA,IAAG,QAAQ,MAAM,iBAAiB,KAAKA,GAAE,IAAI;AACtE,sBAAM,UAAUA,IAAG,cAAc,YAAY,SAAS,KAAK,GAAG,SAAS;AACvE,oBAAI,oBAAoB,WAAW,CAAC,YAAY;AAC9C,2CAAyB;AAAA,gBAC3B,WAAW,CAAC,MAAM,iBAAiB,KAAK,KAAK,GAAG,SAAS,KAAK,GAAG;AAC/D,2CAAyB;AAAA,gBAC3B;AACA,sBAAM,cAAcA,IAAG,UAAUA,GAAE,OAAO,aAAa;AACvD,oBAAI,mBAAmB,CAAC,0BAA0B,CAAC,aAAa;AAC9D,wBAAM,kBAAkB,KAAK,GAAG,SAAS,kBAAkB;AAC3D,wBAAM,mBAAmB,KAAK,GAAG,SAAS,MAAM;AAAA,oBAC9C;AAAA,oBACA;AAAA,kBACF;AACA,wBAAM,2BAA2B,iBAAiB;AAAA,oBAChD,MAAM;AAAA,oBACN;AAAA,kBACF,EAAE;AACF,wBAAM,mBAAmBA,IAAG,cAAc,YAAY;AACtD,wBAAM,aAAa,KAAK,eAAe;AACvC,wBAAM,iBAAiB;AAAA,oBACrB;AAAA,oBACA,KAAK,GAAG,SAAS;AAAA,oBACjBI,cAAa;AAAA,oBACb,KAAK;AAAA,oBACL,KAAK,QAAQ;AAAA,kBACf;AACA,wBAAM,cAAc;AAAA,oBAClB;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,kBACF;AACA,uBAAK,GAAG,SAAS,QAAQ;AACzB,uBAAK,GAAG,SAAS,kBAAkB,aAAa,WAAW;AAAA,gBAC7D;AAAA,cACF;AACA,mBAAK,GAAG,SAAS;AAAA,gBACf;AAAA,gBACA;AAAA,gBACA;AAAA,kBACE,QAAQ,KAAK,gBAAgB;AAAA,gBAC/B;AAAA,cACF;AAAA,YACF;AAAA,YACA,4BAA4B;AAC1B,oBAAM,EAAE,YAAY,kBAAkB,eAAe,cAAc,IAAI,KAAK;AAC5E,kBAAI,cAAc,kBAAkB;AAClC,sBAAM,qBAAqB,CAACJ,OAAM;AAChC,sBAAIA,GAAE,OAAOA,GAAE,IAAI,WAAW,KAAK,CAACA,GAAE,UAAU,CAACA,GAAE,WAAW,CAACA,GAAE,SAAS;AACxE,wBAAI,oBAAoB,iBAAiB,iBAAiBA,GAAE,QAAQ,KAAK;AACvE,sBAAAA,GAAE,eAAe;AACjB,2BAAK,sBAAsB;AAC3B;AAAA,oBACF;AACA,wBAAI,YAAY;AACd,4BAAM,QAAQ,KAAK,GAAG,SAAS;AAC/B,4BAAM,iBAAiB,MAAM,WAAW,GAAG;AAC3C,4BAAM,gBAAgB,CAAC,kBAAkB,KAAK,GAAG,SAAS,mBAAmB,KAAKA,GAAE,QAAQ;AAC5F,4BAAM,YAAY,UAAU,KAAKA,GAAE,GAAG;AACtC,4BAAM,gBAAgB,mBAAmB,YAAY,iBAAiB;AACtE,4BAAM,WAAW,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,cAAc,IAAIA,GAAE,MAAM,MAAM,MAAM,KAAK,GAAG,SAAS,YAAY;AACpH,4BAAM,gBAAgB,KAAK,eAAe,QAAQ;AAClD,4BAAM,aAAaI,cAAa,MAAM;AAAA,wBACpC;AAAA,wBACA,KAAK,oBAAoB;AAAA,sBAC3B;AACA,4BAAM,uBAAuB,KAAK,uBAAuB,WAAW,SAAS,KAAK;AAClF,4BAAM,aAAa,KAAK,yBAAyB,aAAa;AAC9D,4BAAM,qBAAqB,eAAe;AAC1C,0BAAI,CAAC,iBAAiB,wBAAwB,CAAC,sBAAsB,CAAC,eAAe;AACnF,wBAAAJ,GAAE,eAAe;AAAA,sBACnB;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AACA,qBAAK,GAAG,SAAS,iBAAiB,WAAW,oBAAoB;AAAA,kBAC/D,QAAQ,KAAK,gBAAgB;AAAA,gBAC/B,CAAC;AAAA,cACH;AAAA,YACF;AAAA,YACA,0BAA0B;AACxB,kBAAI,KAAK,QAAQ,YAAY;AAC3B,sBAAM,mBAAmB,CAACA,OAAM;AAC9B,kBAAAA,GAAE,eAAe;AACjB,wBAAM,QAAQ,KAAK,GAAG;AACtB,wBAAM,WAAW,MAAM;AACvB,wBAAM,SAAS,MAAM;AACrB,wBAAM,SAAS,MAAM,MAAM,MAAM,GAAG,QAAQ;AAC5C,wBAAM,QAAQ,MAAM,MAAM,MAAM,MAAM;AACtC,wBAAM,OAAO,KAAK,oBAAoB;AACtC,wBAAM,SAASA,GAAE,cAAc,QAAQ,MAAM;AAC7C,wBAAM,sBAAsB,aAAa,KAAK,SAAS;AACvD,wBAAM,mBAAmB,CAAC,MAAM,MAAM,WAAW,GAAG,KAAK;AACzD,wBAAM,eAAe,OAAO,QAAQ,MAAM,yBAAyB,EAAE;AACrE,wBAAM,iBAAiB,aAAa,WAAW,GAAG;AAClD,wBAAM,WAAW,aAAa,QAAQ,OAAO,EAAE;AAC/C,wBAAM,YAAY,kBAAkB,mBAAmB,IAAI,QAAQ,KAAK;AACxE,sBAAI,SAAS,SAAS,YAAY;AAClC,sBAAI,aAAaI,cAAa,MAAM,cAAc,QAAQ,IAAI;AAC9D,yBAAO,WAAW,WAAW,KAAK,OAAO,SAAS,GAAG;AACnD,6BAAS,OAAO,MAAM,GAAG,EAAE;AAC3B,iCAAaA,cAAa,MAAM,cAAc,QAAQ,IAAI;AAAA,kBAC5D;AACA,sBAAI,CAAC,YAAY;AACf;AAAA,kBACF;AACA,sBAAI,KAAK,uBAAuB,WAAW,SAAS,KAAK,qBAAqB;AAC5E,wBAAI,MAAM,iBAAiB,MAAM,MAAM,QAAQ;AAC7C,4BAAM,aAAa,WAAW,SAAS,KAAK;AAC5C,+BAAS,OAAO,MAAM,GAAG,OAAO,SAAS,UAAU;AAAA,oBACrD,OAAO;AACL;AAAA,oBACF;AAAA,kBACF;AACA,wBAAM,QAAQ;AACd,wBAAM,WAAW,WAAW,UAAU;AACtC,wBAAM,kBAAkB,UAAU,QAAQ;AAC1C,wBAAM,cAAc,IAAI,WAAW,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC;AAAA,gBAChE;AACA,qBAAK,GAAG,SAAS,iBAAiB,SAAS,kBAAkB;AAAA,kBAC3D,QAAQ,KAAK,gBAAgB;AAAA,gBAC/B,CAAC;AAAA,cACH;AAAA,YACF;AAAA;AAAA,YAEA,KAAK,QAAQ;AACX,oBAAMC,OAAM,OAAO,KAAK,GAAG,SAAS,aAAa,WAAW,CAAC;AAC7D,qBAAOA,QAAO,OAAO,SAASA,OAAM,OAAO,UAAU,GAAGA,IAAG,IAAI;AAAA,YACjE;AAAA;AAAA,YAEA,SAAS,MAAM,cAAc,CAAC,GAAG;AAC/B,oBAAML,KAAI,IAAI,YAAY,MAAM;AAAA,gBAC9B,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,QAAQ;AAAA,cACV,CAAC;AACD,mBAAK,GAAG,SAAS,cAAcA,EAAC;AAAA,YAClC;AAAA;AAAA,YAEA,gBAAgB;AACd,oBAAM,EAAE,kBAAkB,cAAc,IAAI,KAAK;AACjD,mBAAK,0BAA0B,IAAI,gBAAgB;AACnD,kBAAI,kBAAkB;AACpB,qBAAK,GAAG,gBAAgB,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,WAAW;AAAA,cACvE;AACA,mBAAK,GAAG,gBAAgB,UAAU,OAAO,QAAQ,IAAI;AACrD,mBAAK,GAAG,gBAAgB,aAAa,KAAK,UAAU,MAAM;AAC1D,mBAAK,qBAAqB;AAC1B,kBAAI,eAAe;AACjB,sBAAM,mBAAmB,KAAK,GAAG,YAAY;AAC7C,oBAAI,kBAAkB;AACpB,uBAAK,GAAG,kBAAkB,kBAAkB,KAAK;AACjD,uBAAK,GAAG,YAAY,YAAY;AAAA,gBAClC;AACA,qBAAK,GAAG,YAAY,MAAM;AAAA,cAC5B;AACA,mBAAK,uBAAuB;AAC5B,mBAAK,GAAG,cAAc,UAAU,IAAI,QAAQ,QAAQ;AACpD,mBAAK,SAAS,OAAO,qBAAqB;AAAA,YAC5C;AAAA;AAAA,YAEA,uBAAuB;AACrB,kBAAI,KAAK,QAAQ,mBAAmB;AAClC,qBAAK,QAAQ,kBAAkB,YAAY,KAAK,GAAG,QAAQ;AAAA,cAC7D;AACA,kBAAI,CAAC,KAAK,QAAQ,oBAAoB;AACpC,sBAAM,uBAAuB,KAAK,GAAG,SAAS,sBAAsB;AACpE,sBAAM,cAAc,KAAK,GAAG,SAAS;AACrC,oBAAI,KAAK,QAAQ,mBAAmB;AAClC,uBAAK,GAAG,SAAS,MAAM,MAAM,GAAG,qBAAqB,MAAM,WAAW;AACtE,uBAAK,GAAG,SAAS,MAAM,OAAO,GAAG,qBAAqB,IAAI;AAC1D,wBAAM,qBAAqB,MAAM,KAAK,eAAe;AACrD,yBAAO,iBAAiB,UAAU,oBAAoB;AAAA,oBACpD,QAAQ,KAAK,wBAAwB;AAAA,kBACvC,CAAC;AAAA,gBACH;AAAA,cACF;AAAA,YACF;AAAA;AAAA,YAEA,yBAAyB;AACvB,oBAAM,SAAS,KAAK,wBAAwB;AAC5C,mBAAK,+BAA+B,MAAM;AAC1C,mBAAK,kCAAkC,MAAM;AAC7C,mBAAK,8BAA8B,MAAM;AACzC,mBAAK,6BAA6B,MAAM;AACxC,kBAAI,KAAK,QAAQ,eAAe;AAC9B,qBAAK,6BAA6B,MAAM;AAAA,cAC1C;AAAA,YACF;AAAA;AAAA;AAAA,YAGA,+BAA+B,QAAQ;AACrC,oBAAM,6BAA6B,CAACA,OAAM;AACxC,sBAAM,WAAWA,GAAE,QAAQ;AAAA,kBACzB,IAAI,QAAQ,YAAY;AAAA,gBAC1B;AACA,oBAAI,UAAU;AACZ,uBAAK,GAAG,kBAAkB,UAAU,KAAK;AAAA,gBAC3C;AAAA,cACF;AACA,mBAAK,GAAG,YAAY;AAAA,gBAClB;AAAA,gBACA;AAAA,gBACA;AAAA,kBACE;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA;AAAA,YAEA,kCAAkC,QAAQ;AACxC,oBAAM,yBAAyB,CAACA,OAAM;AACpC,sBAAM,WAAWA,GAAE,QAAQ;AAAA,kBACzB,IAAI,QAAQ,YAAY;AAAA,gBAC1B;AACA,oBAAI,UAAU;AACZ,uBAAK,gBAAgB,QAAQ;AAAA,gBAC/B;AAAA,cACF;AACA,mBAAK,GAAG,YAAY,iBAAiB,SAAS,wBAAwB;AAAA,gBACpE;AAAA,cACF,CAAC;AAAA,YACH;AAAA;AAAA;AAAA,YAGA,8BAA8B,QAAQ;AACpC,oBAAM,wBAAwB,CAACA,OAAM;AACnC,sBAAM,SAASA,GAAE;AACjB,sBAAM,wBAAwB,CAAC,CAAC,OAAO;AAAA,kBACrC,QAAQ,KAAK,EAAE;AAAA,gBACjB;AACA,oBAAI,CAAC,uBAAuB;AAC1B,uBAAK,eAAe;AAAA,gBACtB;AAAA,cACF;AACA,yBAAW,MAAM;AACf,yBAAS,gBAAgB;AAAA,kBACvB;AAAA,kBACA;AAAA,kBACA,EAAE,OAAO;AAAA,gBACX;AAAA,cACF,GAAG,CAAC;AAAA,YACN;AAAA;AAAA;AAAA;AAAA;AAAA,YAKA,6BAA6B,QAAQ;AACnC,kBAAI,QAAQ;AACZ,kBAAI,aAAa;AACjB,oBAAM,0BAA0B,CAACA,OAAM;AACrC,sBAAM,cAAc;AAAA,kBAClB,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,gBACP;AACA,oBAAI,YAAY,SAASA,GAAE,GAAG,GAAG;AAC/B,kBAAAA,GAAE,eAAe;AACjB,kBAAAA,GAAE,gBAAgB;AAClB,sBAAIA,GAAE,QAAQ,KAAK,YAAYA,GAAE,QAAQ,KAAK,YAAY;AACxD,yBAAK,iBAAiBA,GAAE,GAAG;AAAA,kBAC7B,WAAWA,GAAE,QAAQ,KAAK,OAAO;AAC/B,yBAAK,gBAAgB;AAAA,kBACvB,WAAWA,GAAE,QAAQ,KAAK,KAAK;AAC7B,yBAAK,eAAe;AAAA,kBACtB;AAAA,gBACF;AACA,oBAAI,CAAC,KAAK,QAAQ,iBAAiB,MAAM,mBAAmB,KAAKA,GAAE,GAAG,GAAG;AACvE,kBAAAA,GAAE,gBAAgB;AAClB,sBAAI,YAAY;AACd,iCAAa,UAAU;AAAA,kBACzB;AACA,2BAASA,GAAE,IAAI,YAAY;AAC3B,uBAAK,kBAAkB,KAAK;AAC5B,+BAAa,WAAW,MAAM;AAC5B,4BAAQ;AAAA,kBACV,GAAG,QAAQ,sBAAsB;AAAA,gBACnC;AAAA,cACF;AACA,uBAAS,iBAAiB,WAAW,yBAAyB,EAAE,OAAO,CAAC;AAAA,YAC1E;AAAA;AAAA,YAEA,6BAA6B,QAAQ;AACnC,oBAAM,WAAW,MAAM;AACrB,sBAAM,aAAa,KAAK,GAAG,YAAY,MAAM,KAAK;AAClD,qBAAK,wBAAwB,UAAU;AACvC,oBAAI,KAAK,GAAG,YAAY,OAAO;AAC7B,uBAAK,GAAG,kBAAkB,UAAU,OAAO,QAAQ,IAAI;AAAA,gBACzD,OAAO;AACL,uBAAK,GAAG,kBAAkB,UAAU,IAAI,QAAQ,IAAI;AAAA,gBACtD;AAAA,cACF;AACA,kBAAI,aAAa;AACjB,oBAAM,qBAAqB,MAAM;AAC/B,oBAAI,YAAY;AACd,+BAAa,UAAU;AAAA,gBACzB;AACA,6BAAa,WAAW,MAAM;AAC5B,2BAAS;AACT,+BAAa;AAAA,gBACf,GAAG,GAAG;AAAA,cACR;AACA,mBAAK,GAAG,YAAY,iBAAiB,SAAS,oBAAoB;AAAA,gBAChE;AAAA,cACF,CAAC;AACD,oBAAM,oBAAoB,MAAM;AAC9B,qBAAK,GAAG,YAAY,QAAQ;AAC5B,qBAAK,GAAG,YAAY,MAAM;AAC1B,yBAAS;AAAA,cACX;AACA,mBAAK,GAAG,kBAAkB,iBAAiB,SAAS,mBAAmB;AAAA,gBACrE;AAAA,cACF,CAAC;AAAA,YACH;AAAA;AAAA,YAEA,kBAAkB,OAAO;AACvB,oBAAMM,SAAQ,6BAA6B,KAAK,WAAW,KAAK;AAChE,kBAAIA,QAAO;AACT,sBAAM,WAAWA,OAAM,SAAS,KAAK,EAAE;AACvC,qBAAK,GAAG,kBAAkB,UAAU,KAAK;AACzC,qBAAK,GAAG,SAAS,QAAQ;AAAA,cAC3B;AAAA,YACF;AAAA;AAAA,YAEA,wBAAwB,OAAO;AAC7B,kBAAI;AACJ,kBAAI,UAAU,IAAI;AAChB,mCAAmB,KAAK;AAAA,cAC1B,OAAO;AACL,mCAAmB,oBAAoB,KAAK,WAAW,KAAK;AAAA,cAC9D;AACA,mBAAK,GAAG,gBAAgB,gBAAgB;AAAA,YAC1C;AAAA;AAAA,YAEA,iBAAiB,KAAK;AACpB,kBAAI,OAAO,QAAQ,KAAK,WAAW,KAAK,GAAG,iBAAiB,yBAAyB,KAAK,GAAG,iBAAiB;AAC9G,kBAAI,CAAC,QAAQ,KAAK,GAAG,YAAY,oBAAoB,GAAG;AACtD,uBAAO,QAAQ,KAAK,WAAW,KAAK,GAAG,YAAY,mBAAmB,KAAK,GAAG,YAAY;AAAA,cAC5F;AACA,kBAAI,MAAM;AACR,qBAAK,GAAG,SAAS,IAAI;AACrB,qBAAK,GAAG,kBAAkB,MAAM,KAAK;AAAA,cACvC;AAAA,YACF;AAAA;AAAA,YAEA,kBAAkB;AAChB,kBAAI,KAAK,GAAG,iBAAiB;AAC3B,qBAAK,gBAAgB,KAAK,GAAG,eAAe;AAAA,cAC9C;AAAA,YACF;AAAA;AAAA;AAAA,YAGA,qBAAqB,YAAY;AAC/B,kBAAI,SAAS;AACb,kBAAI,KAAK,QAAQ,mBAAmBF,cAAa,SAAS,KAAK,qBAAqB;AAClF,sBAAM,cAAc,KAAK,QAAQ,gBAAgB,CAAC,OAAO,WAAW,GAAG,KAAK,CAAC,KAAK,QAAQ;AAC1F,sBAAM,EAAE,UAAU,cAAc,IAAIA,cAAa,MAAM;AACvD,sBAAM,SAAS,cAAc,WAAW;AACxC,yBAASA,cAAa,MAAM;AAAA,kBAC1B;AAAA,kBACA,KAAK,oBAAoB;AAAA,kBACzB;AAAA,gBACF;AAAA,cACF;AACA,uBAAS,KAAK,iBAAiB,MAAM;AACrC,mBAAK,GAAG,SAAS,QAAQ;AAAA,YAC3B;AAAA;AAAA;AAAA,YAGA,yBAAyB,YAAY;AACnC,oBAAM,OAAO,KAAK,yBAAyB,UAAU;AACrD,kBAAI,SAAS,MAAM;AACjB,uBAAO,KAAK,YAAY,IAAI;AAAA,cAC9B;AACA,qBAAO;AAAA,YACT;AAAA;AAAA,YAEA,mBAAmB,QAAQ;AACzB,oBAAM,EAAE,UAAU,eAAe,IAAI,KAAK;AAC1C,oBAAM,iBAAiB,OAAO,WAAW,GAAG;AAC5C,kBAAI,kBAAkB,CAAC,UAAU;AAC/B,uBAAO;AAAA,cACT;AACA,oBAAM,YAAY,kBAAkB,OAAO,WAAW,cAAc,KAAK,CAAC,KAAK,QAAQ;AACvF,oBAAM,cAAc,YAAY,OAAO,UAAU,CAAC,IAAI;AACtD,qBAAO,IAAI,QAAQ,GAAG,WAAW;AAAA,YACnC;AAAA;AAAA;AAAA;AAAA,YAIA,yBAAyB,YAAY;AACnC,oBAAM,YAAY,WAAW,QAAQ,GAAG;AACxC,kBAAI,SAAS,YAAY,WAAW,UAAU,SAAS,IAAI;AAC3D,oBAAM,eAAe,KAAK,oBAAoB;AAC9C,oBAAM,mBAAmB,KAAK,oBAAoB;AAClD,uBAAS,KAAK,mBAAmB,MAAM;AACvC,oBAAM,gBAAgB,KAAK,aAAa,QAAQ,IAAI;AACpD,oBAAM,UAAU,WAAW,MAAM;AACjC,kBAAI,eAAe;AACjB,sBAAM,uBAAuB,WAAW,aAAa;AACrD,sBAAM,YAAY,KAAK,kBAAkB,oBAAoB;AAC7D,oBAAI,UAAU,WAAW,GAAG;AAC1B,sBAAI,UAAU,CAAC,MAAM,cAAc;AACjC,2BAAO;AAAA,kBACT;AACA,yBAAO,UAAU,CAAC;AAAA,gBACpB;AACA,oBAAI,CAAC,gBAAgB,KAAK,kBAAkB,UAAU,SAAS,KAAK,cAAc,GAAG;AACnF,yBAAO,KAAK;AAAA,gBACd;AACA,sBAAM,yBAAyB,qBAAqB,KAAK,QAAQ,iBAAiB,OAAO;AACzF,oBAAI,wBAAwB;AAC1B,yBAAO;AAAA,gBACT;AACA,sBAAM,EAAE,WAAW,SAAS,IAAI,KAAK;AACrC,oBAAI,WAAW;AACb,wBAAM,oBAAoB,UAAU;AAAA,oBAClC,CAAC,aAAa,GAAG,gBAAgB,GAAG,QAAQ;AAAA,kBAC9C;AACA,6BAAW,oBAAoB,mBAAmB;AAChD,wBAAI,QAAQ,WAAW,gBAAgB,GAAG;AACxC,6BAAO;AAAA,oBACT;AAAA,kBACF;AAAA,gBACF;AACA,sBAAM,gBAAgB,aAAa;AACnC,sBAAM,6BAA6B,aAAa,CAAC,iBAAiB,QAAQ,SAAS,qBAAqB;AACxG,sBAAM,mBAAmB,gBAAgB,UAAU,SAAS,YAAY,KAAK,CAAC;AAC9E,sBAAM,kBAAkB,iBAAiB,UAAU,CAAC;AACpD,oBAAI,CAAC,oBAAoB,CAAC,iBAAiB;AACzC,yBAAO,UAAU,CAAC;AAAA,gBACpB;AAAA,cACF,WAAW,OAAO,WAAW,GAAG,KAAK,QAAQ,QAAQ;AACnD,sBAAM,cAAc,KAAK,oBAAoB,YAAY;AACzD,oBAAI,eAAe,YAAY,WAAW,OAAO,GAAG;AAClD,yBAAO;AAAA,gBACT;AACA,uBAAO;AAAA,cACT,YAAY,CAAC,UAAU,WAAW,QAAQ,CAAC,cAAc;AACvD,uBAAO,KAAK;AAAA,cACd;AACA,qBAAO;AAAA,YACT;AAAA;AAAA;AAAA,YAGA,YAAY,MAAM;AAChB,oBAAM,EAAE,kBAAkB,WAAW,KAAK,IAAI,KAAK;AACnD,oBAAM,WAAW,KAAK,oBAAoB,QAAQ;AAClD,mBAAK,sBAAsB,OAAO,KAAK,cAAc,IAAI,IAAI,IAAI,CAAC;AAClE,kBAAI,KAAK,oBAAoB,MAAM;AACjC,qBAAK,iBAAiB,KAAK,oBAAoB;AAAA,cACjD;AACA,kBAAI,KAAK,GAAG,iBAAiB;AAC3B,sBAAM,YAAY,QAAQ,YAAY,GAAG,QAAQ,IAAI,SAAS,IAAI,KAAK,GAAG,QAAQ,IAAI,IAAI,QAAQ,KAAK;AACvG,oBAAI,WAAW;AACf,oBAAI,MAAM;AACR,wBAAM,EAAE,MAAM,SAAS,IAAI,KAAK;AAChC,0BAAQ;AACR,8BAAY,KAAK,yBAAyB,QAAQ,kBAAkB,IAAI,EAAE,QAAQ,eAAe,IAAI,QAAQ,EAAE;AAAA,gBACjH,OAAO;AACL,0BAAQ,KAAK;AACb,8BAAY,KAAK;AAAA,gBACnB;AACA,qBAAK,GAAG,qBAAqB,YAAY;AACzC,qBAAK,GAAG,gBAAgB,aAAa,SAAS,KAAK;AACnD,qBAAK,GAAG,gBAAgB,aAAa,KAAK,OAAO,SAAS;AAAA,cAC5D;AACA,kBAAI,kBAAkB;AACpB,sBAAM,WAAW,KAAK,oBAAoB,WAAW,IAAI,KAAK,oBAAoB,QAAQ,KAAK;AAC/F,qBAAK,GAAG,iBAAiB,cAAc;AACvC,qBAAK,GAAG,mBAAmB;AAAA,cAC7B;AACA,mBAAK,mBAAmB;AACxB,mBAAK,iBAAiB;AACtB,qBAAO,aAAa;AAAA,YACtB;AAAA;AAAA,YAEA,mBAAmB;AACjB,oBAAM,EAAE,YAAY,uBAAuB,sBAAsB,IAAI,KAAK;AAC1E,oBAAM,EAAE,KAAK,IAAI,KAAK;AACtB,kBAAI,cAAcA,cAAa,OAAO;AACpC,oBAAI,MAAM;AACR,wBAAM,aAAaA,cAAa,MAAM,WAAW,qBAAqB;AACtE,sBAAI,gBAAgBA,cAAa,MAAM;AAAA,oBACrC;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,kBACF;AACA,sBAAI,cAAc;AAClB,yBAAOA,cAAa,MAAM;AAAA,oBACxB;AAAA,oBACA;AAAA,oBACA;AAAA,kBACF,GAAG;AACD,kCAAc;AACd,qCAAiB;AAAA,kBACnB;AACA,wBAAM,aAAaA,cAAa,MAAM,cAAc,aAAa,IAAI;AACrE,uBAAK,sBAAsB,WAAW;AACtC,sBAAI,SAAS,MAAM;AACjB,yBAAK,sBAAsB,WAAW,SAAS;AAAA,kBACjD;AAAA,gBACF,OAAO;AACL,uBAAK,sBAAsB;AAAA,gBAC7B;AAAA,cACF;AAAA,YACF;AAAA;AAAA,YAEA,qBAAqB;AACnB,oBAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,IAAI,KAAK;AACT,oBAAM,uBAAuB,oBAAoB,kBAAkB,cAAc,CAAC,KAAK,GAAG,yBAAyB,oBAAoB,kBAAkB;AACzJ,kBAAIA,cAAa,SAAS,sBAAsB;AAC9C,sBAAM,aAAaA,cAAa,MAAM,WAAW,qBAAqB;AACtE,oBAAI,cAAc,KAAK,oBAAoB,OAAOA,cAAa,MAAM;AAAA,kBACnE,KAAK,oBAAoB;AAAA,kBACzB;AAAA,kBACA;AAAA,gBACF,IAAI;AACJ,8BAAc,KAAK,iBAAiB,WAAW;AAC/C,oBAAI,OAAO,sBAAsB,YAAY;AAC3C,gCAAc,kBAAkB,aAAa,KAAK,mBAAmB;AAAA,gBACvE;AACA,qBAAK,GAAG,SAAS,aAAa,eAAe,WAAW;AAAA,cAC1D;AAAA,YACF;AAAA;AAAA,YAEA,gBAAgB,UAAU;AACxB,oBAAM,OAAO,SAAS,QAAQ,UAAU,YAAY;AACpD,oBAAM,iBAAiB,KAAK,YAAY,IAAI;AAC5C,mBAAK,eAAe;AACpB,oBAAM,WAAW,SAAS,QAAQ,UAAU,SAAS;AACrD,mBAAK,gBAAgB,QAAQ;AAC7B,kBAAI,KAAK,QAAQ,iBAAiB;AAChC,qBAAK,qBAAqB,KAAK,GAAG,SAAS,KAAK;AAAA,cAClD;AACA,mBAAK,GAAG,SAAS,MAAM;AACvB,kBAAI,gBAAgB;AAClB,qBAAK,sBAAsB;AAAA,cAC7B;AAAA,YACF;AAAA;AAAA,YAEA,iBAAiB;AACf,kBAAI,KAAK,GAAG,gBAAgB,UAAU,SAAS,QAAQ,IAAI,GAAG;AAC5D;AAAA,cACF;AACA,mBAAK,GAAG,gBAAgB,UAAU,IAAI,QAAQ,IAAI;AAClD,mBAAK,GAAG,gBAAgB,aAAa,KAAK,UAAU,OAAO;AAC3D,kBAAI,KAAK,GAAG,iBAAiB;AAC3B,qBAAK,GAAG,gBAAgB,aAAa,KAAK,UAAU,OAAO;AAAA,cAC7D;AACA,kBAAI,KAAK,QAAQ,eAAe;AAC9B,qBAAK,GAAG,YAAY,gBAAgB,KAAK,iBAAiB;AAAA,cAC5D;AACA,mBAAK,GAAG,cAAc,UAAU,OAAO,QAAQ,QAAQ;AACvD,mBAAK,wBAAwB,MAAM;AACnC,mBAAK,0BAA0B;AAC/B,kBAAI,KAAK,QAAQ,mBAAmB;AAClC,qBAAK,GAAG,SAAS,OAAO;AAAA,cAC1B;AACA,mBAAK,SAAS,OAAO,sBAAsB;AAAA,YAC7C;AAAA;AAAA;AAAA,YAGA,gBAAgB,iBAAiB;AAC/B,oBAAM,WAAW,KAAK,GAAG,SAAS;AAClC,oBAAM,cAAc,IAAI,eAAe;AACvC,kBAAI;AACJ,kBAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,sBAAM,eAAe,KAAK,aAAa,QAAQ;AAC/C,oBAAI,cAAc;AAChB,8BAAY,SAAS,QAAQ,cAAc,WAAW;AAAA,gBACxD,OAAO;AACL,8BAAY;AAAA,gBACd;AACA,qBAAK,GAAG,SAAS,QAAQ;AAAA,cAC3B;AAAA,YACF;AAAA;AAAA;AAAA,YAGA,aAAa,QAAQ,iBAAiB;AACpC,kBAAI,WAAW;AACf,kBAAI,OAAO,WAAW,GAAG,GAAG;AAC1B,oBAAI,eAAe;AACnB,oBAAI,oBAAoB;AACxB,yBAASL,KAAI,GAAGA,KAAI,OAAO,QAAQA,MAAK;AACtC,wBAAMR,KAAI,OAAO,OAAOQ,EAAC;AACzB,sBAAI,QAAQ,KAAKR,EAAC,GAAG;AACnB,oCAAgBA;AAChB,0BAAM,cAAc,QAAQ,KAAK,kBAAkB,YAAY,CAAC;AAChE,wBAAI,CAAC,aAAa;AAChB;AAAA,oBACF;AACA,wBAAI,KAAK,UAAU,IAAI,YAAY,GAAG;AACpC,iCAAW,OAAO,UAAU,GAAGQ,KAAI,CAAC;AACpC,0CAAoB;AACpB,0BAAI,CAAC,iBAAiB;AACpB;AAAA,sBACF;AAAA,oBACF,WAAW,mBAAmB,mBAAmB;AAC/C,iCAAW,OAAO,UAAU,GAAGA,KAAI,CAAC;AAAA,oBACtC;AACA,wBAAI,aAAa,WAAW,KAAK,gBAAgB;AAC/C;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AACA,qBAAO;AAAA,YACT;AAAA;AAAA,YAEA,eAAe,aAAa;AAC1B,oBAAM,MAAM,eAAe,KAAK,GAAG,SAAS,MAAM,KAAK;AACvD,oBAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,kBAAI;AACJ,oBAAM,aAAa,WAAW,GAAG;AACjC,kBAAI,KAAK,QAAQ,oBAAoB,CAAC,IAAI,WAAW,GAAG,KAAK,YAAY,YAAY;AACnF,yBAAS,IAAI,QAAQ;AAAA,cACvB,OAAO;AACL,yBAAS;AAAA,cACX;AACA,qBAAO,SAAS;AAAA,YAClB;AAAA;AAAA,YAEA,iBAAiB,YAAY;AAC3B,oBAAM,WAAW,KAAK,aAAa,UAAU;AAC7C,oBAAM,SAAS;AAAA,gBACb;AAAA,gBACA;AAAA,gBACA,KAAK,QAAQ;AAAA,gBACb,KAAK;AAAA,cACP;AACA,qBAAO,KAAK,KAAK,MAAM;AAAA,YACzB;AAAA;AAAA,YAEA,wBAAwB;AACtB,mBAAK,SAAS,OAAO,cAAc;AAAA,YACrC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKA,oBAAoB;AAClB,kBAAI,KAAK,QAAQ,mBAAmB,gBAAgB,QAAQK,cAAa,aAAa;AACpF,qBAAK,iBAAiBA,cAAa;AACnC,sBAAM,4BAA4B,KAAK,oBAAoB,QAAQ,KAAK,GAAG,qBAAqB,UAAU,SAAS,QAAQ,KAAK;AAChI,oBAAI,CAAC,2BAA2B;AAC9B,uBAAK,WAAW,KAAK,cAAc;AAAA,gBACrC;AACA,qBAAK,0BAA0B;AAAA,cACjC;AAAA,YACF;AAAA;AAAA,YAEA,cAAc;AACZ,kBAAIA,cAAa,OAAO;AACtB,oBAAI,KAAK,GAAG,SAAS,OAAO;AAC1B,uBAAK,qBAAqB,KAAK,GAAG,SAAS,KAAK;AAAA,gBAClD;AACA,oBAAI,KAAK,oBAAoB,MAAM;AACjC,uBAAK,mBAAmB;AACxB,uBAAK,iBAAiB;AAAA,gBACxB;AAAA,cACF;AACA,mBAAK,0BAA0B;AAAA,YACjC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKA,UAAU;AACR,kBAAI,CAAC,KAAK,GAAG,UAAU;AACrB;AAAA,cACF;AACA,kBAAI,KAAK,QAAQ,eAAe;AAC9B,qBAAK,eAAe;AAAA,cACtB;AACA,mBAAK,gBAAgB,MAAM;AAC3B,mBAAK,kBAAkB;AACvB,mBAAK,GAAG,QAAQ;AAChB,kBAAIA,cAAa,qBAAqB,KAAK;AACzC,gBAAAA,cAAa,UAAU,OAAO,KAAK,EAAE;AAAA,cACvC,OAAO;AACL,uBAAOA,cAAa,UAAU,KAAK,EAAE;AAAA,cACvC;AAAA,YACF;AAAA;AAAA,YAEA,eAAe;AACb,kBAAIA,cAAa,OAAO;AACtB,uBAAOA,cAAa,MAAM;AAAA,kBACxB,KAAK,eAAe;AAAA,kBACpB,KAAK,oBAAoB;AAAA,gBAC3B;AAAA,cACF;AACA,qBAAO;AAAA,YACT;AAAA;AAAA,YAEA,UAAU,QAAQ;AAChB,kBAAIA,cAAa,OAAO;AACtB,sBAAM,EAAE,KAAK,IAAI,KAAK;AACtB,uBAAOA,cAAa,MAAM;AAAA,kBACxB,KAAK,eAAe;AAAA,kBACpB;AAAA,kBACA;AAAA,gBACF;AAAA,cACF;AACA,qBAAO;AAAA,YACT;AAAA;AAAA,YAEA,gBAAgB;AACd,kBAAIA,cAAa,OAAO;AACtB,uBAAOA,cAAa,MAAM;AAAA,kBACxB,KAAK,eAAe;AAAA,kBACpB,KAAK,oBAAoB;AAAA,gBAC3B;AAAA,cACF;AACA,qBAAO,UAAU;AAAA,YACnB;AAAA;AAAA,YAEA,yBAAyB;AACvB,qBAAO,KAAK;AAAA,YACd;AAAA;AAAA,YAEA,qBAAqB;AACnB,kBAAIA,cAAa,OAAO;AACtB,sBAAM,EAAE,KAAK,IAAI,KAAK;AACtB,uBAAOA,cAAa,MAAM,mBAAmB,KAAK,eAAe,GAAG,IAAI;AAAA,cAC1E;AACA,qBAAO,UAAU;AAAA,YACnB;AAAA;AAAA,YAEA,gBAAgB;AACd,oBAAM,EAAE,UAAU,KAAK,IAAI,KAAK;AAChC,kBAAI,aAAa,GAAG,aAAaA,cAAa,OAAO;AACnD,sBAAM,SAAS,KAAK,eAAe;AACnC,sBAAM,aAAaA,cAAa,MAAM,cAAc,QAAQ,IAAI;AAChE,oBAAI,WAAW,CAAC,MAAM,GAAG,iBAAiB,WAAW,WAAW,GAAG,oBAAoB;AACrF,yBAAO;AAAA,gBACT;AAAA,cACF;AACA,qBAAO,KAAK,gBAAgB,KAAK;AAAA,YACnC;AAAA;AAAA,YAEA,uBAAuB;AACrB,qBAAO,KAAK,gBAAgB,IAAI;AAAA,YAClC;AAAA,YACA,uBAAuB,KAAK;AAC1B,qBAAOA,cAAa,QAAQA,cAAa,MAAM;AAAA,gBAC7C;AAAA,gBACA,KAAK,oBAAoB;AAAA,gBACzB,KAAK,QAAQ;AAAA,cACf,IAAI;AAAA,YACN;AAAA;AAAA,YAEA,gBAAgB,SAAS;AACvB,kBAAI,CAACA,cAAa,OAAO;AACvB,uBAAO;AAAA,cACT;AACA,kBAAI,CAAC,KAAK,oBAAoB,MAAM;AAClC,uBAAO;AAAA,cACT;AACA,oBAAM,eAAe,CAACV,OAAM,UAAU,KAAK,oBAAoBA,EAAC,IAAI,KAAK,uBAAuBA,EAAC;AACjG,oBAAM,MAAM,KAAK,eAAe;AAChC,oBAAM,oBAAoB,IAAI,OAAO,MAAM,aAAa;AACxD,oBAAM,eAAe,oBAAoB;AACzC,kBAAI,gBAAgB,CAAC,KAAK,QAAQ,iBAAiB;AACjD,sBAAM,kBAAkB,IAAI,UAAU,GAAG,iBAAiB;AAC1D,sBAAM,qBAAqB,aAAa,eAAe;AACvD,sBAAM,UAAU,aAAa,GAAG;AAChC,uBAAO,sBAAsB;AAAA,cAC/B;AACA,qBAAO,aAAa,GAAG;AAAA,YACzB;AAAA,YACA,oBAAoB,KAAK;AACvB,qBAAOU,cAAa,QAAQA,cAAa,MAAM;AAAA,gBAC7C;AAAA,gBACA,KAAK,oBAAoB;AAAA,gBACzB,KAAK,QAAQ;AAAA,cACf,IAAI;AAAA,YACN;AAAA;AAAA,YAEA,WAAW,MAAM;AACf,oBAAM,YAAY,MAAM,YAAY;AACpC,kBAAI,CAAC,OAAO,SAAS,GAAG;AACtB,sBAAM,IAAI,MAAM,0BAA0B,SAAS,GAAG;AAAA,cACxD;AACA,oBAAM,iBAAiB,KAAK,oBAAoB;AAChD,oBAAM,kBAAkB,QAAQ,cAAc,kBAAkB,CAAC,QAAQ;AACzE,kBAAI,iBAAiB;AACnB,qBAAK,YAAY,SAAS;AAC1B,qBAAK,gBAAgB,KAAK,oBAAoB,QAAQ;AACtD,oBAAI,KAAK,QAAQ,iBAAiB;AAChC,uBAAK,qBAAqB,KAAK,GAAG,SAAS,KAAK;AAAA,gBAClD;AACA,qBAAK,sBAAsB;AAAA,cAC7B;AAAA,YACF;AAAA;AAAA,YAEA,UAAU,QAAQ;AAChB,oBAAM,iBAAiB,KAAK,yBAAyB,MAAM;AAC3D,mBAAK,qBAAqB,MAAM;AAChC,kBAAI,gBAAgB;AAClB,qBAAK,sBAAsB;AAAA,cAC7B;AACA,mBAAK,SAAS,OAAO,OAAO,EAAE,aAAa,KAAK,CAAC;AAAA,YACnD;AAAA;AAAA,YAEA,yBAAyB,MAAM;AAC7B,mBAAK,QAAQ,wBAAwB;AACrC,mBAAK,mBAAmB;AAAA,YAC1B;AAAA,YACA,YAAY,UAAU;AACpB,mBAAK,GAAG,SAAS,WAAW;AAC5B,kBAAI,UAAU;AACZ,qBAAK,GAAG,gBAAgB,aAAa,YAAY,MAAM;AAAA,cACzD,OAAO;AACL,qBAAK,GAAG,gBAAgB,gBAAgB,UAAU;AAAA,cACpD;AAAA,YACF;AAAA,UACF;AACA,cAAI,cAAc,CAAC,WAAW;AAC5B,gBAAI,CAACA,cAAa,SAAS,CAACA,cAAa,2BAA2B;AAClE,kBAAI;AACJ,kBAAI,OAAO,WAAW,YAAY;AAChC,oBAAI;AACF,6BAAW,QAAQ,QAAQ,OAAO,CAAC;AAAA,gBACrC,SAASG,QAAO;AACd,yBAAO,QAAQ,OAAOA,MAAK;AAAA,gBAC7B;AAAA,cACF,OAAO;AACL,uBAAO,QAAQ;AAAA,kBACb,IAAI;AAAA,oBACF,8GAA8G,OAAO,MAAM;AAAA,kBAC7H;AAAA,gBACF;AAAA,cACF;AACA,cAAAH,cAAa,4BAA4B;AACzC,qBAAO,SAAS,KAAK,CAACI,YAAW;AAC/B,sBAAMN,SAAQM,SAAQ;AACtB,oBAAI,CAACN,UAAS,OAAOA,WAAU,UAAU;AACvC,wBAAM,IAAI;AAAA,oBACR;AAAA,kBACF;AAAA,gBACF;AACA,gBAAAE,cAAa,QAAQF;AACrB,gCAAgB,aAAa;AAC7B,uBAAO;AAAA,cACT,CAAC,EAAE,MAAM,CAACK,WAAU;AAClB,gCAAgB,4BAA4BA,MAAK;AACjD,sBAAMA;AAAA,cACR,CAAC;AAAA,YACH;AACA,mBAAO;AAAA,UACT;AACA,cAAI,kBAAkB,CAAC,WAAW,SAAS;AACzC,mBAAO,OAAOH,cAAa,SAAS,EAAE,QAAQ,CAAC,aAAa;AAC1D,oBAAMK,MAAK,SAAS,MAAM;AAC1B,kBAAI,OAAOA,QAAO,YAAY;AAC5B,gBAAAA,IAAG,MAAM,UAAU,IAAI;AAAA,cACzB;AAAA,YACF,CAAC;AAAA,UACH;AACA,cAAIL,gBAAe,OAAO;AAAA,YACxB,CAAC,OAAO,YAAY;AAClB,oBAAM,MAAM,IAAI,IAAI,OAAO,OAAO;AAClC,cAAAA,cAAa,UAAU,IAAI,EAAE,IAAI;AACjC,oBAAM,MAAM;AACZ,qBAAO;AAAA,YACT;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA,eAAe,MAAM,SAAS,eAAe;AAAA;AAAA,cAE7C,gBAAgB,MAAM;AAAA;AAAA,cAEtB,aAAa,CAAC,UAAU;AACtB,sBAAMN,OAAM,MAAM,QAAQ;AAC1B,uBAAOA,OAAMM,cAAa,UAAUN,IAAG,IAAI;AAAA,cAC7C;AAAA;AAAA,cAEA,WAAW,CAAC;AAAA,cACZ;AAAA,cACA,2BAA2B;AAAA,cAC3B,2BAA2B;AAAA,cAC3B,SAAS;AAAA,YACX;AAAA,UACF;AACA,cAAI,yBAAyBM;AAC7B,iBAAO,aAAa,sBAAsB;AAAA,QAC5C,GAAG;AAGD,eAAO,cAAc;AAAA,MACvB,CAAC;AAAA;AAAA;;;ACx9HD;AAAA;AAAA;AAAA;AAAA,MAohBM,eACA,OAEC;AAvhBP;AAAA;AAAA,OAAC,WAAY;AAKb,YAAIM,KAAE,QAAM;AAAK,iBAASC,GAAEC,IAAEC,IAAE;AAAC,UAAAD,KAAEA,GAAE,MAAM,GAAG;AAAE,cAAIE,KAAEJ;AAAE,UAAAE,GAAE,CAAC,KAAIE,MAAG,eAAa,OAAOA,GAAE,cAAYA,GAAE,WAAW,SAAOF,GAAE,CAAC,CAAC;AAAE,mBAAQG,IAAEH,GAAE,WAASG,KAAEH,GAAE,MAAM,KAAI,CAAAA,GAAE,UAAQ,WAASC,KAAEC,GAAEC,EAAC,KAAGD,GAAEC,EAAC,MAAI,OAAO,UAAUA,EAAC,IAAED,KAAEA,GAAEC,EAAC,IAAED,KAAEA,GAAEC,EAAC,IAAE,CAAC,IAAED,GAAEC,EAAC,IAAEF;AAAA,QAAC;AAAC,iBAASG,GAAEJ,IAAEC,IAAE;AAAC,mBAASC,KAAG;AAAA,UAAC;AAAC,UAAAA,GAAE,YAAUD,GAAE;AAAU,UAAAD,GAAE,KAAGC,GAAE;AAAU,UAAAD,GAAE,YAAU,IAAIE;AAAE,UAAAF,GAAE,UAAU,cAAYA;AAAE,UAAAA,GAAE,KAAG,SAASG,IAAEE,IAAEC,IAAE;AAAC,qBAAQC,KAAE,MAAM,UAAU,SAAO,CAAC,GAAEC,KAAE,GAAEA,KAAE,UAAU,QAAOA,KAAI,CAAAD,GAAEC,KAAE,CAAC,IAAE,UAAUA,EAAC;AAAE,mBAAOP,GAAE,UAAUI,EAAC,EAAE,MAAMF,IAAEI,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC;AAAC,iBAAS,GAAGP,IAAE;AAAC,gBAAMC,KAAE,CAAC;AAAE,cAAIC,KAAE;AAAE,qBAAUC,MAAKH,GAAE,CAAAC,GAAEC,IAAG,IAAEF,GAAEG,EAAC;AAAE,iBAAOF;AAAA,QAAC;AAAC;AAAC,YAAI,KAAG,MAAK;AAAA,UAAC,YAAYD,IAAE;AAAC,gBAAG,OAAK,GAAG,OAAM,MAAM,2CAA2C;AAAE,iBAAK,IAAEA;AAAA,UAAC;AAAA,UAAC,WAAU;AAAC,mBAAO,KAAK,EAAE,SAAS;AAAA,UAAC;AAAA,QAAC,GAAE,KAAG,CAAC;AAAE,YAAI,GAAG,yBAAyB;AAAE,YAAI,GAAG,aAAa;AAAE,cAAM,KAAG,CAAC;AAAA,QAAE,MAAM,GAAE;AAAA,UAAC,cAAa;AAAC,gBAAG,OAAK,GAAG,OAAM,MAAM,6CAA6C;AAAA,UAAE;AAAA,UAAC,WAAU;AAAC,mBAAM,GAAG,SAAS;AAAA,UAAC;AAAA,QAAC;AAAC,YAAI;AAAG,cAAM,KAAG,CAAC;AAAA,QAAE,MAAM,GAAE;AAAA,UAAC,cAAa;AAAC,gBAAG,OAAK,GAAG,OAAM,MAAM,kDAAkD;AAAA,UAAE;AAAA,UAAC,WAAU;AAAC,mBAAM,GAAG,SAAS;AAAA,UAAC;AAAA,QAAC;AAAC,YAAI;AAAG,cAAM,KAAG,CAAC;AAAA,QAAE,MAAM,GAAE;AAAA,UAAC,cAAa;AAAC,gBAAIA,KAAEF,GAAE,gBAAcA,GAAE,aAAa,aAAW;AAAG,gBAAG,OAAK,GAAG,OAAM,MAAM,4CAA4C;AAAE,iBAAK,IAAEE;AAAA,UAAC;AAAA,UAAC,WAAU;AAAC,mBAAO,KAAK,EAAE,SAAS;AAAA,UAAC;AAAA,QAAC;AAAC,YAAI;AAAG,iBAAS,GAAGA,IAAEC,IAAE;AAAC,eAAK,IAAED;AAAE,eAAK,IAAE,CAAC,CAACC,GAAE;AAAG,eAAK,IAAEA,GAAE;AAAE,eAAK,IAAEA,GAAE;AAAK,eAAK,IAAE;AAAG,kBAAO,KAAK,GAAE;AAAA,YAAC,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK;AAAG,mBAAK,IAAE;AAAA,UAAE;AAAC,eAAK,IAAEA,GAAE;AAAA,QAAY;AAAC,YAAI,KAAG,GAAE,KAAG,GAAE,KAAG,GAAE,KAAG,GAAE,KAAG,GAAE,KAAG,IAAG,KAAG;AAAG,iBAAS,GAAGD,IAAEC,IAAE;AAAC,eAAK,IAAED;AAAE,eAAK,IAAE,CAAC;AAAE,eAAIA,KAAE,GAAEA,KAAEC,GAAE,QAAOD,MAAI;AAAC,gBAAIE,KAAED,GAAED,EAAC;AAAE,iBAAK,EAAEE,GAAE,CAAC,IAAEA;AAAA,UAAC;AAAA,QAAC;AAAC,iBAAS,GAAGF,IAAE;AAAC,UAAAA,KAAE,GAAGA,GAAE,CAAC;AAAE,UAAAA,GAAE,KAAK,SAASC,IAAEC,IAAE;AAAC,mBAAOD,GAAE,IAAEC,GAAE;AAAA,UAAC,CAAC;AAAE,iBAAOF;AAAA,QAAC;AAAC;AAAC,iBAASS,KAAG;AAAC,eAAK,IAAE,CAAC;AAAE,eAAK,IAAE,KAAK,EAAE,EAAE;AAAE,eAAK,IAAE,KAAK,IAAE;AAAA,QAAI;AAAC,QAAAA,GAAE,UAAU,MAAI,SAAST,IAAE;AAAC,iBAAOU,GAAE,MAAKV,GAAE,CAAC;AAAA,QAAC;AAAE,QAAAS,GAAE,UAAU,MAAI,SAAST,IAAEC,IAAE;AAAC,iBAAOU,GAAE,MAAKX,GAAE,GAAEC,EAAC;AAAA,QAAC;AAAE,QAAAQ,GAAE,UAAU,MAAI,SAAST,IAAEC,IAAE;AAAC,UAAAW,GAAE,MAAKZ,GAAE,GAAEC,EAAC;AAAA,QAAC;AAAE,QAAAQ,GAAE,UAAU,MAAI,SAAST,IAAEC,IAAE;AAAC,aAAG,MAAKD,GAAE,GAAEC,EAAC;AAAA,QAAC;AAC72D,iBAAS,GAAGD,IAAEC,IAAE;AAAC,mBAAQC,KAAE,GAAGF,GAAE,EAAE,CAAC,GAAEG,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,gBAAIE,KAAEH,GAAEC,EAAC,GAAEG,KAAED,GAAE;AAAE,gBAAGK,GAAET,IAAEK,EAAC,GAAE;AAAC,cAAAN,GAAE,KAAG,OAAOA,GAAE,EAAEK,GAAE,CAAC;AAAE,kBAAIE,KAAE,MAAIF,GAAE,KAAG,MAAIA,GAAE;AAAE,kBAAGA,GAAE,GAAE;AAAC,gBAAAA,KAAEQ,GAAEZ,IAAEK,EAAC;AAAE,yBAAQE,KAAE,GAAEA,KAAEH,GAAE,QAAOG,KAAI,IAAGR,IAAEM,IAAEC,KAAEF,GAAEG,EAAC,EAAE,MAAM,IAAEH,GAAEG,EAAC,CAAC;AAAA,cAAC,MAAM,CAAAH,KAAES,GAAEb,IAAEK,EAAC,GAAEC,MAAGA,KAAEO,GAAEd,IAAEM,EAAC,KAAG,GAAGC,IAAEF,EAAC,IAAEO,GAAEZ,IAAEM,IAAED,GAAE,MAAM,CAAC,IAAEO,GAAEZ,IAAEM,IAAED,EAAC;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAAC,QAAAI,GAAE,UAAU,QAAM,WAAU;AAAC,cAAIT,KAAE,IAAI,KAAK;AAAY,UAAAA,MAAG,SAAOA,GAAE,IAAE,CAAC,GAAEA,GAAE,MAAIA,GAAE,IAAE,CAAC,IAAG,GAAGA,IAAE,IAAI;AAAG,iBAAOA;AAAA,QAAC;AAAE,iBAASU,GAAEV,IAAEC,IAAE;AAAC,iBAAO,QAAMD,GAAE,EAAEC,EAAC;AAAA,QAAC;AACxZ,iBAASa,GAAEd,IAAEC,IAAE;AAAC,cAAIC,KAAEF,GAAE,EAAEC,EAAC;AAAE,cAAG,QAAMC,GAAE,QAAO;AAAK,cAAGF,GAAE,GAAE;AAAC,gBAAG,EAAEC,MAAKD,GAAE,IAAG;AAAC,kBAAIG,KAAEH,GAAE,GAAEK,KAAEL,GAAE,EAAEC,EAAC;AAAE,kBAAG,QAAMC,GAAE,KAAGG,GAAE,GAAE;AAAC,yBAAQC,KAAE,CAAC,GAAEC,KAAE,GAAEA,KAAEL,GAAE,QAAOK,KAAI,CAAAD,GAAEC,EAAC,IAAEJ,GAAE,EAAEE,IAAEH,GAAEK,EAAC,CAAC;AAAE,gBAAAL,KAAEI;AAAA,cAAC,MAAM,CAAAJ,KAAEC,GAAE,EAAEE,IAAEH,EAAC;AAAE,qBAAOF,GAAE,EAAEC,EAAC,IAAEC;AAAA,YAAC;AAAC,mBAAOF,GAAE,EAAEC,EAAC;AAAA,UAAC;AAAC,iBAAOC;AAAA,QAAC;AAAC,iBAASS,GAAEX,IAAEC,IAAEC,IAAE;AAAC,cAAIC,KAAEW,GAAEd,IAAEC,EAAC;AAAE,iBAAOD,GAAE,EAAEC,EAAC,EAAE,IAAEE,GAAED,MAAG,CAAC,IAAEC;AAAA,QAAC;AAAC,iBAASY,GAAEf,IAAEC,IAAE;AAAC,cAAGS,GAAEV,IAAEC,EAAC,EAAE,CAAAD,KAAEW,GAAEX,IAAEC,EAAC;AAAA,cAAO,IAAE;AAAC,YAAAD,KAAEA,GAAE,EAAEC,EAAC;AAAE,gBAAG,WAASD,GAAE,EAAE,KAAGC,KAAED,GAAE,GAAEC,OAAI,QAAQ,CAAAD,GAAE,IAAE;AAAA,qBAAWC,OAAI,OAAO,CAAAD,GAAE,IAAE;AAAA,qBAAUC,OAAI,OAAO,CAAAD,GAAE,IAAEA,GAAE,IAAE,MAAI;AAAA,iBAAO;AAAC,cAAAA,KAAE,IAAIC;AAAE,oBAAM;AAAA,YAAC;AAAC,YAAAD,KAAEA,GAAE;AAAA,UAAC;AAAC,iBAAOA;AAAA,QAAC;AACrd,iBAASa,GAAEb,IAAEC,IAAE;AAAC,iBAAOa,GAAEd,IAAEC,EAAC,KAAG,CAAC;AAAA,QAAC;AAAC,iBAASe,GAAEhB,IAAEC,IAAE;AAAC,iBAAOD,GAAE,EAAEC,EAAC,EAAE,IAAES,GAAEV,IAAEC,EAAC,IAAED,GAAE,EAAEC,EAAC,EAAE,SAAO,IAAES,GAAEV,IAAEC,EAAC,IAAE,IAAE;AAAA,QAAC;AAAC,iBAASW,GAAEZ,IAAEC,IAAEC,IAAE;AAAC,UAAAF,GAAE,EAAEC,EAAC,IAAEC;AAAE,UAAAF,GAAE,MAAIA,GAAE,EAAEC,EAAC,IAAEC;AAAA,QAAE;AAAC,iBAAS,GAAGF,IAAEC,IAAEC,IAAE;AAAC,UAAAF,GAAE,EAAEC,EAAC,MAAID,GAAE,EAAEC,EAAC,IAAE,CAAC;AAAG,UAAAD,GAAE,EAAEC,EAAC,EAAE,KAAKC,EAAC;AAAE,UAAAF,GAAE,KAAG,OAAOA,GAAE,EAAEC,EAAC;AAAA,QAAC;AAAC,iBAASgB,GAAEjB,IAAEC,IAAE;AAAC,cAAIC,KAAE,CAAC,GAAEC;AAAE,eAAIA,MAAKF,GAAE,MAAGE,MAAGD,GAAE,KAAK,IAAI,GAAGC,IAAEF,GAAEE,EAAC,CAAC,CAAC;AAAE,iBAAO,IAAI,GAAGH,IAAEE,EAAC;AAAA,QAAC;AAAC;AAAC,iBAASgB,KAAG;AAAA,QAAC;AAAC,QAAAA,GAAE,UAAU,IAAE,SAASlB,IAAE;AAAC,cAAIA,GAAE;AAAE,gBAAM,MAAM,eAAe;AAAA,QAAE;AAAE,QAAAkB,GAAE,UAAU,IAAE,SAASlB,IAAEC,IAAE;AAAC,cAAG,MAAID,GAAE,KAAG,MAAIA,GAAE,EAAE,QAAOC,cAAaQ,KAAER,KAAE,KAAK,EAAED,GAAE,EAAE,UAAU,EAAE,GAAEC,EAAC;AAAE,cAAG,MAAID,GAAE,EAAE,QAAM,aAAW,OAAOC,MAAG,GAAG,KAAKA,EAAC,MAAID,KAAE,OAAOC,EAAC,GAAE,IAAED,MAAGA,KAAEC;AAAE,cAAG,CAACD,GAAE,EAAE,QAAOC;AAAE,UAAAD,KAAEA,GAAE;AAAE,cAAGA,OAAI,QAAO;AAAC,gBAAG,aAAW,OAAOC,GAAE,QAAO,OAAOA,EAAC;AAAA,UAAC,WAASD,OAAI,UAAQ,aAAW,OAAOC,OAAI,eAAaA,MAAG,gBAAcA,MAAG,UAAQA,MAAG,GAAG,KAAKA,EAAC,GAAG,QAAO,OAAOA,EAAC;AAAE,iBAAOA;AAAA,QAAC;AAAE,YAAI,KAAG;AAAa,iBAASkB,KAAG;AAAA,QAAC;AAAC,QAAAf,GAAEe,IAAED,EAAC;AAAE,QAAAC,GAAE,UAAU,IAAE,SAASnB,IAAEC,IAAE;AAAC,UAAAD,KAAE,IAAIA,GAAE;AAAE,UAAAA,GAAE,IAAE;AAAK,UAAAA,GAAE,IAAEC;AAAE,UAAAD,GAAE,IAAE,CAAC;AAAE,iBAAOA;AAAA,QAAC;AAAE,iBAASoB,KAAG;AAAA,QAAC;AAAC,QAAAhB,GAAEgB,IAAED,EAAC;AAAE,QAAAC,GAAE,UAAU,IAAE,SAASpB,IAAEC,IAAE;AAAC,iBAAO,KAAGD,GAAE,IAAE,CAAC,CAACC,KAAEiB,GAAE,UAAU,EAAE,MAAM,MAAK,SAAS;AAAA,QAAC;AAAE,QAAAE,GAAE,UAAU,IAAE,SAASpB,IAAEC,IAAE;AAAC,iBAAOmB,GAAE,GAAG,EAAE,KAAK,MAAKpB,IAAEC,EAAC;AAAA,QAAC;AAAE,iBAASoB,GAAErB,IAAEC,IAAE;AAAC,kBAAMD,MAAG,KAAK,EAAE,MAAM,MAAK,SAAS;AAAA,QAAC;AAAC,QAAAqB,GAAE,UAAU,IAAE;AAAG,QAAAA,GAAE,UAAU,MAAI,SAASrB,IAAE;AAAC,eAAK,IAAE,KAAGA;AAAA,QAAC;AAAE,QAAAqB,GAAE,UAAU,IAAE,SAASrB,IAAEC,IAAEC,IAAE;AAAC,eAAK,KAAG,OAAOF,EAAC;AAAE,cAAG,QAAMC,GAAE,UAAQE,KAAE,GAAEA,KAAE,UAAU,QAAOA,KAAI,MAAK,KAAG,UAAUA,EAAC;AAAE,iBAAO;AAAA,QAAI;AAAE,iBAASmB,GAAEtB,IAAE;AAAC,UAAAA,GAAE,IAAE;AAAA,QAAE;AAAC,QAAAqB,GAAE,UAAU,WAAS,WAAU;AAAC,iBAAO,KAAK;AAAA,QAAC;AAkBxzC,iBAASE,KAAG;AAAC,UAAAd,GAAE,KAAK,IAAI;AAAA,QAAC;AAAC,QAAAL,GAAEmB,IAAEd,EAAC;AAAE,YAAI,KAAG;AAAK,iBAASe,KAAG;AAAC,UAAAf,GAAE,KAAK,IAAI;AAAA,QAAC;AAAC,QAAAL,GAAEoB,IAAEf,EAAC;AAAE,YAAI,KAAG;AAAK,iBAASgB,KAAG;AAAC,UAAAhB,GAAE,KAAK,IAAI;AAAA,QAAC;AAAC,QAAAL,GAAEqB,IAAEhB,EAAC;AAAE,YAAI,KAAG;AAClI,QAAAc,GAAE,UAAU,IAAE,WAAU;AAAC,cAAIvB,KAAE;AAAG,UAAAA,OAAI,KAAGA,KAAEiB,GAAEM,IAAE,EAAC,GAAE,EAAC,MAAK,gBAAe,IAAG,iCAAgC,GAAE,GAAE,EAAC,MAAK,WAAU,UAAS,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,UAAS,UAAS,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,0BAAyB,IAAG,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,mCAAkC,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,4CAA2C,GAAE,GAAE,cAAa,OAAG,MAAK,QAAO,GAAE,GAAE,EAAC,MAAK,yCAAwC,GAAE,GAAE,MAAK,OAAM,EAAC,CAAC;AAAG,iBAAOvB;AAAA,QAAC;AAAE,QAAAuB,GAAE,IAAEA,GAAE,UAAU;AAC/e,QAAAC,GAAE,UAAU,IAAE,WAAU;AAAC,cAAIxB,KAAE;AAAG,UAAAA,OAAI,KAAGA,KAAEiB,GAAEO,IAAE,EAAC,GAAE,EAAC,MAAK,mBAAkB,IAAG,oCAAmC,GAAE,GAAE,EAAC,MAAK,2BAA0B,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,mBAAkB,IAAG,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,IAAG,EAAC,MAAK,8BAA6B,IAAG,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,kBAAiB,GAAE,GAAE,MAAK,OAAM,EAAC,CAAC;AAAG,iBAAOxB;AAAA,QAAC;AAAE,QAAAwB,GAAE,IAAEA,GAAE,UAAU;AAC1V,QAAAC,GAAE,UAAU,IAAE,WAAU;AAAC,cAAIzB,KAAE;AAAG,UAAAA,OAAI,KAAGA,KAAEiB,GAAEQ,IAAE;AAAA,YAAC,GAAE,EAAC,MAAK,iBAAgB,IAAG,kCAAiC;AAAA,YAAE,GAAE,EAAC,MAAK,gBAAe,GAAE,IAAG,MAAKD,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,cAAa,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,UAAS,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,aAAY,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,gBAAe,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,eAAc,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,mBAAkB,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,QAAO,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,SAAQ,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,OAAM,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,aAAY,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,aAAY,GAAE,IAAG,MAAKA,GAAC;AAAA,YACzf,IAAG,EAAC,MAAK,cAAa,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,iBAAgB,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,oBAAmB,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,gBAAe,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,6BAA4B,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,GAAE,EAAC,MAAK,MAAK,UAAS,MAAG,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG,EAAC,MAAK,gBAAe,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG,EAAC,MAAK,wBAAuB,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG,EAAC,MAAK,kCAAiC,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG,EAAC,MAAK,mBAAkB,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG,EAAC,MAAK,yBAAwB,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG;AAAA,cAAC,MAAK;AAAA,cAC/e,GAAE;AAAA,cAAE,MAAK;AAAA,YAAM;AAAA,YAAE,IAAG,EAAC,MAAK,kCAAiC,GAAE,GAAE,MAAK,OAAM;AAAA,YAAE,IAAG,EAAC,MAAK,sCAAqC,GAAE,GAAE,cAAa,OAAG,MAAK,QAAO;AAAA,YAAE,IAAG,EAAC,MAAK,iBAAgB,IAAG,MAAG,GAAE,IAAG,MAAKD,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,sBAAqB,IAAG,MAAG,GAAE,IAAG,MAAKA,GAAC;AAAA,YAAE,IAAG,EAAC,MAAK,yBAAwB,GAAE,GAAE,cAAa,OAAG,MAAK,QAAO;AAAA,YAAE,IAAG,EAAC,MAAK,kBAAiB,GAAE,GAAE,MAAK,OAAM;AAAA,UAAC,CAAC;AAAG,iBAAOvB;AAAA,QAAC;AAAE,QAAAyB,GAAE,IAAEA,GAAE,UAAU;AAAE,iBAASC,KAAG;AAAC,UAAAjB,GAAE,KAAK,IAAI;AAAA,QAAC;AAAC,QAAAL,GAAEsB,IAAEjB,EAAC;AAAE,YAAI,KAAG,MAAK,KAAG,EAAC,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE;AACjd,QAAAiB,GAAE,UAAU,IAAE,WAAU;AAAC,cAAI1B,KAAE;AAAG,UAAAA,OAAI,KAAGA,KAAEiB,GAAES,IAAE,EAAC,GAAE,EAAC,MAAK,eAAc,IAAG,gCAA+B,GAAE,GAAE,EAAC,MAAK,gBAAe,UAAS,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,mBAAkB,UAAS,MAAG,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,aAAY,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,wBAAuB,GAAE,GAAE,MAAK,QAAO,GAAE,GAAE,EAAC,MAAK,2BAA0B,GAAE,GAAE,cAAa,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,aAAY,GAAE,GAAE,MAAK,OAAM,GAAE,GAAE,EAAC,MAAK,uBAAsB,GAAE,IAAG,cAAa,GAAE,MAAK,GAAE,GAAE,GAAE;AAAA,YAAC,MAAK;AAAA,YACrd,GAAE;AAAA,YAAE,MAAK;AAAA,UAAM,EAAC,CAAC;AAAG,iBAAO1B;AAAA,QAAC;AAAE,QAAA0B,GAAE,OAAKA;AAAE,QAAAA,GAAE,KAAK,IAAEA,GAAE,UAAU;AAgB5D,YAAIC,KAAE;AAAA,UAAC,GAAE,6EAA6E,MAAM,GAAG;AAAA,UAAE,GAAE,CAAC,MAAK,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,MAAK,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,MAAK,MAAK,MAAK,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,MAAK,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,MAAK,MAAK,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UACxf,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UACrf,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAC5f,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KA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",
  "names": ["consumer", "error", "consumer", "s", "consumer", "s", "subscription", "a", "fn", "i", "l", "e", "now", "Symbol", "Symbol", "e", "objectToString", "Symbol", "objectToString", "now", "debounce", "debounce", "throttle", "prettierBytes", "separator", "pattern", "classNames", "i", "prettierBytes", "has", "fn", "EventEmitter", "i", "l", "ee", "a2", "a3", "j", "a", "b", "i", "self", "fn", "i", "error", "i", "a", "b", "original", "require_retry", "global", "w", "window", "slice", "indexOf", "toString", "isFunction", "isWindow", "document", "i", "j", "arr", "support", "tokenize", "contains", "a", "b", "hasOwn", "push", "rtrim", "rhtml", "rquickExpr", "escape", "e", "Sizzle", "m", "match", "fn", "matches", "docElem", "id", "node", "nodeName", "start", "dir", "hash", "isXML", "n", "elem", "self", "l", "_", "add", "v", "value", "deferred", "process", "error", "data", "t", "expectSync", "name", "end", "p", "index", "length", "classNames", "max", "location", "s", "val", "completed", "offset", "top", "method", "type", "define", "$", "toastr", "error", "i", "options", "map", "duration", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__export", "__copyProps", "c", "q", "o", "s", "a", "b", "k", "id2", "i", "e", "start", "utils", "id", "intlTelInput", "max", "match", "error", "module", "fn", "k", "m", "a", "b", "c", "d", "n", "e", "f", "g", "h", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "l", "T", "U", "V", "W", "X", "Y", "A", "Z", "HTMLElement", "FrameLoadingStyle", "location", "left", "right", "match", "i", "_", "FetchMethod", "error", "FormSubmissionState", "FormEnctype", "cookie", "id", "x", "y", "TimingMetric", "VisitState", "SystemStatusCode", "session", "visit", "PageStage", "element", "e", "c", "createConsumer", "m", "x", "left", "right", "application", "error", "_", "match", "e", "oldValue", "fetch", "left", "right", "_", "error", "constructor", "extend", "a", "b", "application", "logger", "element", "read", "write", "i", "interpolate", "n", "id", "i", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "id", "m", "defaultOptions", "f", "prettierBytes", "match", "error", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "Uppy", "ee", "throttle", "defaultOptions", "fn", "error", "totalProgress", "duration", "logger", "_", "MODE_HYDRATE", "slice", "options", "vnodeId", "isValidElement", "rerenderQueue", "prevDebounce", "defer", "depthSort", "i", "EMPTY_OBJ", "EMPTY_ARR", "IS_NON_DIMENSIONAL", "isArray", "Array", "assign", "obj", "props", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "constructor", "__v", "__i", "__u", "createRef", "current", "Fragment", "BaseComponent", "context", "this", "getDomSibling", "childIndex", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "push", "process", "debounceRendering", "renderQueueLength", "component", "newVNode", "oldVNode", "oldDom", "parentDom", "commitQueue", "refQueue", "sort", "shift", "__P", "diff", "__n", "ownerSVGElement", "commitRoot", "diffChildren", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "isSvg", "excessDomChildren", "isHydrating", "childVNode", "newDom", "firstChildDom", "oldChildren", "newChildrenLength", "constructNewChildrenArray", "applyRef", "insert", "nextSibling", "skewedIndex", "matchingIndex", "oldChildrenLength", "remainingOldChildren", "skew", "String", "findMatchingIndex", "unmount", "parentVNode", "insertBefore", "toChildArray", "out", "some", "x", "y", "setStyle", "style", "value", "setProperty", "test", "dom", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "l", "_attached", "Date", "now", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "eventHandler", "_dispatched", "event", "tmp", "isNew", "oldProps", "oldState", "snapshot", "clearProcessingException", "newProps", "provider", "componentContext", "renderHook", "count", "newType", "outer", "contextType", "__E", "prototype", "render", "doRender", "sub", "state", "__h", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "forEach", "componentWillUpdate", "componentDidUpdate", "__r", "getChildContext", "getSnapshotBeforeUpdate", "indexOf", "diffElementNodes", "diffed", "root", "cb", "newHtml", "oldHtml", "newChildren", "inputValue", "checked", "nodeType", "localName", "document", "createTextNode", "createElementNS", "is", "data", "childNodes", "attributes", "__html", "innerHTML", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "cloneElement", "vnode", "props", "children", "key", "ref", "i", "defaultProps", "normalizedProps", "assign", "type", "arguments", "length", "slice", "call", "createVNode", "slice", "EMPTY_ARR", "options", "__e", "error", "vnode", "oldVNode", "errorInfo", "component", "ctor", "handled", "__", "__c", "constructor", "getDerivedStateFromError", "setState", "__d", "componentDidCatch", "__E", "e", "vnodeId", "isValidElement", "undefined", "BaseComponent", "prototype", "update", "callback", "s", "this", "__s", "state", "assign", "props", "__v", "_sb", "push", "enqueueRender", "forceUpdate", "__h", "render", "Fragment", "rerenderQueue", "defer", "Promise", "then", "bind", "resolve", "setTimeout", "depthSort", "a", "b", "__b", "process", "__r", "i", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "fn", "p", "import_classnames", "import_prettier_bytes", "classNames", "prettierBytes", "supportsUploadProgress", "error", "error", "supportsUploadProgress", "classNames", "locale_default", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "error", "i", "defaultOptions", "StatusBar", "locale_default", "supportsUploadProgress", "c", "i", "transitionName", "packageJson", "i", "e", "t", "s", "i", "n", "r", "a", "h", "f", "l", "o", "u", "d", "c", "p", "g", "m", "y", "b", "w", "k", "v", "O", "S", "A", "x", "C", "I", "L", "T", "z", "P", "j", "E", "M", "_", "D", "N", "$", "H", "q", "ee", "e", "t", "H", "s", "i", "c", "a", "r", "n", "b", "A", "locale_default", "packageJson", "w", "h", "locale_default", "defaultOptions", "x", "error", "e", "error", "f", "a", "b", "f", "__classPrivateFieldGet", "AbortError", "EventEmitter", "error", "_PQueue_doesIntervalAllowAnother_get", "_PQueue_doesConcurrentAllowAnother_get", "_PQueue_next", "_PQueue_onResumeInterval", "_PQueue_isIntervalPaused_get", "now", "_PQueue_tryToStartAnother", "_PQueue_initializeIntervalIfNeeded", "_PQueue_onInterval", "_PQueue_processQueue", "_PQueue_throwOnAbort", "_PQueue_onEvent", "currentIndex", "currentComponent", "previousComponent", "prevRaf", "currentHook", "afterPaintEffects", "EMPTY", "oldBeforeDiff", "options", "__b", "oldBeforeRender", "__r", "oldAfterDiff", "diffed", "oldCommit", "__c", "oldBeforeUnmount", "unmount", "getHookState", "index", "type", "__h", "hooks", "__H", "__", "length", "push", "__V", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "_reducer", "action", "currentValue", "__N", "nextValue", "setState", "_hasScuFromHooks", "updateHookState", "p", "s", "c", "stateHooks", "filter", "x", "every", "prevScu", "call", "this", "shouldUpdate", "forEach", "hookItem", "props", "shouldComponentUpdate", "prevCWU", "componentWillUpdate", "__e", "tmp", "useEffect", "callback", "args", "state", "__s", "argsChanged", "_pendingArgs", "useMemo", "factory", "args", "state", "getHookState", "currentIndex", "argsChanged", "__V", "_pendingArgs", "__h", "__", "useCallback", "callback", "currentHook", "flushAfterPaintEffects", "component", "afterPaintEffects", "shift", "__P", "__H", "__h", "forEach", "invokeCleanup", "invokeEffect", "e", "options", "__e", "__v", "__b", "vnode", "currentComponent", "oldBeforeDiff", "__r", "oldBeforeRender", "currentIndex", "hooks", "__c", "previousComponent", "__", "hookItem", "__N", "EMPTY", "_pendingArgs", "diffed", "oldAfterDiff", "c", "length", "push", "prevRaf", "requestAnimationFrame", "afterNextFrame", "__V", "commitQueue", "some", "filter", "cb", "oldCommit", "unmount", "oldBeforeUnmount", "hasErrored", "s", "HAS_RAF", "callback", "raf", "done", "clearTimeout", "timeout", "cancelAnimationFrame", "setTimeout", "hook", "comp", "cleanup", "argsChanged", "oldArgs", "newArgs", "arg", "index", "invokeOrReturn", "f", "T", "e", "i", "import_classnames", "i", "offset", "start", "end", "h", "T", "p", "import_classnames", "import_classnames", "id", "classNames", "id", "_extends", "i", "classNames", "ListItem", "f", "F", "classNames", "View", "e", "currentSelection", "error", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "defaultOptions", "View", "error", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "defaultOptions", "View", "error", "i", "isEqual", "isFocusInOverlay", "debounce", "import_classnames", "import_classnames", "f", "import_prettier_bytes", "prettierBytes", "shallowEqual", "error", "classNames", "id", "error", "F", "_Symbol$for", "l", "import_classnames", "classNames", "import_classnames", "classNames", "import_classnames", "classNames", "getUploadingState", "i", "import_classnames", "id", "h", "T", "p", "classNames", "import_classnames", "classNames", "_extends", "i", "classNames", "locale_default", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "o", "Dashboard", "somePluginCanHandleRootDrop", "error", "isFocusInOverlay", "StatusBar", "locale_default", "defaultOptions", "_extends", "i", "l", "packageJson", "defaultOptions", "locale_default", "packageJson", "locale_default", "defaultOptions", "error", "AbortError", "error", "retry", "error", "import_throttle", "throttle", "_Symbol$for", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "AbortError", "_socket", "_", "error", "e", "import_namespace_emitter", "_Symbol$for", "_Symbol$for2", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "_emitter", "ee", "e", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "fn", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "i", "fn", "duration", "AbortController", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "defaultOptions", "_abortController", "_createUpload", "_createUpload2", "AbortController", "n", "c", "offset", "j", "end", "i2", "k", "i", "_Symbol$for", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "error", "chunks", "i", "defaultOptions", "location", "n", "Dashboard", "directUploadInputForm", "toastr", "e", "start", "name", "style", "x", "y", "window", "min", "max", "v", "toPaddingObject", "popperOffsets", "min", "max", "offset", "effect", "x", "y", "popper", "effect", "window", "hash", "hash", "x", "y", "x", "y", "clippingParents", "reference", "start", "popperOffsets", "offset", "placements", "placement", "a", "b", "placements", "placement", "i", "start", "_loop", "_i", "checks", "offset", "x", "y", "popperOffsets", "offset", "min", "max", "start", "debounce", "fn", "merged", "defaultModifiers", "defaultOptions", "createPopper", "reference", "popper", "options", "m", "fn", "debounce", "state", "effect", "noopFn", "id", "e", "intlTelInput", "now", "secondsSince", "ConnectionMonitor", "message_types", "protocols", "supportedProtocols", "indexOf", "Connection", "consumer", "error", "extend", "Subscription", "SubscriptionGuarantor", "s", "Subscriptions", "subscription", "Consumer", "createWebSocketURL", "a", "createConsumer", "getConfig", "createConsumer", "exportLoader", "import_toastr", "toastr"]
}
